RUM とトレースの接続
Incident Management が一般に使用できるようになりました。 Incident Management が広範に使用できるようになりました。

RUM とトレースの接続

APM と Real User Monitoring のインテグレーションにより、Web およびモバイルアプリケーションからのリクエストを対応するバックエンドトレースにリンクできます。この組み合わせにより、1 つのレンズを通してフロントエンドとバックエンドの完全なデータを確認できます。

RUM のフロントエンドデータ、トレース ID 挿入のバックエンド、インフラストラクチャー、ログ情報を使用して、スタック内の問題をすばやく特定し、ユーザーに起こっていることを完全に理解します。

使用方法

前提条件

RUM のセットアップ

  1. Browser Real User Monitoring を設定します。

  2. 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 は Javascript 文字列と正規表現を受け入れます。

  1. Android Real User Monitoring を設定します。

  2. 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.comfoo.example.com のトレースも有効になります。

  1. iOS Real User Monitoring を設定します。

  2. 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()
)
  1. セットアップドキュメントに記載されているように URLSession を初期化します。
let session =  URLSession(
    configuration: ...,
    delegate: DDURLSessionDelegate(),
    delegateQueue: ...
)

: デフォルトでは、リストされたホストのすべてのサブドメインがトレースされます。たとえば、example.com を追加すると、api.example.comfoo.example.com のトレースも有効になります。

サポートされているライブラリ

以下の Datadog トレーシングライブラリがサポートされています。

ライブラリ最小バージョン
Python0.22.0
Go1.10.0
Java0.24.1
Ruby0.20.0
JavaScript0.10.0
PHP0.33.0
.NET1.18.2

RUM リソースはどのようにトレースにリンクされていますか?

Datadog は、分散型トレーシングプロトコルを使用し、以下の HTTP ヘッダーを設定します。

ヘッダー説明
x-datadog-trace-idReal User Monitoring SDK から生成されます。Datadog がトレースを RUM リソースにリンクできるようにします。
x-datadog-parent-idReal User Monitoring SDK から生成されます。Datadog がトレースから最初のスパンを生成できるようにします。
x-datadog-origin: rumReal User Monitoring から生成されたトレースが、APM インデックススパン数に影響を与えないようにするため。
x-datadog-sampling-priority: 1Agent がトレースを維持するようにします。
x-datadog-sampled: 1Real User Monitoring SDK から生成されます。このリクエストがサンプリング用に選択されていることを示します。

APM クオータへの影響

x-datadog-origin: rum ヘッダーは、トレースが Real User Monitoring から生成されることを APM バックエンドに指定します。したがって、生成されたトレースは、インデックス化スパン数に影響を与えません。

トレースの保持期間

これらのトレースは、従来の APM トレースと同様に保持されます。

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