

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
<a name="CloudWatch-RUM-custom-events"></a>

CloudWatch RUM zeichnet die unter aufgelisteten Ereignisse auf und nimmt sie auf[Vom CloudWatch RUM-Webclient gesammelte Informationen](CloudWatch-RUM-datacollected.md). 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](https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_UpdateAppMonitor.html) 

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
<a name="CloudWatch-RUM-custom-event-syntax"></a>

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 **JsError**hat der in CloudWatch RUM integrierte Ereignistyp namens den Ereignistyp`com.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
<a name="CloudWatch-RUM-custom-event-examples"></a>

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