Datadog リアルユーザーモニタリングのご紹介 | Datadog

Datadog リアルユーザーモニタリングのご紹介

Author David M. Lentz

Published: 12月 4, 2019

ウェブサイトのパフォーマンスは、ビジネスの成功を左右する重要な要素です。ページの読み込み遅延やエラーがあるとユーザーエクスペリエンスが低下し、顧客離れ、広告インプレッションの落ち込み、カートに追加した商品が結局購入されない、など様々な悪影響が予想されます。Datadog の新機能「リアルタイムモニタリング(RUM)」は、個々のユーザーのアクティビティと体験をリアルタイムでくまなく可視化したいというニーズに応えて開発されました。インフラストラクチャーモニタリング、 分散型トレーシング、ログ分析、Synthetics テスト、ネットワークパフォーマンスモニタリングに加えて RUM を活用することで、サービスの健全性とパフォーマンスをさらに深いレベルで可視化し、業務目的に沿った結果がどれだけ出せているかを測ることができます。

Datadog 搭載の RUM ダッシュボードに、アプリのユーザーデータを可視化したグラフや表が表示されます。ページビュー、使用ブラウザや端末、読み込み時間、エラー、ビジネスメトリクスなどの確認が可能です。

ユーザーインタラクションに関するデータを収集

Datadog RUM SDK をアプリケーションに追加するだけで、システムが各ユーザーとアプリのインタラクションにまつわるデータを自動収集。アプリのフロントエンドパフォーマンスとユーザーアクティビティの概要が、システムに搭載の RUM ダッシュボード(上の画像を参照)に表示されます。

ここで収集される First Contentful Paint、DOM complete、DOM interactive などのメトリクスは、ウェブページがユーザーに提供可能なインタラクティビティー(双方向性)のレベルを示すものです。最も初期のイベントでは、インタラクションも最小限になります。ユーザーエクスペリエンス向上の鍵は、アプリを通じて真にインタラクティブな体験を「できる限り速く」提供することです。たとえ数ミリ秒であっても、インタラクション性に欠ける瞬間が蓄積していくにつれてユーザーの不満も増幅していくからです。

RUM を使用するよう構成したすべてのアプリケーションについて、Datadog はユーザーデータをページビュー(各ページの訪問状況の詳細)とセッション(1 回の訪問で継続的に発生した、単一ユーザーによるページビューの集合)に自動で分類します。この 2 つの指標は、サイトパフォーマンスを分析する上で非常に役立ちます。ページビューの一覧を時間、URL、ユーザー特性などでフィルタリングすれば、サイトのトラフィックを掘り下げて確認することができます。また、単一ビューと全体ビューを切り替えることで、 1 回のセッションで個々のユーザーが辿ったプロセス(ジャーニー)も簡単に確認できます。以下のスクリーンショットは、RUM エクスプローラーの単一ビューで Attributes タブを開いた際の画面です。セッション ID をクリックして、特定のセッションに属するビュー全体をフィルタリングすることができます。

RUM エクスプローラーページに表示されるページビューの一覧から、単一ビューを開いて収集したデータの詳細を確認することができます。ページビュー詳細はコンテキストメニュー形式で表示され、セッションで検索を行うことが可能です。

グローバルコンテキスト

RUM データはグローバルコンテキスト(各ページビューと紐付けたいユースケースに対応するユニーク属性)を含むようカスタマイズすることが可能です。グローバルコンテキスト内で属性を指定することで、ユーザーの行動やアプリケーションのパフォーマンスをより正確に把握できます。たとえば、グローバルコンテキストでアプリのバージョン番号を定義した場合、この属性をグループ化して「エラー率が上がっているのは、コードの特定のバージョンが原因か」といった内容を精査することができます。また、指定の条件にマッチするユーザーデータのみを閲覧したい場合は、RUM データをユーザー ID、グループのティアなど、グローバルコンテキストのその他の属性でフィルタリングすると便利です。

ユーザーアクション

アイテムがカートに追加された、「詳細を確認」ボタンがクリックされたなど、RUM で収集可能なユーザーアクションを通じて、ページ内で発生した固有のアクティビティをより良く把握することができます。主要なページ要素とその要素に関して意義のあるインタラクションを定義し、それに基づいて最も重要なユーザーアクションを追跡します。サーバーリクエストを伴わないアクションも同様に追跡が可能です。たとえば、ユーザーが広告バナーを閲覧した場合、RUM はバナーの読み込み時間やクリック率など、このユーザー行動に関する有用な属性を収集します。その結果に応じて各広告の収益インパクトを測り、広告主側で必要な措置を検討するなどの改善につなげることができます。

RUM はユーザーによる広告のクリック率やフォームの規定値の使用率など、ユーザーアクションの分析で力を発揮します。ユーザーアクションのデータは国、ブラウザ、また個々のビジネスで重要となる値でフィルタリングできるため、ユーザーの行動をくまなく視覚化することが可能です。特に、サーバーリクエストが少なく、ユーザーとのインタラクションがほぼページ内で完結するシングルページアプリケーション(SPA)ではこのようなデータ取得が非常に有用となります。

ユーザーデータの可視化と分析

ページビュー、読み込み時間、エラー、ユーザーのブラウザや端末に関する情報はすべて内蔵の RUM ダッシュボードで追跡できます。ダッシュボードをカスタマイズして、Datadog でモニタリング可能な 800 以上のツールからデータを連携することも可能です。販売アイテム数やエンゲージメントを伴うページビューなど、固有のビジネスメトリクスの追加も簡単です。

ダッシュボードのテンプレート変数を利用すれば、ブラウザの種類や地理的位置などのユーザー特性に基づいてデータを簡単にフィルタリングすることができます。これにより、読み込み時間が急上昇すると各ユーザーグループにどのような影響が出るのか、業務目的から外れたパフォーマンスは特定ユーザー層のエクスペリエンスに基づくものなのか、などの詳細な解析を行う場合に有用です。

内蔵の RUM ダッシュボードでは、テンプレート変数を利用してブラウザ、国、端末、その他の特性によるフィルタリングが可能です。

RUM データは、自身のビジネスで重要となるディメンションに応じて自由に細分化できます。デバイスのタイプ、組織、顧客 ID など、サイトを訪問するユーザーのサブセットを掘り下げて確認することが可能です。

RUM Analytics ビューには、モバイル端末でユーザーが最もよく訪問したページが表示されます。

問題のトラブルシューティング

バグレポートの内容を精査するためには、技術サポートチーム側でそのユーザーが問題に直面した特定の環境と操作手順を正確に再現する必要が生じます。これは通常困難を極める作業で、むしろ不可能な場合もあるといえます。しかし、グローバルコンテキストにユーザー ID を含めておけば、影響を受けたユーザーのセッションを検索し、バグレポートで挙げられた当時の状況とアクションのシーケンスを再構築することができます。

以下のスクリーンショットは、グローバルコンテキストから属性をクリックする手順を示したものです。usr.id という属性をファセットとして追加し、ビューの検索やフィルタリングを行う場合は以下のようになります。

ビュー内の「Attributes」タブの画面です。ハイライトされているグローバルコンテキスト属性「usr.id」のコンテキストメニューから、属性をファセットとして追加することができます。

どのビューからでも、タブをクリックして各ページビューに起因するリソースのリクエスト、エラー、ロングタスク、分散型トレースなど、トラブルシューティングに関する有益な情報を確認できます。以下のスクリーンショットは、RUM エクスプローラーの Traces タブに表示されたフレームグラフです。フレームグラフはリクエストに応える形で実行されるサービスコールのタイムラインを可視化したもので、各サービスコールがスパンと呼ばれる横長のバーで示されています。スパンの幅(=実行までに要した時間の相対値)を確認することで、ユーザーエクスペリエンスの低下に関わるレイテンシーに影響したコールを簡単に特定できます。

フレームグラフでは、トレースの作成に要したスパンが時系列で表示されます。スパンはサービスごとに色分けされています。

RUM が集約するデータを活用すれば、問題発生時の状況確認も簡単です。数回クリックするだけで根本原因を特定し、問題の解決につなげることができます。

ユーザーデータに基づく意思決定をサポート

Datadog RUM ならリアルなユーザー分析とパフォーマンスデータを融合し、毎回のスプリントでのエンジニアリングチームの作業効率を劇的に向上させることができます。たとえば、アプリのパフォーマンスデータで「読み込み時間が遅い」ことが分かった場合、RUM のメトリクスを分析し、該当するページをリファクタリングして全ユーザーのパフォーマンス改善を図るか、CDN を拡張して特定のリージョンのレイテンシーを削減するかなどの策を打つことができます。

リアルなユーザーデータと自社の業務目的を関連付けることで、エンジニアリング面で優先すべき事項の洗い出しが可能となります。新機能のリリースなのか、バグ修正なのか、またはリファクタリングによるパフォーマンス向上を狙うのか - 個々のビジネスにおいて期待される改善点に応じた手立てを講じることが重要です。

Datadog RUM は Synthetics を補完する形で、アプリユーザーの実際のエクスペリエンスを反映する包括的なインサイトを提供します。Synthetics が API エンドポイントとアプリケーションの重要なジャーニーで起こりうる問題の事前検知に役立つ一方で、RUM はアプリ全体でユーザーに影響を及ぼすパフォーマンス障害の詳細を提示します。RUM と Synthetics、そして自社の業務メトリクスを融合させることで、アプリケーションが全ユーザーにとってどのように機能しているのかを隅々まで把握し、業務目標により近いパフォーマンスを出すための正確な改善作業に着手することができます。

今すぐ始めよう

Datadog RUM は今すぐご利用いただけます。シングルページアプリケーション(SPA)と従来型のアプリのいずれにおいても、Datadog Browser SDK をインストールするだけでアプリ全体をくまなく可視化。ご使用の JavaScript フレームワークの種類も問いません。Datadog をまだご利用でないお客様は、をぜひお試しください。