コードベース

コードベース計装のセットアップに不可欠なステップを学ぶ

OpenTelemetry APIとSDKをインポートする

まず、あなたのサービスコードに OpenTelemetry をインポートする必要があります。 もし、実行可能なバイナリによって消費されることを意図したライブラリやその他のコンポーネントを開発しているのであれば、APIにだけ依存することになるでしょう。 アーティファクトがスタンドアロンのプロセスやサービスであれば、APIとSDKに依存することになります。 OpenTelemetry APIとSDKの詳細については、仕様を参照してください。

OpenTelemetry API を設定する

トレースやメトリクスを作成するには、まずトレーサーやメーターのプロバイダーを作成する必要があります。 一般的に、SDKはこれらのオブジェクトに対して単一のデフォルトプロバイダーを提供することを推奨します。 次に、そのプロバイダーからトレーサーまたはメーターのインスタンスを取得し、名前とバージョンを与えます。 たとえばライブラリを書いているのであれば、ライブラリの名前(たとえば com.example.myLibrary)を付けるべきです。 また、ライブラリやサービスの現在のバージョンに対応するバージョン文字列(例:semver:1.0.0)を指定することを推奨します。

OpenTelemetry SDK を設定する

サービスプロセスを構築している場合、テレメトリーデータを解析バックエンドにエクスポートするための適切なオプションをSDKに設定する必要もあります。 この設定は、設定ファイルまたはその他のメカニズムを通じてプログラムで処理することを推奨します。 また、場合によっては使いたくなるであろう、言語ごとのチューニングオプションもあります。

テレメトリーデータの作成

APIとSDKを設定したら、プロバイダーから取得したトレーサーオブジェクトとメーターオブジェクトを通して、トレースとメトリックイベントを自由に作成できるようになります。 依存関係のために計装ライブラリを利用しましょう。これらの詳細については、レジストリ やあなたの言語のレポジトリをチェックしてください。

データのエクスポート

テレメトリーデータを作成したら、それをどこかに送信したいでしょう。 OpenTelemetryは、プロセスから分析バックエンドにデータをエクスポートする2つの主要な方法をサポートしています。 プロセスから直接エクスポートするか、OpenTelemetryコレクターを通してプロキシする方法です。

プロセス内からのエクスポートでは、1つ以上の エクスポーター をインポートして依存する必要があります。 エクスポーターとは、OpenTelemetry のメモリ内のスパンやメトリクスオブジェクトを、JaegerやPrometheusのようなテレメトリー分析ツールに適したフォーマットに変換するライブラリです。 さらに、OpenTelemetry は OTLP として知られるワイヤプロトコルをサポートしていて、これはすべての OpenTelemetry SDK でサポートされています。 このプロトコルは、OpenTelemetryコレクターにデータを送るために使用できます。 OpenTelemetryコレクターはスタンドアローンのバイナリプロセスで、サービスインスタンスのプロキシやサイドカーとして実行したり、別のホストで実行したりできます。 コレクターは、このデータを転送し、好きな分析ツールにエクスポートするように設定できます。

JaegerやPrometheusのようなオープンソースツールに加えて、OpenTelemetryからのテレメトリデータの取り込みをサポートする企業のリストが増えています。 詳細は、ベンダーのページを参照してください。