OpenTelemetry(OTel)とはアプリケーションの動作を観測・計測するための標準規格

OpenTelemetryを調査しているときの覚書。

Gemini 2.5 Proと対話。


OpenTelemetryとは?

OpenTelemetry(OTel)は、単なるツールではなく、クラウドネイティブ時代のオブザーバビリティ(Observability: 可観測性)を実現するための標準規格。


OpenTelemetryは、CPU使用率やメモリ使用量といったサーバー自体の情報(ホストメトリクス)も計測できる。
しかし、その真価が発揮されるのは、アプリケーション(プログラムコード)がどのように動いているかを計測する時。

  • 「どの関数の処理に時間がかかっているか?」
  • 「データベースへのクエリは何ミリ秒かかったか?」
  • 「外部APIの呼び出しでエラーが起きたのはなぜか?」

といった、コードレベルの動作を可視化することに主眼を置いている。


オブザーバビリティ(Observability)とは?

システムの出力を調べることによって、システムの内部状態を理解する能力のこと。
参考: OpenTelemetryとは | OpenTelemetry

システムをオブザーバビリティがある状態にするには、計装されていなければなりません。
つまり、コードがトレース、メトリクス、またはログを出力しなければなりません。

  • メトリクス (Metrics): 一定間隔で集計された数値。
    システムの「健康状態」を定量的に把握。
    例: CPU使用率、メモリ使用量、リクエスト数/秒 (RPS)、エラー率。
  • ログ (Logs): タイムスタンプ付きの離散的なイベント記録。
    特定の瞬間に何が起こったかを詳細に記録。
    例: 「User 123 logged in」、「DB connection failed: timeout」
  • トレース (Traces):
    マイクロサービスを横断するリクエストの処理の流れを可視化したもの。
    例: 1つのリクエストが、どのサービスを、どの順番で、どれくらいの時間をかけて通過したかの詳細な記録。


OpenTelemetryの歴史

  • 2016年:OpenTracing の誕生
    Cloud Native Computing Foundation (CNCF) によって主導されたプロジェクト。
    開発者が、どのトレーシングツールを使うかに関わらず、同じ作法でコードを書けるようにすることを目指した。
  • 2018年:OpenCensus の誕生
    Googleが社内で長年使われてきた監視ライブラリ(Census)をオープンソース化したプロジェクト。
  • 2019年5月:OpenTelemetry の誕生
    OpenTracingとOpenCensusが統合し単一のプロジェクト「OpenTelemetry」が発足
  • 2020年:トレース仕様が安定版 (Stable) に
  • 2021年:CNCFインキュベーションプロジェクトへ昇格
  • 2022年:メトリクス仕様が安定版 (Stable) に
  • 2023年:ログ仕様の安定化とCNCFのGraduated Projectに昇格
    ログの仕様が安定版に。これにより、オブザーバビリティの3本柱である「トレース、メトリクス、ログ」すべてが安定版として提供される体制が完成。


FreeBSDでのopentelemetry-collector-contribをインストールできるか?

現時点では、portsにOpenTelemetryコレクターのソースコードはないので、FreeBSDの環境でOpenTelemetryに対応するのは時期尚早かもしれない。

docker経由でOpenTelemetryコレクター(OTel Collector)を起動するぐらいなら、collectdを選択する。

OpenTelemetryはスタンダードな技術になると思うので、時期をみて対応していきたい。


▼ 関連記事