RUM Unity Monitoring のセットアップ
概要
Join the Beta!
Unity Monitoring は非公開ベータ版です。アクセスをリクエストするには、Datadog サポートまでご連絡ください。
Datadog Real User Monitoring (RUM) を使用すると、アプリケーションの個々のユーザーのユーザージャーニーを視覚化して分析できます。
計画と使用
Datadog は、Unity LTS 2022 以上の iOS と Android の Unity Monitoring をサポートしています。
Datadog は、Unity からのデスクトップ (Windows、Mac、Linux)、コンソール、Web のデプロイには対応しておりません。ゲームやアプリケーションをお持ちで、Datadog RUM を使用してパフォーマンスを監視したい場合は、Datadog サポートでチケットを作成してください。
UI でアプリケーションの詳細を指定
- Datadog で、UX Monitoring > Setup & Configurations > New Application へ移動します。
- アプリケーションタイプとして
Unity
を選択します。 - アプリケーション名を入力して一意の Datadog アプリケーション ID とクライアントトークンを生成します。
- クライアント IP またはジオロケーションデータの自動ユーザーデータ収集を無効にするには、これらの設定のチェックボックスをオフにします。
データの安全性を確保するために、クライアントトークンを使用する必要があります。クライアントトークンの設定方法については、クライアントトークンのドキュメントを参照してください。
インストール
External Dependency Manager for Unity (EDM4U) をインストールします。これは Open UPM を使用して行うことができます。
https://github.com/DataDog/unity-package にある Git URL から Datadog SDK Unity パッケージを追加します。
Gradle テンプレートを使用するようにプロジェクトを構成し、Custom Main Template
と Custom Gradle Properties Template
の両方を有効にします。
もしビルドして Duplicate class
エラー (Unity 2022.x でよくあるエラー) が発生する場合は、mainTemplate.gradle
の dependencies
ブロックに以下のブロックを追加してください。
constraints {
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0") {
because("kotlin-stdlib-jdk8 is now a part of kotlin-stdlib")
}
}
Datadog Unity SDK を追加したら、Project Settings から Datadog を構成します。
- Datadog と RUM を有効にする
Client Token
と Application Id
を設定ウィンドウのフィールドにコピーします。Site
が正しいことを確認します。
Datadog の使用
追跡に関する同意の設定
データ保護とプライバシーポリシーに準拠するため、Datadog Unity SDK は追跡に関する同意の値の設定を求めます。
trackingConsent
設定は以下のいずれかの値で示されます。
TrackingConsent.Pending
: Unity SDK はデータの収集とバッチ処理を開始しますが、Datadog には送信しません。Unity SDK は新しい追跡に関する同意の値を待って、バッチされたデータをどうするかを決定します。TrackingConsent.Granted
: Unity SDK はデータの収集を開始し、Datadog へ送信します。TrackingConsent.NotGranted
: Unity SDK はデータを収集しません。ログが Datadog に送信されることはありません。
Datadog がデータを送信する前に、ユーザーの Tracking Consent
を確認する必要があります。これは初期化時に TrackingConsent.Pending
に設定され、Datadog が情報を送信する前に TrackingConsent.Granted
に設定される必要があります。
DatadogSdk.Instance.SetTrackingConsent(TrackingConsent.Granted);
ロギング
プロジェクトの設定でオプションとしきい値を有効にすることで、Unity のデフォルトのデバッグロガーからログを傍受して送信できます。
Datadog は、Datadog の Logging Levels で Unity レベルを以下にマップします。
Unity LogType | Datadog Log Level |
---|
ログ | 情報 |
Error | Error |
Assert | クリティカル |
Warning | Warn |
Exception | クリティカル |
DatadogSdk.DefaultLogger
プロパティを通して、このデフォルトのロガーにアクセスし、属性やタグを追加することができます。
また、しきい値、サービス名、ロガー名をより細かく制御すしたり、追加属性を供給するために、追加のロガーを作成することもできます。
var logger = DatadogSdk.Instance.CreateLogger(new DatadogLoggingOptions()
{
SendNetworkInfo = true,
DatadogReportingThreshold = DdLogLevel.Debug,
});
logger.Info("Hello from Unity!");
logger.Debug("Hello with attributes", new()
{
{ "my_attribute", 122 },
{ "second_attribute", "with_value" },
{ "bool_attribute", true },
{
"nested_attribute", new Dictionary<string, object>()
{
{ "internal_attribute", 1.234 },
}
},
});
Real User Monitoring (RUM)
シーン (ビュー) の手動追跡
新しいシーン (Datadog では Views
) を手動で追跡するには、StartView
と StopView
メソッドを使用します。
public void Start()
{
DatadogSdk.Instance.Rum.StartView("My View", new()
{
{ "view_attribute": "active" }
});
}
新しいビューを開始すると、前のビューは自動的に終了します。
シーンの自動追跡
Project Settings で Enable Automatic Scene Tracking
を設定すると、アクティブなシーンを自動的に追跡できるようになります。これは Unity の SceneManager.activeSceneChanged
イベントを使用して、自動的に新しいシーンを開始します。
Web リクエスト / リソース追跡
Datadog は DatadogTrackedWebRequest
を提供しています。これは UnityWebRequest
のラッパーであり、UnityWebRequest
の代替として簡単に利用できることを意図しています。DatadogTrackedWebRequest
は Datadog 分散型トレーシング を有効にします。
Datadog 分散型トレーシングを有効にするには、プロジェクトの設定で First Party Hosts
を分散型トレーシングをサポートするドメインに設定する必要があります。また、Tracing Sampling Rate
を設定することで、分散型トレーシングのサンプリングレートを変更することができます。
First Party Hosts
ではワイルドカードは使用できませんが、指定されたドメインの任意のサブドメインとマッチします。例えば、api.example.com は staging.api.example.com と prod.api.example.com にはマッチしますが、news.example.com にはマッチしません。