generated at
DenoのOpenTelemetryサポートについて
はじめに
Deno v2.1からOpenTelemetryサポートのための実験的な仕組みが追加されています
有効化方法
1. --unstable-otel もしくは deno.json "unstable": ["otel"] を指定
2. OTEL_DENO=true を設定
@deno/otel - Deno.telemetry @opentelemetry/apiを連携させるためのDeno公式パッケージ
Deno v2.1.5以降からはこのパッケージの使用は不要です

設定
内部的にはopentelemetry_otlpが使われている
OTEL_DENO - true を設定すると、Signalsの送信が有効化されます
OTEL_DENO_TRACING - false を設定すると、Deno内部におけるDeno.servefetchへの計装を無効化できます
OTEL_DENO_CONSOLE - console.* によるLogsの送信を制御できます

その他
opentelemetry.io へのドキュメントの追加

変更履歴
traces/logsの送信がサポート
console.* を呼ぶと、自動的にlogsがバックエンドへ送信されます
Deno.tracing APIが実装
Deno v2.1.2
Deno v2.1.3
Metric Exporterの実装が追加 ( Deno.telemetry.MetricExporter )
Deno v2.1.5
様々な環境変数が追加
OTEL_SDK_DISABLED
OTEL_DENO - Signalsの送信を有効化したい場合は、これに true を設定する必要がある
OTEL_DENO_TRACING - false を指定すると、fetchDeno.serveなどの計装を無効化できるようです
OTEL_DENO_CONSOLE - console.* でのLogsの送信を制御するための環境変数
Deno.telemetry.MetricExporter が削除され、代わりに Deno.telemetry.MeterProvider が導入
これにより@opentelemetry/sdk-metricsを導入しなくてもMetricsの送信ができそうです
@opentelemetry/apiから提供されるmetrics.setGlobalMeterProviderなどで利用することが想定されています
OTEL_DENO_METRICS OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE 環境変数が追加
Deno.telemetry.SpanExporter が削除
代わりに以下のAPIが追加
Deno.telemetry.tracerProvider (@opentelemetry/api trace.setGlobalTracerProvider に渡せます)
contextManager (@opentelemetry/api context.setGlobalContextManager に渡せます)
meterProvider (@opentelemetry/api metrics.setGlobalMeterProvider に渡せます)
@deno/otelの使用が不要に
globalThis[Symbol.for("opentelemetry.js.api.1")] TracerProvider などが予め登録されており、これを介して@opentelemetry/apiとの連携が行われるようです (参考: https://github.com/open-telemetry/opentelemetry-js/blob/api/v1.9.0/api/src/internal/global-utils.ts#L27-L29)
javascript
globalThis[Symbol.for("opentelemetry.js.api.1")] // { // version: "1.999.999", // trace: [class TracerProvider], // context: [class ContextManager], // metrics: [class MeterProvider] // }
Deno v2.1.7
Deno v2.1.8
HTTPSエンドポイントへのSignalsの送信がサポート
下記の環境変数が追加されています
OTEL_EXPORTER_OTLP_CERTIFICATE
OTEL_EXPORTER_OTLP_CLIENT_KEY
OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE

関連ページ