APM トラブルシューティング
Dash が新機能を発表!インシデントマネジメント、Continuous Profiler など多数の機能が追加されました! Dash イベントで発表された新機能!

APM トラブルシューティング

Datadog APM で予期しない動作が発生した場合に、ご自分で確認できるよくある問題を本ガイドでいくつかご紹介します。問題が解決しない場合は、Datadog サポート にお問い合わせください。

APM のセットアップと APM ステータスの確認

起動時、下記リストにあるバージョン以降の Datadog トレースライブラリは、JSON オブジェクトに適用された設定を反映するログおよび発生したエラーを出力します。それには、対応する言語で Agent に到達できるかも含まれます。ご使用中のトレーサーバージョンにこの起動ログが含まれる場合、そこでトラブルシューティングを始めます。

言語バージョン
Java0.59+
.NET1.18.2 以降
PHP0.47.0 以降
Go1.26.0+
NodeJS0.23.0 以降
Python0.41+
Ruby0.38+
C++1.2.0+

トレーサーのデバッグログ

Datadog トレーサーの詳細をすべて取得するには、DD_TRACE_DEBUG 環境変数を使いトレーサーのデバッグモードを有効にします。独自の調査のために有効にしたり、Datadog サポートもトリアージ目的で推奨していることを理由に、有効にしたりできます。ただし、ログのオーバーヘッドが発生するため、デバッグモードを有効のままにはしないでください。

これらのログは、インスツルメンテーションエラーやインテグレーション固有のエラーを明らかにすることができます。デバッグログの有効化と取得に関する詳細は、デバッグモードのトラブルシューティングページを参照してください。

APM レート制限

Datadog Agent ログで、レート制限や 1 秒あたりの最大イベント数に関するエラーメッセージが表示される場合、以下の手順に従い制限を変更します。ご不明な点は、サポートチームまでお問い合わせください。

スパンの修正、破棄、難読化

Datadog Agent またはトレースクライアント (一部の言語のみ) 内で構成可能なヘルスチェック、またその他不要なトラフィックに関連する機密データのスクラブやトレースの破棄に関しては数々のコンフィギュレーションオプションが用意されています。利用可能なオプションについては、ドキュメントのセキュリティと Agent のカスタマイズページを参照してください。本文では代表的な例をご紹介していますが、これらのオプションをお使いの環境に適用する際にサポートが必要な場合は、希望される結果の詳細を添えて Datadog サポートまでお問い合わせください。

Datadog サポートが収集するトラブルシューティングのデータ

サポートチケットを作成する際、下記のような情報が必要となる場合がございます。

  1. 問題を確認することはできますか?たとえば、トレース (推奨) やスクリーンショットへのリンクを提供し、何が起こるかをお聞かせください。

これにより、サポートチームはエラーを確認し、そのテスト環境で問題の再現を試みることができます。

  1. トレーサー起動ログ

    起動ログにより、トレーサーの設定ミスやトレーサーがDatadog Agent と通信できていないことが分かります。トレーサーが参照するコンフィギュレーションとアプリケーションやコンテナ内の設定を比べることで、設定が正しく適用されていない箇所を特定できます。

  2. トレーサーデバッグログ

    トレーサーのデバッグログは起動ログよりさらに深く掘り下げ、トラフィックがアプリケーションを通過するまでチェックしがたい方法でインテグレーションが正しくインスツルメントされているか判断するのに役立ちます。デバッグログはトレーサーが作成するスパンの内容を確認したり、スパンを Agent に送信する際に接続に問題がある場合エラーを表面化させることもできます。トレーサーのデバッグログは、トレーサーの微妙な動作を確認するのに最も有益で信頼性の高いツールです。

  3. これらのログで探している情報に応じて、デバッグまたはトレースモード中にトレースが Agent に送信された期間の代表的なログサンプルをキャプチャする Agent フレア (ログおよび構成のスナップショット)

    Agent フレアにより Datadog Agent 内で起きていることや、トレースが Agent 内で拒否または不正な形式にされているかを確認できます。これはトレースが Agent に到達していない場合は役に立ちませんが、問題の原因やメトリクスの不一致を特定することはできます。

    ログのレベルを debug または trace モードに調節する場合は、この操作によりログの量が劇的に増加し、システムリソースの消費量 (主に長期的なストレージスペースの増加) が見込まれることを考慮してください。この操作は一時的なトラブルシューティング目的のみで行い、完了後はレベルを info に戻すことを推奨します。

    : Agent v7.19+ および Datadog Helm チャートの最新版、または Datadog Agent とトレース Agent が別コンテナにある状況で DaemonSet をご利用の場合は、トレース Agent からフレアを取得するために datadog.yamllog_level: DEBUG または log_level: TRACE を設定した状態で以下のコマンドを実行する必要があります。

    trace-agent.sh

    kubectl exec -it <agent-pod-name> -c trace-agent -- agent flare <case-id> --local
        
  4. 環境の詳細

    アプリケーションのデプロイ方法を知ることで、トレーサーと Agent 間の通信の問題や設定ミスにおけるありがちな問題を特定することができます。問題が複雑な場合は、Kubernetes マニフェストや ECS タスク定義などを参照していただく場合もあります。

  5. トレーサーコンフィギュレーション、カスタムインスツルメンテーション、スパンタグの追加など、トレーシングライブラリを使用して書かれたカスタムコード

    カスタムインスツルメンテーションは、とても強力なツールになりますが、Datadog でトレースを視覚化する際に意図しない副作用を生み出す可能性もあるため、質問することで疑問を取り除きます。また、自動インスツルメンテーションおよびコンフィギュレーションをお願いすることで、トレーサーの起動ログとデバッグログで表示されるものと一致するかも確認できます。

  6. ご使用の言語、フレームワーク、Datadog Agent、トレーシングライブラリのバージョン

    使用するバージョンを知ることで、インテグレーションが 互換性要件でサポートされていることを確認したり、既知の問題をチェックしたり、トレーサーや言語のバージョンに問題がある場合はその更新をお勧めすることができます。

その他の参考資料