MCPcopy
hub / github.com/grpc/grpc-go / main

Function main

examples/features/csm_observability/server/main.go:58–91  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

56}
57
58func main() {
59 flag.Parse()
60 exporter, err := prometheus.New()
61 if err != nil {
62 log.Fatalf("Failed to start prometheus exporter: %v", err)
63 }
64 provider := metric.NewMeterProvider(metric.WithReader(exporter))
65 go http.ListenAndServe(*prometheusEndpoint, promhttp.Handler())
66
67 cleanup := csm.EnableObservability(context.Background(), opentelemetry.Options{MetricsOptions: opentelemetry.MetricsOptions{MeterProvider: provider}})
68 defer cleanup()
69
70 lis, err := net.Listen("tcp4", "0.0.0.0:"+*port)
71 if err != nil {
72 log.Fatalf("Failed to listen: %v", err)
73 }
74 // Set up xds credentials that fall back to insecure as described in:
75 // https://cloud.google.com/service-mesh/docs/service-routing/security-proxyless-setup#workloads_are_unable_to_communicate_in_the_security_setup.
76 creds, err := xdscreds.NewServerCredentials(xdscreds.ServerOptions{FallbackCreds: insecure.NewCredentials()})
77 if err != nil {
78 log.Fatalf("Failed to create xDS credentials: %v", err)
79 }
80 s, err := xds.NewGRPCServer(grpc.Creds(creds))
81 if err != nil {
82 log.Fatalf("Failed to start xDS Server: %v", err)
83 }
84 pb.RegisterGreeterServer(s, &server{addr: ":" + *port})
85
86 log.Printf("Serving on %s\n", *port)
87
88 if err := s.Serve(lis); err != nil {
89 log.Fatalf("Failed to serve: %v", err)
90 }
91}

Callers

nothing calls this directly

Calls 8

ServeMethod · 0.95
EnableObservabilityFunction · 0.92
NewCredentialsFunction · 0.92
NewGRPCServerFunction · 0.92
CredsFunction · 0.92
ParseMethod · 0.65
FatalfMethod · 0.65
PrintfMethod · 0.65

Tested by

no test coverage detected