Создание перехватчика GRPC
Может быть полезно для OpenTelemetry.
Server Unary Intercepter
func MyInter(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (interface{}, error) {
fmt.Println(ctx)
fmt.Println(info.FullMethod)
return handler(ctx, req)
}
func main() {
lis, err := net.Listen("tcp", port)
if err != nil {
log.Fatal(err)
}
s := grpc.NewServer(grpc.UnaryInterceptor(MyInter))
ecommerce.RegisterProductInfoServer(s, &server{})
log.Printf("Starting gRPC listener on port %s", port)
if err := s.Serve(lis); err != nil {
log.Fatalf("failed serve: %v", err)
}
}