修正协议处理并解耦可选遥测

This commit is contained in:
2026-09-11 16:10:27 +00:00
parent ab5dbebca7
commit 0532fc25bf
9 changed files with 128 additions and 83 deletions
+2 -22
View File
@@ -5,10 +5,6 @@ import (
"net/http"
"github.com/go-chi/chi/v5"
"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
"go.opentelemetry.io/otel/metric"
"go.opentelemetry.io/otel/propagation"
"go.opentelemetry.io/otel/trace"
)
type Endpoints struct {
@@ -19,13 +15,7 @@ type Endpoints struct {
Ready http.Handler
}
type Telemetry struct {
TracerProvider trace.TracerProvider
MeterProvider metric.MeterProvider
Propagators propagation.TextMapPropagator
}
func NewRouter(endpoints Endpoints, telemetry Telemetry) (http.Handler, error) {
func NewRouter(endpoints Endpoints) (http.Handler, error) {
if endpoints.Metadata == nil || endpoints.Token == nil || endpoints.JWKS == nil || endpoints.Health == nil || endpoints.Ready == nil {
return nil, errors.New("all HTTP endpoints are required")
}
@@ -37,15 +27,5 @@ func NewRouter(endpoints Endpoints, telemetry Telemetry) (http.Handler, error) {
router.Get("/healthz", endpoints.Health.ServeHTTP)
router.Get("/readyz", endpoints.Ready.ServeHTTP)
options := make([]otelhttp.Option, 0, 3)
if telemetry.TracerProvider != nil {
options = append(options, otelhttp.WithTracerProvider(telemetry.TracerProvider))
}
if telemetry.MeterProvider != nil {
options = append(options, otelhttp.WithMeterProvider(telemetry.MeterProvider))
}
if telemetry.Propagators != nil {
options = append(options, otelhttp.WithPropagators(telemetry.Propagators))
}
return otelhttp.NewHandler(router, "workload-sts.http", options...), nil
return router, nil
}