概要

自動インスツルメンテーションにより、アプリケーション用のスパンを自動的に作成できます。これにより、標準的な操作や広く利用されているフレームワークから可観測性データを最小限の手動作業で取得することが可能です。Single Step Instrumentation を使用して Datadog Agent をインストールする場合や、Datadog トレーシングライブラリを手動で追加する場合に、アプリケーションを自動的にインスツルメントできます。

ユースケース

自動インスツルメンテーションを使用するシチュエーションの例としては、以下が挙げられます。

  • 一般的なライブラリや言語全体で必要不可欠な可観測性データを、最小限の構成で取得したい場合
  • あらかじめ設定された構成によるリアルタイムモニタリングを有効にし、アプリケーションのパフォーマンスに即時の洞察を得たい場合
  • カスタムインスツルメンテーションが必要ないプロジェクトで、可観測性のセットアップを簡素化したい場合

はじめに

自動インスツルメンテーションのアプローチについて詳しく知りたい場合は、該当するドキュメントを参照してください。

Enable APM Instrumentation (beta) オプションを選択して Datadog Agent をインストールまたは更新すると、APM を有効にするように Agent がインストールおよび構成されます。これにより、追加のインストールや構成手順なしでアプリケーションを自動的にインスツルメントすることが可能になります。

はじめに、Single Step Instrumentation のドキュメントをお読みください。

Datadog ライブラリを使用してアプリケーションを自動的にインスツルメントするには

  1. Agent をインストールして構成します
  2. Datadog のトレーシングライブラリをコードに追加します。

Agent のインストールと構成

インスツルメントしたアプリケーションからトレースを受信するように Datadog Agent をインストールおよび構成します。デフォルトでは、Datadog Agent は datadog.yaml ファイルの apm_config セクションで enabled: true と設定されており、http://localhost:8126 でトレースデータをリッスンしています。

コンテナ化された環境の場合は、以下のリンクを参照して Datadog Agent 内でトレースの収集を有効にしてください。

コンテナ

  1. メイン datadog.yaml コンフィギュレーションファイルapm_config セクションで apm_non_local_traffic: true を設定します。
  2. コンテナ化された環境でトレースを受信するように Agent を構成する方法については、それぞれの説明を参照してください。
Docker
Kubernetes
Amazon ECS
ECS Fargate

  1. トレースクライアントはデフォルトで Unix ドメインソケット /var/run/datadog/apm.socket にトレースを送信しようとします。ソケットが存在しない場合、トレースは http://localhost:8126 に送信されます。

    別のソケット、ホスト、またはポートが必要な場合は、環境変数 DD_TRACE_AGENT_URL を使用します。例:

    DD_TRACE_AGENT_URL=http://custom-hostname:1234
    DD_TRACE_AGENT_URL=unix:///var/run/datadog/apm.socket
    

    同様に、トレースクライアントは Unix ドメインソケット /var/run/datadog/dsd.socket に統計情報を送信しようと試みます。ソケットが存在しない場合、統計情報は http://localhost:8125 に送信されます。

  1. Datadog Agent の DD_SITE に設定して、Agent が正しい Datadog の場所にデータを送信するようにします。

AWS Lambda

AWS Lambda で Datadog APM を設定するには、サーバーレス関数のトレースドキュメントを参照してください。

他の環境について

トレースは、HerokuCloud FoundryAWS Elastic BeanstalkAzure App Service など、他のいくつかの環境で利用できます。

その他の環境については、その環境のインテグレーションのドキュメントを参照し、セットアップの問題が発生した場合はサポートにお問い合わせください。

アプリケーションをインスツルメントする

次の公式 Datadog トレースライブラリのいずれかを使用してトレースを送信するようにアプリケーションを構成します。

Java
Python
Ruby
go
Node.js
PHP
C++
.Net
.Net
Android
iOS

公式ライブラリでサポートされていない言語で記述されたアプリケーションをインスツルメントする場合は、コミュニティトレーシングライブラリのリストを参照してください。

参考資料