- はじめに
- エージェント
- インテグレーション
- Watchdog
- イベント
- ダッシュボード
- モバイルアプリケーション
- インフラストラクチャー
- サーバーレス
- メトリクス
- ノートブック
- アラート設定
- APM & Continuous Profiler
- CI Visibility
- RUM & セッションリプレイ
- データベース モニタリング
- ログ管理
- セキュリティプラットフォーム
- Synthetic モニタリング
- ネットワークモニタリング
- 開発者
- API
- アカウントの管理
- データセキュリティ
- ヘルプ
APM と Real User Monitoring のインテグレーションにより、Web およびモバイルアプリケーションからのリクエストを対応するバックエンドトレースにリンクできます。この組み合わせにより、1 つのレンズを通してフロントエンドとバックエンドの完全なデータを確認できます。
RUM のフロントエンドデータ、トレース ID 挿入のバックエンド、インフラストラクチャー、ログ情報を使用して、スタック内の問題をすばやく特定し、ユーザーに起こっていることを完全に理解します。
Browser Real User Monitoring を設定します。
RUM SDK を初期化します。ブラウザアプリケーションによって呼び出される内部 (ファーストパーティ) オリジンのリストを使用して、allowedTracingOrigins
初期化パラメーターを設定します。
import { datadogRum } from '@datadog/browser-rum'
datadogRum.init({
applicationId: '<DATADOG_APPLICATION_ID>',
clientToken: '<DATADOG_CLIENT_TOKEN>',
...otherConfig,
allowedTracingOrigins: ["https://api.example.com", /https:\/\/.*\.my-api-domain\.com/]
})
注: allowedTracingOrigins
は、<scheme> "://" <hostname> [ ":" <port> ]
と定義された、ブラウザアプリケーションにより呼び出された呼び出し元と一致する Javascript 文字列および正規表現を受け入れます。
Android Real User Monitoring を設定します。
Android アプリケーションによって呼び出される内部 (ファーストパーティ) オリジンのリストを使用して、OkHttpClient
インターセプターを構成します。
val tracedHosts = listOf("example.com", "example.eu")
val okHttpClient = OkHttpClient.Builder()
.addInterceptor(DatadogInterceptor(tracedHosts))
.addNetworkInterceptor(TracingInterceptor(tracedHosts))
.eventListenerFactory(DatadogEventListener.Factory())
.build()
注: デフォルトでは、リストされたホストのすべてのサブドメインがトレースされます。たとえば、example.com
を追加すると、api.example.com
と foo.example.com
のトレースも有効になります。
iOS Real User Monitoring を設定します。
iOS アプリケーションによって呼び出される内部 (ファーストパーティ) オリジンのリストを使用して、firstPartyHosts
初期化パラメーターを設定します。
Datadog.initialize(
appContext: .init(),
configuration: Datadog.Configuration
.builderUsing(rumApplicationID: "<rum_app_id>", clientToken: "<client_token>", environment: "<env_name>")
.set(firstPartyHosts: ["example.com", "api.yourdomain.com"])
.build()
)
let session = URLSession(
configuration: ...,
delegate: DDURLSessionDelegate(),
delegateQueue: ...
)
注: デフォルトでは、リストされたホストのすべてのサブドメインがトレースされます。たとえば、example.com
を追加すると、api.example.com
と foo.example.com
のトレースも有効になります。
以下の Datadog トレーシングライブラリがサポートされています。
ライブラリ | 最小バージョン |
---|---|
Python | 0.22.0 |
Go | 1.10.0 |
Java | 0.24.1 |
Ruby | 0.20.0 |
JavaScript | 0.10.0 |
PHP | 0.33.0 |
.NET | 1.18.2 |
Datadog は、分散型トレーシングプロトコルを使用し、以下の HTTP ヘッダーを設定します。
x-datadog-trace-id
Real User Monitoring SDK から生成されます。Datadog がトレースを RUM リソースにリンクできるようにします。
x-datadog-parent-id
Real User Monitoring SDK から生成されます。Datadog がトレースから最初のスパンを生成できるようにします。
x-datadog-origin: rum
Real User Monitoring から生成されたトレースが、APM インデックススパン数に影響を与えないようにします。
x-datadog-sampling-priority: 1
x-datadog-sampled: 1
Real User Monitoring SDK から生成されます。このリクエストがサンプリング用に選択されていることを示します。
注: 上記 HTTP ヘッダーは CORS セーフリストに登録されていないため、SDK が監視するように設定されているリクエストを扱うサーバーで Access-Control-Allow-Headers を構成する必要があります。サーバーは、すべてのリクエストの前に SDK によって作られるプレフライトリクエストも許可する必要があります (OPTIONS リクエスト)。
x-datadog-origin: rum
ヘッダーは、トレースが Real User Monitoring から生成されることを APM バックエンドに指定します。したがって、生成されたトレースは、インデックス化スパン数に影響を与えません。
これらのトレースは、従来の APM トレースと同様に保持されます。