Enviar eventos personalizados
O CloudWatch RUM registra e ingere os eventos listados em Informações coletadas pelo cliente da Web CloudWatch RUM. Se você usar a versão 1.12.0 ou posterior do cliente da Web do CloudWatch RUM, poderá definir, registrar e enviar eventos personalizados adicionais. Você define o nome do tipo de evento e os dados a serem enviados para cada tipo de evento definido. Cada carga útil de evento personalizado pode ter até 6 KB.
Os eventos personalizados só serão ingeridos se o monitor de aplicações tiver eventos personalizados habilitados. Para atualizar as configurações do monitor de aplicações, use o console do CloudWatch RUM ou a API UpdateAppMonitor.
Após habilitar eventos personalizados, e definir e enviar os eventos personalizados, você poderá pesquisá-los. Para isso, use a guia Events (Eventos) no console do CloudWatch RUM. Pesquisar usando o tipo de evento.
Requisitos e sintaxe
Os eventos personalizados consistem em um tipo de evento e detalhes do evento. Os requisitos para cada um deles são os seguintes:
Tipo de evento
-
Isso pode ser o tipo ou o nome do evento. Por exemplo, o tipo de evento integrado do CloudWatch RUM denominado JsError tem um tipo de evento de
com.amazon.rum.js_error_event
. -
Deve ter de 1 a 256 caracteres.
-
Pode ser uma combinação de caracteres alfanuméricos, sublinhas, hifens e pontos.
-
Detalhes do evento
-
Contém os dados reais que você deseja registrar no CloudWatch RUM.
-
Deve ser um objeto que consiste em campos e valores.
-
Exemplos de registro de eventos personalizados
Há duas maneiras de registrar eventos personalizados no cliente da Web do CloudWatch RUM.
Usar a API
recordEvent
do cliente da Web do CloudWatch RUM.Usar um plug-in personalizado.
Enviar um evento personalizado usando a API recordEvent
, exemplo de NPM
awsRum.recordEvent('my_custom_event', { location: 'IAD', current_url: 'amazonaws.com', user_interaction: { interaction_1 : "click", interaction_2 : "scroll" }, visit_count:10 } )
Enviar um evento personalizado usando a API recordEvent
, exemplo de script integrado
cwr('recordEvent', { type: 'my_custom_event', data: { location: 'IAD', current_url: 'amazonaws.com', user_interaction: { interaction_1 : "click", interaction_2 : "scroll" }, visit_count:10 } })
Exemplo de envio de um evento personalizado usando um plug-in personalizado
// 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); } }