10.6. 計装のトラブルシューティング


計装のトラブルシューティングを行うには、次のいずれかの問題を確認します。

  • ワークロードへの計装の注入に関する問題
  • 計装ライブラリーによるデータ生成に関する問題

10.6.1. ワークロードへの計装注入のトラブルシューティング

計装注入のトラブルシューティングを行う際には、次の作業を実行できます。

  • Instrumentation オブジェクトが作成されたかどうかを確認する
  • init-container が起動したかどうかを確認する
  • リソースが正しい順序でデプロイされたかどうかを確認する
  • Operator ログのエラーを検索する
  • Pod アノテーションを再確認する

手順

  1. 次のコマンドを実行して、Instrumentation オブジェクトが正常に作成されたことを確認します。

    $ oc get instrumentation -n <workload_project> 
    1
    Copy to Clipboard Toggle word wrap
    1
    計装が作成された namespace。
  2. 次のコマンドを実行して、ワークロードへの計装注入の前提条件である opentelemetry-auto-instrumentation init-container が正常に起動したことを確認します。

    $ oc get events -n <workload_project> 
    1
    Copy to Clipboard Toggle word wrap
    1
    ワークロードの計装が注入された namespace。

    出力例

    ... Created container opentelemetry-auto-instrumentation
    ... Started container opentelemetry-auto-instrumentation
    Copy to Clipboard Toggle word wrap

  3. 自動計装が正しく機能するように、リソースが正しい順序でデプロイされたことを確認します。アプリケーションの前に Instrumentation カスタムリソース (CR) をデプロイするのが正しい順序です。Instrumentation CR の詳細は、「計装の設定」セクションを参照してください。

    注記

    Pod が起動すると、Red Hat build of OpenTelemetry Operator が、自動計装を注入するための指示を含むアノテーションが Instrumentation CR にあるかどうかを確認します。通常、この Operator はアプリケーションの Pod に init コンテナーを追加し、自動計装と環境変数をアプリケーションのコンテナーに注入します。アプリケーションのデプロイ時に Operator が Instrumentation CR を利用できない場合、Operator は自動計装を注入できません。

    デプロイメントの順序を修正するには、次の手順が必要です。

    1. 計装の設定を更新します。
    2. Instrumentation オブジェクトを削除します。
    3. アプリケーションを再デプロイします。
  4. 次のコマンドを実行して、Operator ログで計装のエラーを調べます。

    $ oc logs -l app.kubernetes.io/name=opentelemetry-operator --container manager -n openshift-opentelemetry-operator --follow
    Copy to Clipboard Toggle word wrap
  5. 特定プログラミング言語の計装用の Pod アノテーションをトラブルシューティングします。「計装の設定」で必要なアノテーションフィールドと値を参照してください。

    1. 計装するアプリケーションの Pod に正しいアノテーションが付けられ、適切な自動計装設定が適用されていることを確認します。

      instrumentation.opentelemetry.io/inject-python="true"
      Copy to Clipboard Toggle word wrap

      計装された Python アプリケーションの Pod アノテーションを取得するコマンドの例

      $ oc get pods -n <workload_project> -o jsonpath='{range .items[?(@.metadata.annotations["instrumentation.opentelemetry.io/inject-python"]=="true")]}{.metadata.name}{"\n"}{end}'
      Copy to Clipboard Toggle word wrap

    2. Instrumentation オブジェクトに適用されたアノテーションが、計装するプログラミング言語に対して正しいことを確認します。
    3. 同じ namespace に複数の計装がある場合は、それらのアノテーションに Instrumentation オブジェクトの名前を指定します。

      instrumentation.opentelemetry.io/inject-nodejs: "<instrumentation_object>"
      Copy to Clipboard Toggle word wrap

    4. Instrumentation オブジェクトが別の namespace にある場合は、アノテーションでその namespace を指定します。

      instrumentation.opentelemetry.io/inject-nodejs: "<other_namespace>/<instrumentation_object>"
      Copy to Clipboard Toggle word wrap

    5. OpenTelemetryCollector カスタムリソースの spec.template.metadata.annotations の下に自動計装のアノテーションが指定されていることを確認します。spec.metadata.annotations に自動計装のアノテーションがある場合は、spec.template.metadata.annotations に移動します。

10.6.2. 計装ライブラリーによるテレメトリーデータ生成のトラブルシューティング

エンドポイントを確認し、アプリケーションログでエラーを探し、Collector がテレメトリーデータを受信していることを確認することで、計装ライブラリーによるテレメトリーデータ生成のトラブルシューティングを行うことができます。

手順

  1. 計装が正しいエンドポイントにデータを送信していることを確認します。

    $ oc get instrumentation <instrumentation_name> -n <workload_project> -o jsonpath='{.spec.endpoint}'
    Copy to Clipboard Toggle word wrap

    Instrumentation オブジェクトのデフォルトのエンドポイント http://localhost:4317 は、アプリケーション Pod にサイドカーとしてデプロイされた Collector インスタンスにのみ適用されます。間違ったエンドポイントを使用している場合は、Instrumentation オブジェクトを編集してアプリケーションを再デプロイすることで修正します。

  2. アプリケーションログを調べて、計装が誤動作していることを示すエラーメッセージがないか確認します。

    $ oc logs <application_pod> -n <workload_project>
    Copy to Clipboard Toggle word wrap
  3. アプリケーションログに、計装が誤動作している可能性があることを示すエラーメッセージが含まれている場合は、OpenTelemetry SDK とライブラリーをローカルにインストールします。次に、アプリケーションをローカルで実行し、OpenShift Container Platform を使用せずに、計装ライブラリーとアプリケーション間の問題をトラブルシューティングします。
  4. Debug Exporter を使用して、テレメトリーデータが宛先の OpenTelemetry Collector インスタンスに到達していることを確認します。詳細は、「Debug Exporter」を参照してください。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat