| 123456789101112131415161718192021222324252627282930 |
- package common
- import (
- "github.com/grpc-ecosystem/go-grpc-middleware"
- "github.com/grpc-ecosystem/go-grpc-middleware/logging/zap"
- "github.com/grpc-ecosystem/go-grpc-middleware/tags"
- "github.com/grpc-ecosystem/go-grpc-prometheus"
- "go.uber.org/zap"
- "google.golang.org/grpc"
- )
- func NewInstrumentedGRPCServer(logger *zap.Logger) *grpc.Server {
- server := grpc.NewServer(
- grpc.StreamInterceptor(grpc_middleware.ChainStreamServer(
- grpc_ctxtags.StreamServerInterceptor(),
- grpc_prometheus.StreamServerInterceptor,
- grpc_zap.StreamServerInterceptor(logger),
- )),
- grpc.UnaryInterceptor(grpc_middleware.ChainUnaryServer(
- grpc_ctxtags.UnaryServerInterceptor(),
- grpc_prometheus.UnaryServerInterceptor,
- grpc_zap.UnaryServerInterceptor(logger),
- )),
- )
- grpc_prometheus.EnableHandlingTimeHistogram()
- grpc_prometheus.Register(server)
- return server
- }
|