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

Function main

interop/xds/server/server.go:228–342  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

226}
227
228func main() {
229 flag.Parse()
230 if *enableCSMObservability {
231 exporter, err := prometheus.New()
232 if err != nil {
233 logger.Fatalf("Failed to start prometheus exporter: %v", err)
234 }
235 var addr string
236 var ok bool
237 if addr, ok = os.LookupEnv("OTEL_EXPORTER_PROMETHEUS_HOST"); !ok {
238 addr = ""
239 }
240 var port string
241 if port, ok = os.LookupEnv("OTEL_EXPORTER_PROMETHEUS_PORT"); !ok {
242 port = "9464"
243 }
244 go func() {
245 if err := http.ListenAndServe(addr+":"+port, promhttp.Handler()); err != nil {
246 logger.Fatalf("error listening: %v", err)
247 }
248 }()
249
250 provider := metric.NewMeterProvider(
251 metric.WithReader(exporter),
252 )
253 ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
254 defer cancel()
255 cleanup := csm.EnableObservability(ctx, opentelemetry.Options{MetricsOptions: opentelemetry.MetricsOptions{MeterProvider: provider}})
256 defer cleanup()
257 }
258
259 if *secureMode && *port == *maintenancePort {
260 logger.Fatal("-port and -maintenance_port must be different when -secure_mode is set")
261 }
262
263 testService := &testServiceImpl{hostname: getHostname(), serverID: *serverID}
264 healthServer := health.NewServer()
265 updateHealthService := &xdsUpdateHealthServiceImpl{healthServer: healthServer}
266
267 // If -secure_mode is not set, expose all services on -port with a regular
268 // gRPC server.
269 if !*secureMode {
270 addr := fmt.Sprintf(":%d", *port)
271 lis, err := net.Listen("tcp4", addr)
272 if err != nil {
273 logger.Fatalf("net.Listen(%s) failed: %v", addr, err)
274 }
275
276 server := grpc.NewServer()
277 testgrpc.RegisterTestServiceServer(server, testService)
278 healthServer.SetServingStatus("", healthpb.HealthCheckResponse_SERVING)
279 healthgrpc.RegisterHealthServer(server, healthServer)
280 testgrpc.RegisterXdsUpdateHealthServiceServer(server, updateHealthService)
281 reflection.Register(server)
282 cleanup, err := admin.Register(server)
283 if err != nil {
284 logger.Fatalf("Failed to register admin services: %v", err)
285 }

Callers

nothing calls this directly

Calls 15

SetServingStatusMethod · 0.95
ServeMethod · 0.95
ServeMethod · 0.95
StopMethod · 0.95
EnableObservabilityFunction · 0.92
NewServerFunction · 0.92
NewServerFunction · 0.92
RegisterFunction · 0.92
RegisterFunction · 0.92
NewCredentialsFunction · 0.92
CredsFunction · 0.92
getHostnameFunction · 0.85

Tested by

no test coverage detected