分散型トレーシング

分散型トレーシング

Datadog では、サーバーレストレースをメトリクスに接続することで、アプリケーションのパフォーマンスに関する豊富な情報を提供します。これにより、サーバーレスアプリケーションの性質である分散型の環境でもパフォーマンスの問題を的確にトラブルシューティングできます。

Datadog Python、Node.js、Ruby、Go、Java トレースライブラリは、AWS Lambda の分散トレースをサポートします。アプリケーションにトレースを追加する最も簡単な方法は、依存関係として Datadog トレースライブラリを含む Datadog Lambda ライブラリを使用することです。

トレーシングライブラリを選択

サーバーレスモニタリングは初めてですか?こちらのインストール手順に従って開始します。

サーバーレスアプリケーションで Datadog APM の使用を開始するには、Lambda ランタイムと個々の要件に基づいて Datadog のトレースライブラリ (dd-trace) または AWS X-Ray トレースライブラリをインストールするかを選択できます。ライブ検索ビューで Datadog のすべてのトレースをリアルタイムで表示するには、Datadog のトレースライブラリを使用する必要があります。

dd-trace を使用した Datadog APMAWS X-Ray を使用した Datadog APM
Datadog APM のインテグレーションライブラリを使用してエンドツーエンドのトレーシングを行います。AWS X-Ray からトレースを取得します。
Datadog でトレースをリアルタイムで視覚化します。トレースデータは数分後に Datadog で利用可能。
テールベースのサンプリングと完全にカスタマイズ可能なタグベースの保持フィルター。サンプリングレートは構成できません。
Python、Node.js、Ruby、Go、Java をサポートしています。すべての Lambda ランタイムをサポートしています。

ランタイムの推奨事項


Python と Node.js

Python および Node.js をサポートする Datadog Lambda ライブラリとトレースライブラリ:

  • Lambda ログおよびトレースとトレース ID およびタグ挿入との自動相関。
  • Serverless Framework、AWS SAM、AWS CDK インテグレーションを使用したコード変更なしのインストール。
  • ダウンストリームの Lambda 関数またはコンテナを呼び出す HTTP リクエストをトレース。
  • AWS SDK で実行された連続 Lambda 呼び出しのトレース。
  • AWS SQS を介した非同期 Lambda 呼び出しのトレース。
  • すぐに使用できる数十の追加の Python および Node.js ライブラリをトレース。
  • SNS、Kinesis、EventBridge、MQTT などを介して作成された非 HTTP リクエストのトレース(こちらの追加インスツルメンテーションが必要)。

Python および Node.js サーバーレスアプリケーションの場合、Datadog では Datadog のトレースライブラリをインストールすることをお勧めします。アプリケーションで API Gateway や Step Functions などの AWS マネージドサービスで AWS X-Ray アクティブトレースが必要な場合は、こちらで説明されているように AWS X-Ray と Datadog APM の_両方_のトレースライブラリを構成して、Datadog APM で AWS X-Ray トレースを拡張することをお勧めします。

すでに X-Ray でサーバーレス関数をトレースしていて、X-Ray を引き続き使用したい場合は、AWS X-Ray インテグレーションをインストールできます。

上記にリストされていないサーバーレスリソースのトレースをご希望の場合は、こちらから機能リクエストを開いてください。

Ruby

Ruby サポート用の Datadog Lambda ライブラリとトレースライブラリ:

  • Lambda ログおよびトレースとトレース ID およびタグ挿入との自動相関。
  • ダウンストリームの Lambda 関数またはコンテナを呼び出す HTTP リクエストをトレース。
  • すぐに使用できる数十の追加 Ruby ライブラリをトレース。

Datadog のトレースライブラリまたは AWS X-Ray インテグレーションのインストールを使用して、Datadog でサーバーレス関数をトレースできます。Datadog のトレースライブラリを使用していて、AWS マネージドサービス間で Lambda 関数トレースを接続する必要がある場合は、こちらで説明されているように AWS X-Ray と Datadog APM の_両方_のトレースライブラリを構成して、トレースを拡張することをお勧めします。

上記にリストされていないサーバーレスリソースのトレースをご希望の場合は、こちらから機能リクエストを開いてください。

Go

Go サポート用の Datadog Lambda ライブラリとトレースライブラリ:

  • Lambda ログおよびトレースとトレース ID およびタグ挿入との手動相関。
  • ダウンストリームの Lambda 関数またはコンテナを呼び出す HTTP リクエストをトレース。
  • すぐに使用できる数十の追加 Go ライブラリをトレース。

Datadog のトレースライブラリまたは AWS X-Ray インテグレーションのインストールを使用して、Datadog でサーバーレス関数をトレースできます。Datadog のトレースライブラリを使用していて、イベント駆動型アーキテクチャで複数の Lambda 関数トレースを接続する必要がある場合は、こちらで説明されているように AWS X-Ray と Datadog APM の_両方_のトレースライブラリを構成して、トレースを拡張することをお勧めします。

上記にリストされていないサーバーレスリソースのトレースをご希望の場合は、こちらから機能リクエストを開いてください。

Java

Java サポート用の Datadog Lambda ライブラリとトレースライブラリ:

  • Lambda ログおよびトレースとトレース ID およびタグ挿入との相関。詳細は、Java ログとトレースの接続を参照してください。
  • ダウンストリームの Lambda 関数またはコンテナを呼び出す HTTP リクエストをトレース。
  • すぐに使用できる数十の追加 Java ライブラリをトレース。

Datadog のトレースライブラリまたは AWS X-Ray インテグレーションのインストールを使用して、Datadog でサーバーレス関数をトレースできます。Datadog のトレースライブラリを使用していて、イベント駆動型アーキテクチャで複数の Lambda 関数トレースを接続する必要がある場合は、こちらで説明されているように AWS X-Ray と Datadog APM の_両方_のトレースライブラリを構成して、トレースを拡張することをお勧めします。

Java Lambda 関数用の Datadog のトレースライブラリに関してフィードバックがございましたら、Datadog Slack コミュニティ#serverless チャネルで行われているディスカッションをご確認ください。

.NET

Datadog は、AWS X-Ray インテグレーションをインストールすることにより、.NET AWS Lambda サーバーレスアプリケーションのトレースを構成することをお勧めします。

.NET Azure サーバーレスアプリケーションを介したトレースの詳細については、こちらをご覧ください。

Datadog トレースライブラリを使用した .NET AWS Lambda サーバーレスアプリケーションのトレースをご希望の場合は、こちらから機能リクエストを開いてください。

ハイブリッド環境

Datadog のトレーシングライブラリ (dd-trace) を Lambda 関数とホストの両方にインストールした場合は、AWS Lambda、コンテナ、オンプレミスホスト、マネージドサービスなど、インフラストラクチャーの境界を越えてリクエストの全体像がトレースに自動的に表示されます。

Datadog Agent でホストに dd-trace がインストールされていて、サーバーレス関数が AWS X-Ray でトレースされる場合、インフラストラクチャー全体で接続された単一のトレースを表示するには、トレースのマージが必要です。dd-trace と AWS X-Ray からのトレースのマージの詳細についてはこちらをご覧ください。

Datadog の AWS X-Ray インテグレーションは、Lambda 関数のトレースのみを提供します。コンテナまたはホストベースの環境でのトレースの詳細については、こちらをご覧ください。

Datadog APM を有効にする

Live Search

Datadog Python、Node.js、Ruby、Go、Java トレースライブラリは、AWS Lambda の分散トレースをサポートします。ご使用の関数にトレースを有効にするには、インストール手順に従ってください。

ご使用の関数のログを有効にせずに Datadog APM を有効にするには、Datadog Forwarder で DdForwarderLog 環境変数が false に設定することをご確認ください。

その他の参考資料

お役に立つドキュメント、リンクや記事: