ARMS ブラウザ監視は、Web ページやミニプログラムからパフォーマンス、安定性、API メトリクスを収集します。このページでは、各メトリクスの定義、計算式、およびブラウザ監視ログで利用可能なフィールドについて説明します。
パフォーマンスメトリクスは、W3C によって定義された Navigation Timing API を通じて収集されます。
Apdex (ユーザー満足度)
Application Performance Index (Apdex) は、アプリケーションの応答時間に対するユーザー満足度を数値化するオープン標準です。Apdex は、設定可能な しきい値 T に基づいて、すべてのサンプルを次の 3 つのカテゴリのいずれかに分類します:
| カテゴリ | 応答時間 | 意味 |
|---|---|---|
| 満足 | 0~T | アプリケーションの応答が十分に速く、遅延が感じられない状態。 |
| 許容 | T~4T | 応答が著しく遅いが、ユーザーはタスクを完了できる状態。 |
| イライラ | 4T を超える | 応答が非常に遅く、ユーザーがタスクを放棄する可能性がある状態。 |
計算式:
Apdex = (満足サンプル数 + 許容サンプル数 / 2) / 総サンプル数ARMS では、Apdex は First Paint Time (FPT) に対して計算され、デフォルトのしきい値は T = 2 秒 です。
JS 安定性
JS 安定性は、JavaScript エラーがページビュー (PV) に影響を与える頻度を測定します。
PV サイクル中に少なくとも 1 つの JS エラーが発生した場合、そのサイクルはエラーサンプルとしてカウントされます。
計算式:
JS エラー率 = エラーサンプル数 / 総サンプル数エラーサンプルには、自動的にレポートされる JS エラーと、SDK メソッド API を通じてレポートされるエラーの両方が含まれます。
アクセス速度
アクセス速度は、First Paint Time (FPT) によって測定されます。これは、ブラウザがリクエストを開始してから、最初の HTML バッチの解析を開始するまでの時間です。
次の図は、各タイミングメトリクスが W3C Navigation Timing API で定義されたページ読み込みプロセスにどのようにマッピングされるかを示しています:
Web ページパフォーマンスメトリクス
これらのメトリクスは、ページ全体の読み込みエクスペリエンスをキャプチャします。
| レポートフィールド | タイプ | 説明 | 計算式 | 備考 |
|---|---|---|---|---|
| FMP | number (ms) | First Meaningful Paint。プライマリコンテンツが表示される時点。 | N/A | N/A |
| FPT | number (ms) | First Paint Time。リクエスト開始からブラウザが最初の HTML バッチを解析するまでの時間。 | responseEnd - fetchStart | N/A |
| TTI | number (ms) | Time to Interactive。リクエスト開始からブラウザが HTML の解析を完了し、DOM を構築し、リソースの読み込みを開始するまでの時間。 | domInteractive - fetchStart | N/A |
| Ready | number (ms) | DOM Ready 時間。HTML を完全に読み込み、DOM に解析するまでの時間。 | domContentLoadEventEnd - fetchStart | ページ上で同期 JS が実行される場合、その実行時間は Ready - TTI となります。 |
| Load | number (ms) | 完全なページ読み込み時間。 | loadEventStart - fetchStart | Load = FPT + DOM + (Ready - TTI) + Res。 |
| FirstByte | number (ms) | サーバーから最初のデータパケットを受信するまでの時間。 | responseStart - domainLookupStart | N/A |
フェーズレベルのタイミング内訳
これらのメトリクスは、ページ読み込みを個々のネットワークおよびレンダリングフェーズに分解し、ボトルネックの特定に役立ちます。
| レポートフィールド | タイプ | 説明 | 計算式 | 備考 |
|---|---|---|---|---|
| DNS | number (ms) | DNS ルックアップに費やされた時間。 | domainLookupEnd - domainLookupStart | N/A |
| TCP | number (ms) | TCP 接続の確立に費やされた時間。 | connectEnd - connectStart | N/A |
| TTFB | number (ms) | Time to First Byte (TTFB)。サーバーがリクエストを受信してから応答するまでの時間。 | responseStart - requestStart | ARMS が TTFB を計算する方法の詳細については、Google の TTFB の定義をご参照ください。 |
| Trans | number (ms) | レスポンスボディの転送に費やされた時間。 | responseEnd - responseStart | N/A |
| DOM | number (ms) | DOM の解析に費やされた時間。 | domInteractive - responseEnd | N/A |
| Res | number (ms) | ページ上の同期リソースの読み込みに費やされた時間。 | loadEventStart - domContentLoadedEventEnd | N/A |
| SSL | number (ms) | TLS/SSL ハンドシェイクに費やされた時間。 | connectEnd - secureConnectionStart | HTTPS 接続にのみ適用されます。 |
ミニプログラムのパフォーマンスメトリクス
| レポートフィールド | タイプ | 説明 | 計算式 | 備考 |
|---|---|---|---|---|
| FPT | number (ms) | First Paint Time。ミニプログラムの onLaunch 呼び出しから最初のページの onShow 呼び出しまでの時間。 | onShow (最初のページ) - onLaunch (アプリ) | N/A |
API 呼び出し成功率
API 呼び出し成功率は、ページからの API リクエストが正常に完了する頻度を追跡します。
計算式:
API 呼び出し成功率 = 成功した API 呼び出し数 / 総 API 呼び出し数サンプルには、自動的にレポートされる AJAX リクエストと、SDK メソッド API を通じてレポートされるデータの両方が含まれます。
ログフィールド
ARMS ブラウザ監視のログには、以下のフィールドが含まれています。Simple Log Service でクエリを構築したり、アラートルールを設定したりする際には、これらのフィールド名を使用してください。
共通フィールド
これらのフィールドは、すべてのログタイプに存在します。
| フィールド | タイプ | 説明 |
|---|---|---|
| uid | string | ユーザー ID。ユーザーを検索可能な識別子です。カスタム値を設定できます。設定しない場合、SDK は ID を自動生成し、6 か月ごとにローテーションします。 |
| username | string | ユーザー名。SDK はユーザー名を自動的に割り当てません。設定しない場合、このフィールドは空になります。 |
| release | string | アプリケーションバージョン ID。 |
| environment | string | 本番環境の識別子。 |
| page | string | ページ URL。 |
| sampling | number | サンプリングレート。 |
| tag | string | フィルタリングとグルーピングのためのカスタムタグ。 |
API 呼び出しフィールド
| フィールド | タイプ | 説明 |
|---|---|---|
| api | string | API リクエスト URL (クエリパラメーターなし)。 |
| msg | string | API 呼び出しによって返される応答文字列。 |
| code | number | HTTP ステータスコード。 |
| time | number (ms) | API 呼び出しにかかった時間。 |
| success | boolean | API 呼び出しが成功したかどうか。 |
JS エラーフィールド
| フィールド | タイプ | 説明 |
|---|---|---|
| msg | string | エラーメッセージ。 |
| stack | string | スタックトレース。 |
| cate | string | エラータイプ。有効な値:EvalError (eval() に関連)、RangeError (数値が範囲外)、ReferenceError (無効なリファレンス)、SyntaxError (構文エラー)、TypeError (無効な変数またはパラメータータイプ)、URIError (encodeURI() または decodeURI() に渡された無効なパラメーター)、AggregateError (Promise.any() などの単一の操作からの複数のエラー)、またはカスタムエラータイプ。 |
| file | string | エラーが発生したファイル。 |
| line | number | エラーの行番号。 |
| col | number | エラーの列番号。 |
| times | number | このエラーの発生回数。 |
ログタイプ
ARMS ブラウザ監視は、以下のログタイプを生成します。すべてのログタイプは、上記の共通フィールドを共有します。
| ログタイプ | タイプコード | クエリ可能なフィールド |
|---|---|---|
| PV ログ | PV | onload イベントでアップロードされます。PV = PV ログの総数。UV = uid で重複排除された PV ログ。 |
| パフォーマンスログ | Perf | すべてのパフォーマンスメトリクス (FPT、TTI、Ready、Load、DNS、TCP、TTFB など)。 |
| 低速読み込みログ | RES | パフォーマンスログのフィールドと同じです。ページ読み込み時間が 8 秒を超えた場合に記録されます。 |
| JS エラーログ | Error | エラーメッセージ、エラーファイルの URL、エラータイプ。 |
| API ログ | API | API 名、応答メッセージ、HTTP ステータスコード、応答時間、ドメイン、成功ステータス、トレース ID。 |
| SUM ログ | SUM | イベント名を持つカスタムのキーと値のペア (例:scroll-count)。 |
| AVG ログ | AVG | イベント名を持つカスタムのキーと値のペア (例:scroll-time)。 |
| リソースエラーログ | ResourceError | リソースエラーの詳細。 |
| カスタムログ | Custom | カスタムビジネスモニタリングのためのユーザー定義フィールド。カスタムログは、ARMS Agent API を呼び出してデータをレポートした場合にのみ生成されます。カスタムログデータは ARMS コンソールには表示されません。Simple Log Service コンソールでカスタムログのクエリと分析を行ってください。 |