OpenTelemetry とオブザーバビリティ

テレメトリ(トレース・メトリクス・ログ)を計装・収集する、ベンダー中立のフレームワーク/ツールキット。_moc-web-infra

構成

言語非依存で計装できることがゴール。データ保存・可視化バックエンドは含まない。

  • OTLP(テレメトリ転送プロトコル)、Semantic Conventions(属性キー名の命名規則)、各言語SDK、OTel Collector(受信・加工・送信のプロキシ)。

シグナル

テレメトリデータを「シグナル」と呼ぶ: トレース / メトリクス / ログ / Baggage。

スパン(分散トレース)

リクエストが複数サービスを通過するパスを複数スパンで表す。スパンの主な属性:

  • name(get_userのように低カーディナリティに)、parent span id、start/end、span context(trace id / span id / trace flags(Sampled) / trace state)。
  • attributes(HTTPメソッド・Pod名など、Semantic Conventions準拠)、span events、span links、status(Unset/Error/Ok)、kind(SERVER/CLIENT/PRODUCER/CONSUMER/INTERNAL)。
  • Baggage: スパン間を伝搬するコンテキスト情報(HTTPヘッダで送信)。

メトリクスの種類

Counter(単調増加)/UpDownCounter/Histogram/Asynchronous Gauge 等を計測の性質で使い分ける。

Collector と可視化

Collector のデプロイは「無し(SDK直送)」「Agent(同ホスト)」など。可視化は Jaeger(ローカル)/AWS X-Ray/Prometheus/OpenObserve。LLMOps では prompt を event body として扱う。

実装

関連