()
| 378 | } |
| 379 | |
| 380 | func 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 |
nothing calls this directly
no test coverage detected