概要

Datadog は、ブラウザやモバイルの RUM SDK から Real User Monitoring (RUM) イベントを収集し、簡単なグラフの作成や Apdex などのパフォーマンス指標を計算するために使用することができます。

Apdex スコアを計算するには、APM のサービスモニタリング、または RUM SDK のユーザーモニタリングデータを使用することができます。このガイドでは、RUM データとクイックグラフQuery Value ウィジェットを使用して、アプリケーションの Apdex を計算する手順を説明します。

サービスモニタリングデータを用いた Apdex の計算については、サービス別 Apdex スコア構成をご覧ください。

前提条件

  • お客様の Web またはモバイルアプリケーションは、RUM SDK でインスツルメンテーションされています。インスツルメンテーションを設定するには、RUM Browser MonitoringRUM Android Monitoring、および RUM iOS Monitoring を参照してください。
  • アプリケーションからのイベントは、Datadog で利用できます。

Apdex スコアの算出

以下の例では、RUM イベントの Largest Contentful Paint のパフォーマンスメトリクスと、T = 2 sec という仮想の閾値を使用して Apdex スコアを算出しています。イライラする待ち時間の最小値は 4T = 8 sec です。結果の値は、ダッシュボードやノートブックにエクスポートできるクエリ値ウィジェットのクイックグラフに表示されます。

クイックグラフの作成

  1. Dashboards > Quick Graph の順に移動します。
  2. RUM クエリを 3 つ作成します。
    • クエリ a は、すべての満足なページロード (Largest Contentful Paint のロードに 2 秒かからない RUM ビュー) に対するものです。
    • クエリ b は、すべての許容ページロード (Largest Contentful Paint のロードに 8 秒を要する RUM ビュー) に対するものです。
    • クエリ c は、すべてのページロード (すべての RUM ビュー) に対するものです。
  3. Formula フィールドに、Apdex の数式 (a + 0.5 * b) / c を入力します。
  4. Select a visualization の下で、Query Value をクリックします。クエリ値ウィジェットが表示されます。
  5. タイムフレームセレクタで、Past 1 Day を選択します。デフォルトでは、ウィジェットはグローバルタイムで表示されます。
  6. グラフの名前を入力します (Apdex Score など)。
  7. オプションで、クイックグラフをダッシュボードまたはノートブックにエクスポートまたはコピーアンドペーストするか、Export > New Dashboard をクリックして、このクイックグラフを使ったダッシュボードを作成することができます。

クエリ A

  1. Graph your data で、クエリ a のデータソースとして RUM を選択し、@view.largest_contentful_paint:<2s と入力します。
  2. Enter キーを押すか、ドロップダウンメニューから Update query をクリックします。クエリ aRUM の隣に、Largest Contentful Paint:<2s クエリが表示されます。

クエリ B

  1. クエリ b を作成するには、+ Add Query をクリックします。
  2. クエリ b のデータソースとして RUM を選択し、 @view.largest_contentful_paint:[2s TO 8s] と入力します。
  3. Enter キーを押すか、ドロップダウンメニューから Update query をクリックします。クエリ bRUM の隣に、Largest Contentful Paint:[2s - 8s] クエリが表示されます。

クエリ C

  1. クエリ c を作成するには、+ Add Query をクリックします。
  2. クエリ c のデータソースとして RUM を選択し、@Type:view と入力します。
  3. Enter キーを押すか、ドロップダウンメニューから Update query をクリックします。クエリ cRUM の隣に、Type:view クエリが表示されます。
Apdex スコアをクイックグラフで見る

JSON コンフィギュレーション

このグラフの JSON コードにアクセスするには、Edit の隣にある JSON タブをクリックします。

右端のコピーアイコンをクリックすると、クイックグラフの JSON がクリップボードにコピーされます。

JSON

{
    "viz": "query_value",
    "requests": [
        {
            "formulas": [
                {
                    "formula": "(query1 + 0.5 * query2) / query3"
                }
            ],
            "queries": [
                {
                    "search": {
                        "query": "@type:view @view.largest_contentful_paint:<2000000000"
                    },
                    "data_source": "rum",
                    "compute": {
                        "aggregation": "count"
                    },
                    "name": "query1",
                    "indexes": [
                        "*"
                    ],
                    "group_by": []
                },
                {
                    "search": {
                        "query": "@type:view @view.largest_contentful_paint:[2000000000 TO 8000000000]"
                    },
                    "data_source": "rum",
                    "compute": {
                        "aggregation": "count"
                    },
                    "name": "query2",
                    "indexes": [
                        "*"
                    ],
                    "group_by": []
                },
                {
                    "search": {
                        "query": "@type:view"
                    },
                    "data_source": "rum",
                    "compute": {
                        "aggregation": "count"
                    },
                    "name": "query3",
                    "indexes": [
                        "*"
                    ],
                    "group_by": []
                }
            ],
            "response_format": "scalar",
            "conditional_formats": []
        }
    ],
    "autoscale": true,
    "precision": 2
}

その他の視覚化と Apdex スコア

上記の例では、Apdex スコアは、View RUM イベントと Largest Contentful Paint のパフォーマンスメトリクスに関連しています。

その他の Apdex スコアは、以下の方法で算出することができます。

  • Apdex スコアの経時変化を見るには、Select your visualizationQuery Value の代わりに Timeseries を選択します。
  • 特定のアプリケーションの Apdex スコアを計算するには、@application.name クエリを追加し、計算式を更新します。
  • Apdex スコアを First Contentful Paint のような別の RUM パフォーマンスメトリクスで計算するには、クエリ内の @view.LargestContentfulPaint@view.FirstContentfulPaint に置き換えます。

アプリケーションの追加パフォーマンス指標を計算するには、クイックグラフを作成する前に、どのデータポイントが必要で、どの RUM イベントが関連するかを決定します。

その他の参考資料