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はスタンダードな技術になると思うので、時期をみて対応していきたい。
▼ 関連記事