Benutzerdefinierte Ereignisse senden - Amazon CloudWatch

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Benutzerdefinierte Ereignisse senden

CloudWatch RUM zeichnet die unter aufgeführten Ereignisse auf und nimmt sie aufVom CloudWatch RUM-Webclient gesammelte Informationen. Wenn Sie Version 1.12.0 oder höher des CloudWatch RUM-Webclients verwenden, können Sie zusätzliche benutzerdefinierte Ereignisse definieren, aufzeichnen und senden. Sie definieren den Namen des Ereignistyps und die zu sendenden Daten für jeden Ereignistyp, den Sie definieren. Jede benutzerdefinierte Ereignis-Nutzlast kann bis zu 6 KB groß sein.

Benutzerdefinierte Ereignisse werden nur erfasst, wenn der Anwendungsmonitor benutzerdefinierte Ereignisse aktiviert hat. Verwenden Sie die CloudWatch RUM-Konsole oder die API, um die Konfigurationseinstellungen Ihres App Monitors zu aktualisieren. UpdateAppMonitor

Nachdem Sie benutzerdefinierte Ereignisse aktiviert und anschließend benutzerdefinierte Ereignisse definiert und gesendet haben, können Sie nach ihnen suchen. Verwenden Sie die Registerkarte Ereignisse in der CloudWatch RUM-Konsole, um nach ihnen zu suchen. Suchen Sie anhand des Ereignistyps.

Anforderungen und Syntax

Benutzerdefinierte Ereignisse bestehen aus einem Ereignistyp und Ereignisdetails. Die Anforderungen für diese sind Folgende:

  • Ereignistyp

    • Dies kann entweder der type (Typ) oder der name (Name) Ihres Ereignisses sein. Beispielsweise JsErrorhat der in CloudWatch RUM integrierte Ereignistyp namens den Ereignistypcom.amazon.rum.js_error_event.

    • Muss zwischen 1 und 256 Zeichen lang sein.

    • Kann eine Kombination aus alphanumerischen Zeichen, Unterstrichen, Bindestrichen und Punkten sein.

  • Ereignisdetails

    • Enthält die eigentlichen Daten, die Sie in CloudWatch RUM aufzeichnen möchten.

    • Muss ein Objekt sein, das aus Feldern und Werten besteht.

Beispiele für die Aufzeichnung benutzerdefinierter Ereignisse

Es gibt zwei Möglichkeiten, benutzerdefinierte Ereignisse im CloudWatch RUM-Webclient aufzuzeichnen.

  • Verwenden Sie die recordEvent API des CloudWatch RUM-Webclients.

  • Verwenden Sie ein benutzerdefiniertes Plugin.

Ein benutzerdefiniertes Ereignis mithilfe der recordEvent-API senden, NPM-Beispiel

awsRum.recordEvent('my_custom_event', { location: 'IAD', current_url: 'amazonaws.com', user_interaction: { interaction_1 : "click", interaction_2 : "scroll" }, visit_count:10 } )

Ein benutzerdefiniertes Ereignis mithilfe der recordEvent-API senden, Beispiel für eingebettetes Skript

cwr('recordEvent', { type: 'my_custom_event', data: { location: 'IAD', current_url: 'amazonaws.com', user_interaction: { interaction_1 : "click", interaction_2 : "scroll" }, visit_count:10 } })

Beispiel für das Senden eines benutzerdefinierten Ereignisses mit einem benutzerdefinierten Plugin

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