OpenTelemetry の概要について
こんにちは、 @kz_morita です。
オブザーバビリティ・エンジニアリングを読んだ の記事でも紹介されていた OpenTelemetry についてまとめます。
OpenTelemetry について OpenTelemetry については、 opentelemetry.io というWebページで紹介されていました。
公式サイトによると OpenTelemetry はトレース、メトリクス、ログなど (テレメトリデータと呼ばれる) を作成し管理するために設計されたフレームワークやツールキットのことです。
OpenTelemetry には、
すべてのコンポーネントについての仕様 テレメトリデータの形式を定義する標準プロトコル 一般的なテレメトリデータ型の標準命名スキームを定義するセマンティック規則 テレメトリデータの生成方法を定義する API 共通ライブラリとフレームワークの Instrumentation を実装するライブラリエコシステム コード変更を必要とせずにテレメトリデータを生成する自動計測コンポーネント 仕様、API、テレメトリ データのエクスポートを実装する各言語の SDK OpenTelemetry Collector、テレメトリ データを受信、処理、エクスポートするプロキシ OpenTelemetry Operator for Kubernetes などの他のさまざまなツール などが含まれているようで、プロトコルや仕様などから、実際の SDK やライブラリなどまで含まれているようです。
とくに、データ収集のバックエンドではなく、テレメトリデータの生成、収集、管理、エクスポートに重点をおいていて、データをどのように保存するかや、どのように可視化するかみたいな点については OpenTelemetry の範囲外で別の商用のサービスなどに任せられているそうです。
具体例をいうと、DataDog などは、OpenTelemetry をサポートしているサービスの一つです。
https://docs.datadoghq.com/ja/opentelemetry/ Observability と OpenTelemetry については、 OpenTelemetry は Observability を実現するためのツールキットになります。
前回の記事 でも触れましたが、Observability とはシステムの出力を調べることによって、システムの内部状態が理解できる能力のことになります。
具体的には、トレースや、メトリクス、ログなどのテレメトリデータを調べることによって、いまシステムに何が起きているのかがわかるというのが、Observability が高い状態と言えると思います。
逆に言うと、どのようにテレメトリデータを生成、収集、管理すればシステムの内部状態がわかるのかという点について標準化を目指しているのが OpenTelemetry と言えそうです。