OpenTelemetryオペレーターを使用して自動計装を注入する

KubernetesでPythonサービスを実行する場合、OpenTelemetryオペレーターを活用することで、各サービスを直接修正することなく自動計装を注入できます。 詳細はOpenTelemetryオペレーターによる自動計装のドキュメントを参照してください

Python 固有のトピック

バイナリwheel付きライブラリ

私たちが計装を行ったり、計装ライブラリで必要とするPythonのパッケージの中には、バイナリコードが同梱されていることがあります。 たとえば、grpciopsutil (opentelemetry-instrumentation-system-metrics で使われている) がそうです。

バイナリコードは、特定のCライブラリのバージョン(glibcまたはmusl)と特定のPythonのバージョンに関連付けられています。 OpenTelemetryオペレーターは、glibc Cライブラリに基づいた単一のPythonバージョン用のイメージを提供します。 もしこれを使いたいのであれば、Python自動計装用のオペレーターDockerイメージを自分で構築する必要があるかもしれません。

オペレーター v0.113.0以降、glibcとmuslベースの自動計装の両方を持つイメージをビルドし、実行時に設定することが可能です。

Django アプリケーション

Django のように独自の実行ファイルから実行されるアプリケーションでは、デプロイファイルに2つの環境変数を設定する必要があります。

  • PYTHONPATH には Django アプリケーションのルートディレクトリへのパスを指定します(例: “/app”)。
  • DJANGO_SETTINGS_MODULE に Django 設定モジュールの名前を指定します(例: “myapp.settings”)。