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

Function main

interop/xds/client/client.go:380–450  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

378}
379
380func main() {
381 flag.Parse()
382 if *enableCSMObservability {
383 exporter, err := prometheus.New()
384 if err != nil {
385 logger.Fatalf("Failed to start prometheus exporter: %v", err)
386 }
387 provider := metric.NewMeterProvider(
388 metric.WithReader(exporter),
389 )
390 var addr string
391 var ok bool
392 if addr, ok = os.LookupEnv("OTEL_EXPORTER_PROMETHEUS_HOST"); !ok {
393 addr = ""
394 }
395 var port string
396 if port, ok = os.LookupEnv("OTEL_EXPORTER_PROMETHEUS_PORT"); !ok {
397 port = "9464"
398 }
399 go func() {
400 if err := http.ListenAndServe(addr+":"+port, promhttp.Handler()); err != nil {
401 logger.Fatalf("error listening: %v", err)
402 }
403 }()
404
405 ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
406 defer cancel()
407 cleanup := csm.EnableObservability(ctx, opentelemetry.Options{MetricsOptions: opentelemetry.MetricsOptions{MeterProvider: provider}})
408 defer cleanup()
409 }
410
411 rpcCfgs.Store(parseRPCMetadata(*rpcMetadata, parseRPCTypes(*rpc)))
412
413 lis, err := net.Listen("tcp", fmt.Sprintf(":%d", *statsPort))
414 if err != nil {
415 logger.Fatalf("failed to listen: %v", err)
416 }
417 s := grpc.NewServer()
418 defer s.Stop()
419 testgrpc.RegisterLoadBalancerStatsServiceServer(s, &statsService{})
420 testgrpc.RegisterXdsUpdateClientConfigureServiceServer(s, &configureService{})
421 reflection.Register(s)
422 cleanup, err := admin.Register(s)
423 if err != nil {
424 logger.Fatalf("Failed to register admin: %v", err)
425 }
426 defer cleanup()
427 go s.Serve(lis)
428
429 creds := insecure.NewCredentials()
430 if *secureMode {
431 var err error
432 creds, err = xds.NewClientCredentials(xds.ClientOptions{FallbackCreds: insecure.NewCredentials()})
433 if err != nil {
434 logger.Fatalf("Failed to create xDS credentials: %v", err)
435 }
436 }
437

Callers

nothing calls this directly

Calls 15

StopMethod · 0.95
ServeMethod · 0.95
EnableObservabilityFunction · 0.92
NewServerFunction · 0.92
RegisterFunction · 0.92
RegisterFunction · 0.92
NewCredentialsFunction · 0.92
NewClientFunction · 0.92
WithTransportCredentialsFunction · 0.92
parseRPCMetadataFunction · 0.85
parseRPCTypesFunction · 0.85
sendRPCsFunction · 0.85

Tested by

no test coverage detected