# リアルユーザモニタリング
## 定義
リアルユーザモニタリング(RUM: Real User Monitoring)は、サイトへの実際の訪問者(パッシブ)を計測し、ページ受信速度からレポートを生成する監視手法である。訪問者個別レポート(問題セッションを再生・調査し、エラーに応じてアラートを送る)と集約レポート(訪問者全体の傾向——最も遅いページ・最もエラーの多いオブジェクト等——から閾値超過時にアラートを送る)の2種類を生成する。用途は、問題セッションの技術的原因の特定、SaaS 等でのサービスレベルレポート作成、監視が必要な部分の特定、統合監視では計測できない部分(チェックアウトページ等)の健康状態の把握、問題発生時の即時アラートである。(Source: [[@2011__OReillyJapan__ウェブオペレーション - Chapter 11 訪問者の気持ち:ユーザ対面メトリクス]] §11.3.2)
RUM にはクライアントサイドとサーバサイドの2実装があり、決定的な違いを持つ。クライアントサイド RUM は Ajax スクリプトや埋め込みコードでブラウザから情報を収集するため、レンダリング等の遅延を計測できる一方、ページ読み込み後にしか計測できず読み込み中のエラーは検知できず、パケットロス等の低レイヤやサーバ遅延も見えない。サーバサイド RUM はサーバログ・ロードバランサ・ネットワークタップから情報を収集するためブラウザから独立してあらゆる詳細(TCP接続の失敗も)を見られるが、ブラウザ内で何が起きているかは分からず、ネットワーク・ログ・物理ネットワークへのアクセスを要するためデプロイできないサーバやクラウド環境が存在する。多くの商用 RUM 製品はこの2つを組み合わせて弱点を補う。設定は、不要なトラフィック(bot・監視ツール等)のフィルタリング、ユーザ追跡方法の指定、ページ組み立て方法(非同期通信の扱い)の指定、エラーの特定という手順で行う。(Source: ch.11 §11.3.2.2-11.3.2.3)
## 横断的知見
- (1 ソース目のため、横断的知見は次の関連ソース追加時に育てる。)
## 未解決の問い
- クライアントサイド RUM とサーバサイド RUM を組み合わせる商用製品は、具体的にどのような突き合わせアルゴリズム(セッションIDの同期方法等)でクライアント側とサーバ側のイベントを結合しているか。本章は「組み合わせている」とだけ述べ実装には踏み込んでいない。
- RUM が収集する「訪問者ごとのページ・ユーザ・都市・サーバ」という既定の区分は、[[差分可観測性]] が扱う Observer/App の観測ギャップの議論と接続できるか。RUM はまさに「App(実ユーザ)からの観測」を体系的に収集する仕組みであり、Observer 側の粗い監視との差分を定量化する材料になりうる。
- モバイル・SPA(シングルページアプリケーション)における RUM の「ページ」概念(読み込みの開始と終了)は、本章執筆時点(2011年)の非同期通信への言及以上にどう拡張されているか。
## 関連
- 概念: [[統合監視]](補完的な監視技法) / [[エンドユーザメトリクス]](RUM が支えるウェブパフォーマンス測定) / [[差分可観測性]](Observer と App の観測ギャップ) / [[ユーザー中心オブザーバビリティ]](検知起点をユーザー指標に置く発想) / [[レイテンシ分析]]
- ソース: [[@2011__OReillyJapan__ウェブオペレーション - Chapter 11 訪問者の気持ち:ユーザ対面メトリクス]]
- エンティティ: [[Alistair Croll]] / [[Sean Power]]
## 出典
- アリステア・クロール、シーン・パワー, 「11章 訪問者の気持ち:ユーザ対面メトリクス」, 『ウェブオペレーション ―サイト運用管理の実践テクニック』, オライリー・ジャパン, 2011, §11.3.2.