func main()

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)
	}
}