Skip to content

Commit 925bfb1

Browse files
committed
grpc: enable flight_trace_interceptor
1 parent 327e429 commit 925bfb1

File tree

1 file changed

+23
-3
lines changed

1 file changed

+23
-3
lines changed

grpc/server.go

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
grpc_recovery "github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/recovery"
1212
"github.com/prometheus/client_golang/prometheus"
1313
"github.com/prometheus/client_golang/prometheus/promauto"
14+
"github.com/shortlink-org/go-sdk/flight_trace"
1415
"github.com/spf13/viper"
1516
"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
1617
"go.opentelemetry.io/otel/trace"
@@ -22,6 +23,7 @@ import (
2223

2324
"github.com/shortlink-org/go-sdk/logger"
2425

26+
flight_trace_interceptor "github.com/shortlink-org/go-sdk/grpc/middleware/flight_trace"
2527
grpc_logger "github.com/shortlink-org/go-sdk/grpc/middleware/logger"
2628
pprof_interceptor "github.com/shortlink-org/go-sdk/grpc/middleware/pprof"
2729
session_interceptor "github.com/shortlink-org/go-sdk/grpc/middleware/session"
@@ -46,15 +48,21 @@ type server struct {
4648
}
4749

4850
// InitServer - initialize gRPC server
49-
func InitServer(ctx context.Context, log logger.Logger, tracer trace.TracerProvider, prom *prometheus.Registry) (*Server, error) {
51+
func InitServer(
52+
ctx context.Context,
53+
log logger.Logger,
54+
tracer trace.TracerProvider,
55+
prom *prometheus.Registry,
56+
fr *flight_trace.Recorder,
57+
) (*Server, error) {
5058
viper.SetDefault("GRPC_SERVER_ENABLED", true) // gRPC grpServer enable
5159

5260
if !viper.GetBool("GRPC_SERVER_ENABLED") {
5361
//nolint:nilnil // it's correct logic
5462
return nil, nil
5563
}
5664

57-
config, err := setServerConfig(log, tracer, prom) //nolint:contextcheck // false positive
65+
config, err := setServerConfig(log, tracer, prom, fr) //nolint:contextcheck // false positive
5866
if err != nil {
5967
return nil, err
6068
}
@@ -107,7 +115,12 @@ func InitServer(ctx context.Context, log logger.Logger, tracer trace.TracerProvi
107115
}
108116

109117
// setConfig - set configuration
110-
func setServerConfig(log logger.Logger, tracer trace.TracerProvider, monitor *prometheus.Registry) (*server, error) {
118+
func setServerConfig(
119+
log logger.Logger,
120+
tracer trace.TracerProvider,
121+
monitor *prometheus.Registry,
122+
fr *flight_trace.Recorder,
123+
) (*server, error) {
111124
viper.SetDefault("GRPC_SERVER_PORT", "50051") // gRPC port
112125
grpc_port := viper.GetInt("GRPC_SERVER_PORT")
113126

@@ -125,6 +138,7 @@ func setServerConfig(log logger.Logger, tracer trace.TracerProvider, monitor *pr
125138
config.WithTracer(tracer)
126139
config.withSession()
127140
config.withPprofLabels()
141+
config.WithFlightTrace(fr, log)
128142

129143
if monitor != nil {
130144
config.WithMetrics(monitor)
@@ -245,3 +259,9 @@ func (s *server) withPprofLabels() {
245259
s.interceptorUnaryServerList = append(s.interceptorUnaryServerList, pprof_interceptor.UnaryServerInterceptor())
246260
s.interceptorStreamServerList = append(s.interceptorStreamServerList, pprof_interceptor.StreamServerInterceptor())
247261
}
262+
263+
// WithFlightTrace - setup flight trace
264+
func (s *server) WithFlightTrace(fr *flight_trace.Recorder, log logger.Logger) {
265+
s.interceptorUnaryServerList = append(s.interceptorUnaryServerList, flight_trace_interceptor.UnaryServerInterceptor(fr, log))
266+
s.interceptorStreamServerList = append(s.interceptorStreamServerList, flight_trace_interceptor.StreamServerInterceptor(fr, log))
267+
}

0 commit comments

Comments
 (0)