計装ライブラリの使用

アプリを開発する際、作業を加速するためにサードパーティのライブラリやフレームワークを使用することがあるでしょう。 OpenTelemetryを使用してアプリを計装する場合、使用するサードパーティのライブラリやフレームワークにトレース、ログ、メトリクスを手動で追加するために時間を費やすことを避けたいことがあります。

多くのライブラリやフレームワークはすでにOpenTelemetryをサポートしているか、OpenTelemetryの計装を介してサポートされているため、テレメトリーを生成してオブザーバビリティバックエンドにエクスポートできます。

サードパーティのライブラリやフレームワークを使用しているアプリやサービスを計装する場合は、このページの手順に従って、ネイティブに計装されたライブラリと依存関係の計装ライブラリの使用方法を学んでください。

ネイティブに計装されたライブラリを使用する

デフォルトでOpenTelemetryサポートが付属しているライブラリの場合、アプリにOpenTelemetry SDKを追加して設定することで、そのライブラリから発行されるトレース、メトリクス、ログを取得できます。

ライブラリによっては、計装のために追加の構成が必要な場合があります。 詳細はライブラリごとのドキュメントをご覧ください。

計装ライブラリを使用する

ライブラリにネイティブのOpenTelemetryサポートが含まれていない場合は、計装ライブラリを使用して、ライブラリまたはフレームワークのテレメトリーデータを生成できます。

たとえば、HTTPX用の計装ライブラリは、HTTPリクエストに基づいてスパンを自動的に作成します。

セットアップ

各計装ライブラリは、pipを使用して個別にインストールできます。 たとえば、次のとおりです。

pip install opentelemetry-instrumentation-{instrumented-library}

前述の例では、{instrumented-library}は計装の名前です。

開発版をインストールするには、opentelemetry-python-contribリポジトリをクローンまたはフォークし、次のコマンドを実行して編集可能なインストールを行います。

pip install -e ./instrumentation/opentelemetry-instrumentation-{integration}

インストール後は、計装ライブラリを初期化する必要があります。 各ライブラリには通常、独自の初期化方法があります。

HTTPX計装の例

httpxライブラリを使用して行われるHTTPリクエストを計装する方法を紹介します。

まず、pipを使用して計装ライブラリをインストールします。

pip install opentelemetry-instrumentation-httpx

次に、計装を有効にして、すべてのクライアントからのリクエストを自動的にトレースします。

import httpx
from opentelemetry.instrumentation.httpx import HTTPXClientInstrumentor

url = "https://some.url/get"
HTTPXClientInstrumentor().instrument()

with httpx.Client() as client:
     response = client.get(url)

async with httpx.AsyncClient() as client:
     response = await client.get(url)

計装を無効にする

必要に応じて、uninstrument_clientメソッドを使用して特定のクライアントまたはすべてのクライアントの計装を解除できます。 たとえば、次のとおりです。

import httpx
from opentelemetry.instrumentation.httpx import HTTPXClientInstrumentor

HTTPXClientInstrumentor().instrument()
client = httpx.Client()

# 特定のクライアントの計装を解除
HTTPXClientInstrumentor.uninstrument_client(client)

# すべてのクライアントの計装を解除
HTTPXClientInstrumentor().uninstrument()

利用可能な計装ライブラリ

OpenTelemetryが提供する計装ライブラリの完全な一覧は、opentelemetry-python-contribリポジトリで確認できます。

利用可能なさらに多くの計装は、レジストリでも確認できます。

次のステップ

計装ライブラリをセットアップした後は、カスタムのテレメトリーデータを収集するために、コードに独自の計装を追加したいと思うかもしれません。

また、適切なエクスポーターを設定して、1つ以上のテレメトリーバックエンドにテレメトリーデータをエクスポートすることもできます。

さらに、Pythonのゼロコード計装も確認できます。