概要

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 でアプリケーションの詳細を指定

  1. Datadog で、UX Monitoring > Setup & Configurations > New Application へ移動します。
  2. アプリケーションタイプとして Unity を選択します。
  3. アプリケーション名を入力して一意の Datadog アプリケーション ID とクライアントトークンを生成します。
  4. クライアント IP またはジオロケーションデータの自動ユーザーデータ収集を無効にするには、これらの設定のチェックボックスをオフにします。

データの安全性を確保するために、クライアントトークンを使用する必要があります。クライアントトークンの設定方法については、クライアントトークンのドキュメントを参照してください。

インストール

  1. External Dependency Manager for Unity (EDM4U) をインストールします。これは Open UPM を使用して行うことができます。

  2. https://github.com/DataDog/unity-package にある Git URL から Datadog SDK Unity パッケージを追加します。

  3. Gradle テンプレートを使用するようにプロジェクトを構成し、Custom Main TemplateCustom Gradle Properties Template の両方を有効にします。

  4. もしビルドして Duplicate class エラー (Unity 2022.x でよくあるエラー) が発生する場合は、mainTemplate.gradledependencies ブロックに以下のブロックを追加してください。

    constraints {
         implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0") {
             because("kotlin-stdlib-jdk8 is now a part of kotlin-stdlib")
         }
    }
    
  5. Datadog Unity SDK を追加したら、Project Settings から Datadog を構成します。

    1. Datadog と RUM を有効にする
    2. Client TokenApplication Id を設定ウィンドウのフィールドにコピーします。
    3. 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 LogTypeDatadog Log Level
ログ情報
ErrorError
Assertクリティカル
WarningWarn
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) を手動で追跡するには、StartViewStopView メソッドを使用します。

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 の代替として簡単に利用できることを意図しています。DatadogTrackedWebRequestDatadog 分散型トレーシング を有効にします。

Datadog 分散型トレーシングを有効にするには、プロジェクトの設定で First Party Hosts を分散型トレーシングをサポートするドメインに設定する必要があります。また、Tracing Sampling Rateを設定することで、分散型トレーシングのサンプリングレートを変更することができます。

First Party Hosts ではワイルドカードは使用できませんが、指定されたドメインの任意のサブドメインとマッチします。例えば、api.example.com は staging.api.example.com と prod.api.example.com にはマッチしますが、news.example.com にはマッチしません。