OpenTelemetry
Echo OpenTelemetry は、HTTP リクエスト向けの OpenTelemetry インストルメンテーションを提供するミドルウェアです。
OpenTelemetry は、クラウドネイティブアプリケーション向けのインストルメンテーションを提供する オープンソースツール群です。
Go modules で OpenTelemetry ミドルウェア依存関係を追加します。
go get github.com/labstack/echo-opentelemetryミドルウェアと OpenTelemetry trace API を import します。
import ( echootel "github.com/labstack/echo-opentelemetry" "go.opentelemetry.io/otel/trace")完全な設定で登録します。
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,}))設定オプションについては Config struct を参照してください。
サーバー名だけを指定する簡略形式でミドルウェアを追加します。
e.Use(echootel.NewMiddleware("app.example.com"))設定オプション付きでミドルウェアを追加します。
e.Use(echootel.NewMiddlewareWithConfig(echootel.Config{ TracerProvider: tp,}))Echo コンテキストから tracer を取得します。
tracer, err := echo.ContextGet[trace.Tracer](c, echootel.TracerKey)example は metrics と spans を stdout にエクスポートしますが、任意の exporter(OTLP など)を使えます。 OpenTelemetry exporters ドキュメントを参照してください。