本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
傳送自訂事件
CloudWatch RUM 會記錄並提取 CloudWatch RUM Web 用戶端所收集的資訊 中列出的事件。如果您使用的是 CloudWatch RUM Web 用戶端 1.12.0 版或更新版本,則可以定義、記錄和傳送其他自訂事件。您可以為您定義的每個事件類型定義事件類型名稱和要傳送的資料。每個自訂事件承載最多可達 6 KB。
只有在應用程式監視器啟用自訂事件時,才會擷取自訂事件。若要更新應用程式監視器的組態設定,請使用 CloudWatch RUM 主控台或 UpdateAppMonitor API。
啟用自訂事件後,接著定義並傳送自訂事件,之後您就可以搜尋這些事件。若要搜尋這些事件,請使用 CloudWatch RUM 主控台中的 Events (事件) 索引標籤。使用事件類型進行搜尋。
要求與語法
自訂事件包含事件類型和事件詳細資料。具體要求如下:
事件類型
-
這可以是事件的 type (類型) 或 name (名稱)。例如,CloudWatch RUM 內建的事件類型稱為 JsError,事件類型為
com.amazon.rum.js_error_event
。 -
長度必須介於 1 與 256 個字元之間。
-
可以是英數字元、底線、連字號和句點的組合。
-
事件詳細資訊
-
包含您要在 CloudWatch RUM 記錄的實際資料。
-
必須是由欄位和值組成的物件。
-
記錄自訂事件的範例
有兩種方法可以在 CloudWatch RUM Web 用戶端中記錄自訂事件。
使用 CloudWatch RUM Web 用戶端的
recordEvent
API。使用自訂外掛程式。
使用 recordEvent
API傳送自訂事件 (NPM 範例)
awsRum.recordEvent('my_custom_event', { location: 'IAD', current_url: 'amazonaws.com', user_interaction: { interaction_1 : "click", interaction_2 : "scroll" }, visit_count:10 } )
使用 recordEvent
API 傳送自訂事件 (內嵌指令碼範例)
cwr('recordEvent', { type: 'my_custom_event', data: { location: 'IAD', current_url: 'amazonaws.com', user_interaction: { interaction_1 : "click", interaction_2 : "scroll" }, visit_count:10 } })
使用自訂外掛程式傳送自訂事件的範例
// Example of a plugin that listens to a scroll event, and // records a 'custom_scroll_event' that contains the timestamp of the event. class MyCustomPlugin implements Plugin { // Initialize MyCustomPlugin. constructor() { this.enabled; this.context; this.id = 'custom_event_plugin'; } // Load MyCustomPlugin. load(context) { this.context = context; this.enable(); } // Turn on MyCustomPlugin. enable() { this.enabled = true; this.addEventHandler(); } // Turn off MyCustomPlugin. disable() { this.enabled = false; this.removeEventHandler(); } // Return MyCustomPlugin Id. getPluginId() { return this.id; } // Record custom event. record(data) { this.context.record('custom_scroll_event', data); } // EventHandler. private eventHandler = (scrollEvent: Event) => { this.record({timestamp: Date.now()}) } // Attach an eventHandler to scroll event. private addEventHandler(): void { window.addEventListener('scroll', this.eventHandler); } // Detach eventHandler from scroll event. private removeEventHandler(): void { window.removeEventListender('scroll', this.eventHandler); } }