OpenTelemetry
Echo OpenTelemetry é um middleware que fornece instrumentação OpenTelemetry para requests HTTP.
OpenTelemetry é um conjunto de ferramentas open-source que fornecem instrumentação para aplicações cloud-native.
Adicione a dependência do middleware OpenTelemetry com Go modules:
go get github.com/labstack/echo-opentelemetryImporte o middleware e a API de trace do OpenTelemetry:
import ( echootel "github.com/labstack/echo-opentelemetry" "go.opentelemetry.io/otel/trace")Registre-o com configuração 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 opções de configuração, veja a struct Config.
Adicione o middleware de forma simplificada fornecendo apenas o nome do servidor:
e.Use(echootel.NewMiddleware("app.example.com"))Adicione o middleware com opções de configuração:
e.Use(echootel.NewMiddlewareWithConfig(echootel.Config{ TracerProvider: tp,}))Recupere o tracer a partir do contexto do Echo:
tracer, err := echo.ContextGet[trace.Tracer](c, echootel.TracerKey)Exemplo
Seção intitulada “Exemplo”O exemplo exporta métricas e spans para stdout, mas você pode usar qualquer exporter (OTLP etc.). Veja a documentação de OpenTelemetry exporters.