Enviar eventos personalizados - Amazon CloudWatch

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); } }