in step1/src/client/main.go [121:152]
func main() {
// step1. setup OpenTelemetry
tp, err := initTracer()
if err != nil {
log.Fatalf("failed to initialize TracerProvider: %v", err)
}
defer func() {
if err := tp.Shutdown(context.Background()); err != nil {
log.Fatalf("error shutting down TracerProvider: %v", err)
}
}()
// step1. end setup
ctx := context.Background()
svc := NewClientService()
mustMapEnv(&svc.serverSvcAddr, "SERVER_SVC_ADDR")
mustConnGRPC(ctx, &svc.serverSvcConn, svc.serverSvcAddr)
// step1. change handler to intercept OpenTelemetry related headers
otelHandler := otelhttp.NewHandler(http.HandlerFunc(svc.handler), "client.handler")
http.Handle("/", otelHandler)
// step1. end intercepter setting
http.HandleFunc("/_genki", svc.health)
port := listenPort
if os.Getenv("CLIENT_PORT") != "" {
port = os.Getenv("CLIENT_PORT")
}
if err := http.ListenAndServe(fmt.Sprintf(":%v", port), nil); err != nil {
log.Fatalf("error listening HTTP server: %v", err)
}
}