in src/productcatalogservice/server.go [122:148]
func run(port string) string {
listener, err := net.Listen("tcp", fmt.Sprintf(":%s", port))
if err != nil {
log.Fatal(err)
}
// Propagate trace context
otel.SetTextMapPropagator(
propagation.NewCompositeTextMapPropagator(
propagation.TraceContext{}, propagation.Baggage{}))
var srv *grpc.Server
srv = grpc.NewServer(
grpc.UnaryInterceptor(otelgrpc.UnaryServerInterceptor()),
grpc.StreamInterceptor(otelgrpc.StreamServerInterceptor()))
svc := &productCatalog{}
err = loadCatalog(&svc.catalog)
if err != nil {
log.Fatalf("could not parse product catalog: %v", err)
}
pb.RegisterProductCatalogServiceServer(srv, svc)
healthpb.RegisterHealthServer(srv, svc)
go srv.Serve(listener)
return listener.Addr().String()
}