OpenTelemetry
Echo OpenTelemetry es un middleware que proporciona instrumentación OpenTelemetry para requests HTTP.
OpenTelemetry es un conjunto de herramientas open-source que proporcionan instrumentación para aplicaciones cloud-native.
Agrega la dependencia del middleware OpenTelemetry con Go modules:
go get github.com/labstack/echo-opentelemetryImporta el middleware y la API de tracing de OpenTelemetry:
import ( echootel "github.com/labstack/echo-opentelemetry" "go.opentelemetry.io/otel/trace")Regístralo con configuración completa:
e.Use(echootel.NewMiddlewareWithConfig(echootel.Config{ ServerName: "my-server", TracerProvider: tp,
//Skipper: nil, //OnNextError: nil, //OnExtractionError: nil, //MeterProvider: nil, //Propagators: nil, //SpanStartOptions: nil, //SpanStartAttributes: nil, //SpanEndAttributes: nil, //MetricAttributes: nil, //Metrics: nil,}))Para opciones de configuración, consulta el struct
Config.
Agrega el middleware en forma simplificada proporcionando solo el nombre del servidor:
e.Use(echootel.NewMiddleware("app.example.com"))Agrega el middleware con opciones de configuración:
e.Use(echootel.NewMiddlewareWithConfig(echootel.Config{ TracerProvider: tp,}))Obtén el tracer desde el contexto de Echo:
tracer, err := echo.ContextGet[trace.Tracer](c, echootel.TracerKey)Ejemplo
Sección titulada «Ejemplo»El ejemplo exporta metrics y spans a stdout, pero puedes usar cualquier exporter (OTLP, etc.). Consulta la documentación de OpenTelemetry exporters.