Pythonの自動計装に関する問題のトラブルシューティング

インストールに関する問題

Python パッケージのインストール失敗

Pythonパッケージのインストールには gccgcc-c++ が必要で、CentOSのようなスリムバージョンのLinuxを使用している場合はインストールする必要があるかもしれません。

uv を使ったブートストラップ

uvパッケージマネージャを使用しているときに opentelemetry-bootstrap -a install を実行すると、依存関係の設定がエラーになったり、予期しない結果になったりすることがあります。

かわりに、OpenTelemetry 要件を動的に生成し、uv を使ってインストールできます。

まず、適切なパッケージをインストール(またはプロジェクトファイルに追加して uv sync を実行)します。

uv pip install opentelemetry-distro opentelemetry-exporter-otlp

これで、自動計装をインストールできます。

uv run opentelemetry-bootstrap -a requirements | uv pip install --requirement -

最後に、 uv run を使用してアプリケーションを起動します(エージェントの設定を参照してください)。

uv run opentelemetry-instrument python myapp.py

uv sync を実行したり、既存のパッケージを更新したりするたびに、自動計装を再インストールする必要があることに注意してください。 そのため、ビルドパイプラインの一部としてインストールを行うことを推奨します。

計装の問題

リローダによる Flask デバッグモードが計装を壊す

デバッグモードは、Flaskアプリで次のように有効にできます。

if __name__ == "__main__":
    app.run(port=8082, debug=True)

デバッグモードはリローダを有効にするため、計装を中断させることがあります。 デバッグモードが有効なときに計装を実行するには、 use_reloader オプションを False に設定します。

if __name__ == "__main__":
    app.run(port=8082, debug=True, use_reloader=False)

接続性の問題

gRPCコネクティビティ

Python gRPC接続の問題をデバッグするには、以下のgRPCデバッグ環境変数を設定します。

export GRPC_VERBOSITY=debug
export GRPC_TRACE=http,call_error,connectivity_state
opentelemetry-instrument python YOUR_APP.py