Создание перехватчика 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)
	}
}