CloudWatch RUM Web 用戶端所收集的資訊 - Amazon CloudWatch

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

CloudWatch RUM Web 用戶端所收集的資訊

本節會記錄 PutRumEvents 結構描述,它定義了您可以使用 CloudWatch RUM 從使用者工作階段收集的資料結構。

PutRumEvents 請求會將包含下列欄位的資料結構傳送至 CloudWatch RUM。

  • 此批次 RUM 事件的 ID

  • 應用程式監控詳細資訊,其中包含下列各項:

    • 應用程式監控 ID

    • 監控的應用程式版本

  • 使用者詳細資訊,其中包含下列各項。只有在應用程式監控已啟用 Cookie 時,才會收集此資訊。

    • 由 Web 用戶端產生的使用者 ID

    • 工作階段 ID

  • 此批次中的 RUM 事件陣列。

RUM 事件結構描述

每個 RUM 事件的結構都包含下列欄位。

RUM 事件中繼資料

中繼資料包括頁面中繼資料、使用者代理程式中繼資料、地理位置中繼資料和網域中繼資料。

頁面中繼資料

頁面中繼資料包括下列項目:

  • 頁面 ID

  • 頁面標題

  • 父頁面 ID。– 只有在應用程式監視器已啟用 Cookie 時,才會收集此資訊。

  • 互動深度 – 只有在應用程式監視器已啟用 Cookie 時,才會收集此資訊。

  • 頁面標籤 – 您可以將標籤新增至頁面事件,以將頁面分類在一起。如需詳細資訊,請參閱使用頁面群組

使用者代理程式中繼資料

使用者代理程式中繼資料包括下列項目:

  • 瀏覽器語言

  • 瀏覽器名稱

  • 瀏覽器版本

  • 作業系統名稱

  • 作業系統版本

  • 裝置類型

  • 平台類型

地理位置中繼資料

地理位置中繼資料包括下列項目:

  • 國家代碼

  • 細分代碼

網域中繼資料

網域中繼資料包含 URL 網域。

RUM 事件詳細資訊

事件的詳細資訊會遵循下列其中一種結構描述類型,視事件類型而定。

工作階段啟動事件

此事件不包含任何欄位。只有在應用程式監控已啟用 Cookie 時,才會收集此資訊。

頁面檢視結構描述

Page view (頁面檢視) 事件包含下列屬性。您可以透過設定 Web 用戶端來停用頁面檢視集合。如需詳細資訊,請參閱 CloudWatch RUM Web 用戶端文件

名稱 Type 描述

頁面 ID

字串

在應用程式中唯一代表此頁面的 ID。根據預設,這是 URL 路徑。

父頁面 ID

字串

當使用者導覽至當前頁面時,使用者所在頁面的 ID。只有在應用程式監控已啟用 Cookie 時,才會收集此資訊。

互動深度

字串

只有在應用程式監控已啟用 Cookie 時,才會收集此資訊。

JavaScript 錯誤結構描述

代理程式產生的 JavaScript 錯誤事件包含下列屬性。只有在您選取收集錯誤遙測時,Web 用戶端才會收集這些事件。

名稱 Type 描述

錯誤類型

字串

錯誤名稱 (如果存在)。如需詳細資訊,請參閱 Error.prototype.name

某些瀏覽器可能不支援錯誤類型。

錯誤訊息

字串

錯誤的訊息。如需詳細資訊,請參閱 Error.prototype.message。如果錯誤欄位不存在,則這就是錯誤事件的訊息。如需詳細資訊,請參閱 ErrorEvent

在不同的瀏覽器中,錯誤消息可能不一致。

堆疊追蹤

字串

錯誤的堆疊追蹤 (如果存在) 會截斷為 150 個字元。如需詳細資訊,請參閱 Error.prototype.stack

某些瀏覽器可能不支援堆疊追蹤。

DOM 事件結構描述

代理程式產生的文件物件模型 (DOM) 事件包含下列屬性。這些事件預設為無法收集。只有在您啟用互動遙測時,才會收集這些事件。如需詳細資訊,請參閱 CloudWatch RUM Web 用戶端文件

名稱 Type 描述

事件

字串

DOM 事件的類型,例如點選、滾動或懸停。如需詳細資訊,請參閱事件參考

Element

字串

DOM 元素類型

元素 ID

字串

如果產生事件的元素具有 ID,則此屬性會存放該 ID。如需詳細資訊,請參閱 Element.id

CSSLocator

字串

用於識別 DOM 元素的 CSS 定位器。

InteractionId

字串

使用者與 UI 間之互動的唯一 ID。

導覽事件結構描述

只有在應用程式監控啟用效能遙測時,才會收集導覽事件。

導覽事件使用導覽計時層級 1導覽計時層級 2 API。並非所有瀏覽器都支援層級 2 API,因此這些較新的欄位是選用的。

注意

時間戳記指標是根據 DOMHighResTimestamp 而定。使用層級 2 API 時,所有的計時都預設與 startTime 相關。但對於層級 1,系統會從時間戳記指標減去 navigationStart 指標,以取得相對值。所有時間戳記值都以毫秒為單位。

導覽事件包含下列屬性。

名稱 Type 描述 備註

initiatorType

字串

表示起始效能事件的資源類型。

值:"navigation"

層級 1:"navigation"

層級 2:entryData.initiatorType

navigationType

字串

表示導覽的類型。

此屬性不是必要項目。

值:值必須是下列其中一個:

  • navigate 是透過選擇連結、在瀏覽器的地址欄中輸入 URL、提交表單,或使用指令碼操作 (除了 reloadback_forward ) 起始而啟動的導覽。

  • reload 是透過瀏覽器重新加載操作或 location.reload() 的導覽。

  • back_forward 是透過瀏覽器歷史記錄周遊操作的導覽。

  • prerender 是由預先轉譯器提示起始的導覽。如需詳細資訊,請參閱預先轉譯器

startTime

Number

指示事件觸發的時間。

值:0

層級 1:entryData.navigationStart - entryData.navigationStart

層級 2:entryData.startTime

unloadEventStart

Number

指示視窗中的上一個文件在擲出 unload 事件後開始卸載的時間。

值:如果沒有上一個文件,或者如果上一個文件或其中一個所需的重新引導不是相同的原點,則傳回的值為 0。

層級 1:

entryData.unloadEventStart > 0 ? entryData.unloadEventStart - entryData.navigationStart : 0

層級 2:entryData.unloadEventStart

promptForUnload

Number

卸載文件所花費的時間。換言之,unloadEventStartunloadEventEnd 之間的時間。UnloadEventEnd 表示卸載事件處理程式完成時的時刻,以毫秒為單位。

值:如果沒有上一個文件,或者如果上一個文件或其中一個所需的重新引導不是相同的原點,則傳回的值為 0。

層級 1:entryData.unloadEventEnd - entryData.unloadEventStart

層級 2:entryData.unloadEventEnd - entryData.unloadEventStart

redirectCount

Number

代表目前瀏覽環境下最後一次非重新引導導覽之後重新引導數量的數字。

此屬性不是必要項目。

值:如果沒有重新引導,或者有任何重新引導與目的地文件的原點不相同,則傳回的值為 0。

層級 1:不可用

層級 2:entryData.redirectCount

redirectStart

Number

第一個 HTTP 重新引導啟動的時間。

值:如果沒有重新引導,或者有任何重新引導與目的地文件的原點不相同,則傳回的值為 0。

層級 1:

entryData.redirectStart > 0 ? entryData.redirectStart - entryData.navigationStart : 0

層級 2:entryData.redirectStart

redirectTime

Number

HTTP 重新引導所花費的時間。這是 redirectStartredirectEnd 之間的差異。

層級 1::entryData.redirectEnd - entryData.redirectStart

層級 2::entryData.redirectEnd - entryData.redirectStart

workerStart

Number

這是 PerformanceResourceTiming 介面的屬性。它標誌著工作者執行緒操作的開始。

此屬性不是必要項目。

值:如果服務工作者執行緒已經在執行中,或立即在啟動服務工作者執行緒之前執行,則此屬性會在分派 FetchEvent 前立即傳回時間。如果服務工作者未攔截資源,則傳回 0。

層級 1:不可用

層級 2:entryData.workerStart

workerTime

Number

如果服務工作者未攔截資源,則這樣會傳回工作者執行緒操作所需的時間。

此屬性不是必要項目。

層級 1:不可用

層級 2:

entryData.workerStart > 0 ? entryData.fetchStart - entryData.workerStart : 0

fetchStart

Number

瀏覽器準備就緒可以使用 HTTP 請求擷取文件的時間。這是在檢查任何應用程式快取之前。

層級 1:

: entryData.fetchStart > 0 ? entryData.fetchStart - entryData.navigationStart : 0

層級 2:entryData.fetchStart

domainLookupStart

Number

開始網域查詢的時間。

值:如果使用永久連線,或者如果資訊存放在快取或本機資源中,該值會與 fetchStart 相同。

層級 1:

entryData.domainLookupStart > 0 ? entryData.domainLookupStart - entryData.navigationStart : 0

層級 2:entryData.domainLookupStart

dns

Number

網域查詢所需的時間。

值:如果快取資源和 DNS 記錄,則預期的值為 0。

層級 1:entryData.domainLookupEnd - entryData.domainLookupStart

層級 2:entryData.domainLookupEnd - entryData.domainLookupStart

nextHopProtocol

字串

代表用於擷取資源之網路通訊協定的字串。

此屬性不是必要項目。

層級 1:不可用

層級 2:entryData.nextHopProtocol

connectStart

Number

使用者代理程式立即開始建立與伺服器的連線以擷取文件之前的時間。

值:如果使用 RFC2616 永久連線,或從相關應用程式快取或本機資源擷取目前的文件,則此屬性會傳回 domainLookupEnd 值。

層級 1:

entryData.connectStart > 0 ? entryData.connectStart - entryData.navigationStart : 0

層級 2:entryData.connectStart

connect

Number

測量建立傳輸連線或執行 SSL 身分驗證所需的時間。它還包括當瀏覽器發出太多並行請求時所花費的阻塞時間。

層級 1:entryData.connectEnd - entryData.connectStart

層級 2:entryData.connectEnd - entryData.connectStart

secureConnectionStart

Number

如果當前頁面的 URL 結構描述是「https」,此屬性會傳回使用者代理程式立即啟動交握程序以保護當前連線之前的時間。如果不使用 HTTPS,則傳回 0。如需 URL 結構描述的詳細資訊,請參閱 URL 表示法

公式:entryData.secureConnectionStart

tlsTime

Number

完成 SSL 握手所花費的時間。

層級 1:

entryData.secureConnectionStart > 0 ? entryData.connectEnd - entryData.secureConnectionStart : 0

層級 2:

entryData.secureConnectionStart > 0 ? entryData.connectEnd - entryData.secureConnectionStart : 0

requestStart

Number

使用者代理程式立即開始從伺服器或從相關應用程式快取或從本機資源請求資源之前的時間。

層級 1:

: entryData.requestStart > 0 ? entryData.requestStart - entryData.navigationStart : 0

層級 2:entryData.requestStart

timeToFirstByte

Number

提出請求後,接收資訊之第一個位元組所花費的時間。此時間與 startTime 相關。

層級 1:entryData.responseStart - entryData.requestStart

層級 2:entryData.responseStart - entryData.requestStart

responseStart

Number

使用者代理程式的 HTTP 剖析器立即從相關應用程式快取、或從本機資源,或從伺服器接收回應之第一個位元組的時間。

層級 1:

entryData.responseStart > 0 ? entryData.responseStart - entryData.navigationStart : 0

層級 2:entryData.responseStart

responseTime

字串

從相關應用程式快取、從本機資源或從伺服器以位元組形式接收完整回應所花費的時間。

層級 1:

entryData.responseStart > 0 ? entryData.responseEnd - entryData.responseStart : 0

層級 2:

entryData.responseStart > 0 ? entryData.responseEnd - entryData.responseStart : 0

domInteractive

Number

當剖析器在主要文件上完成其工作,並構建 HTML DOM 的時間。這時,其 Document.readyState 變更為「交互式」並擲出相應的 readystatechange 事件。

層級 1:

entryData.domInteractive > 0 ? entryData.domInteractive - entryData.navigationStart : 0

層級 2 :entryData.domInteractive

domContentLoadedEventStart

Number

表示等於使用者代理程式在當前文件立即觸發 DOMContentLoaded 事件之前之時間的時間值。當初始 HTML 文件已完全載入並剖析時,就會觸發 DOMContentLoaded 事件。此時,主要 HTML 文件已經完成解析,瀏覽器開始構建轉譯樹狀結構,並且仍然需要載入子資源。這不會等待樣式表、映像和子框架完成載入。

層級 1:

entryData.domContentLoadedEventStart > 0 ? entryData.domContentLoadedEventStart - entryData.navigationStart : 0

層級 2: entryData.domContentLoadedEventStart

domContentLoaded

Number

轉譯樹狀結構的開始時間和結束時間會由 domContentLoadedEventStartdomContentLoadedEventEnd 標記。它可以讓 CloudWatch RUM 追蹤執行。此屬性是 domContentLoadedStartdomContentLoadedEnd 之間的差異。

在此期間,DOM 和 CSSOM 已準備就緒。此屬性會等待指令碼執行,但非同步指令碼和動態建立的指令碼除外。如果指令碼依賴於樣式表,domContentLoaded 也會在樣式表上等待。它不會等待映像。

注意

domContentLoadedStartdomContentLoadedEnd 的實際值近似於 Google Chrome 網路面板中的 domContentLoaded。它表明 HTML DOM + CSSOM 轉譯樹狀結構構造時間始於頁面加載程序。對於導覽指標,domContentLoaded 值表示開始和結束值之間的差異,這是僅下載子資源和轉譯樹狀結構構造所需的時間。

層級 2:entryData.domContentLoadedEventEnd - entryData.domContentLoadedEventStart

層級 2:entryData.domContentLoadedEventEnd - entryData.domContentLoadedEventStart

domComplete

Number

瀏覽器立即將當前文件的當前文件整備程度設定為完成之前的時間。此時,子資源 (例如映像) 的載入已完成。這包括下載封鎖內容 (例如 CSS 和同步 JavaScript) 所花費的時間。這近似於 Google Chrome 網路面板中的 loadTime

層級 1:

entryData.domComplete > 0 ? entryData.domComplete - entryData.navigationStart : 0

層級 2:entryData.domComplete

domProcessingTime

Number

回應與載入事件開始之間的總時間。

層級 1:entryData.loadEventStart - entryData.responseEnd

層級 2:entryData.loadEventStart - entryData.responseEnd

loadEventStart

Number

立即觸發當前文件之 load 事件的時間。

層級 1:

entryData.loadEventStart > 0 ? entryData.loadEventStart - entryData.navigationStart : 0

層級 2:entryData.loadEventStart

loadEventTime

Number

loadEventStartloadEventEnd 之間的差異。系統會在此期間觸發等待此載入事件的其他函數或邏輯。

層級 1:entryData.loadEventEnd - entryData.loadEventStart

層級 2:entryData.loadEventEnd - entryData.loadEventStart

duration

字串

持續時間是頁面總載入時間。它會記錄下載主要頁面及其所有同步子資源的時間,以及轉譯頁面的時間。非同步資源 (例如指令碼) 會在稍後繼續下載。這是 loadEventEndstartTime 屬性之間的差異。

層級 1:entryData.loadEventEnd - entryData.navigationStart

層級 2:entryData.duration

headerSize

Number

傳回 transferSizeencodedBodySize 之間的差異。

此屬性不是必要項目。

層級 1:不可用

層級 2:entryData.transferSize - entryData.encodedBodySize

層級 2:entryData.transferSize - entryData.encodedBodySize

compressionRatio

Number

encodedBodySizedecodedBodySize 的比率。encodedBodySize 值是排除 HTTP 標頭之資源的壓縮大小。decodedBodySize 值是排除 HTTP 標頭之資源的解壓縮大小。

此屬性不是必要項目。

層級 1:不可用。

層級 2:

entryData.encodedBodySize > 0 ? entryData.decodedBodySize / entryData.encodedBodySize : 0

navigationTimingLevel

Number

導覽計時 API 版本。

值:1 或 2

資源事件結構描述

只有在應用程式監控啟用效能遙測時,才會收集資源事件。

時間戳記指標是根據 The DOMHighResTimeStamp typedef 而定。使用層級 2 API 時,所有的計時都預設與 startTime 相關。但對於層級 1 API,系統會從時間戳記指標減去 navigationStart 指標,以取得相對值。所有時間戳記值都以毫秒為單位。

代理程式產生的資源事件包含下列屬性。

名稱 Type 描述 備註

targetUrl

字串

傳回資源的 URL。

公式: entryData.name

initiatorType

字串

表示起始效能資源事件的資源類型。

值:"resource"

公式:entryData.initiatorType

duration

字串

傳回 responseEndstartTime 屬性之間的差異。

此屬性不是必要項目。

公式:entryData.duration

transferSize

Number

傳回擷取資源的大小 (以八位元為單位),包括回應標頭欄位和回應酬載主體。

此屬性不是必要項目。

公式:entryData.transferSize

fileType

字串

衍生自目標 URL 模式的擴充。

最大的有內容繪製事件結構描述

最大的有內容繪製事件包含下列屬性。

只有在應用程式監控啟用效能遙測時,才會收集這些事件。

名稱 描述

Value

如需詳細資訊,請參閱 Web 關鍵數值

第一個輸入延遲事件

第一個輸入延遲事件包含下列屬性。

只有在應用程式監控啟用效能遙測時,才會收集這些事件。

名稱 描述

Value

如需詳細資訊,請參閱 Web 關鍵數值

累計版面配置移位事件

累計版面配置移位事件包含下列屬性。

只有在應用程式監控啟用效能遙測時,才會收集這些事件。

名稱 描述

Value

如需詳細資訊,請參閱 Web 關鍵數值

HTTP 事件

HTTP 事件可以包含下列屬性。它將包含 Response 欄位或 Error 欄位,但不能同時包含。

只有在應用程式監控啟用 HTTP 遙測時,才會收集這些事件。

名稱 描述

請求

請求欄位包含下列項目:

  • Method 欄位,可以具有 GET、POST 等值。

  • URL

回應

回應欄位包含下列項目:

  • 狀態,例如 2xx、4xx 或 5xx

  • 狀態文字

錯誤

錯誤欄位包含下列項目:

  • Type

  • 訊息

  • 檔案名稱

  • 行號

  • 欄號

  • 堆疊追蹤

X-Ray 追蹤事件結構描述

只有在應用程式監控啟用 X-Ray 追蹤時,才會收集這些事件。

如需 X-Ray 追蹤事件結構描述的詳細資訊,請參閱 AWS X-Ray 區段文件