

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Invio di eventi personalizzati
<a name="CloudWatch-RUM-custom-events"></a>

CloudWatch RUM registra e inserisce gli eventi elencati in[Informazioni raccolte dal client web CloudWatch RUM](CloudWatch-RUM-datacollected.md). Se si utilizza la versione 1.12.0 o successiva del client web CloudWatch RUM, è possibile definire, registrare e inviare eventi personalizzati aggiuntivi. Puoi stabilire il nome del tipo di evento e i dati da inviare per ogni tipo di evento che definisci. Ogni payload di eventi personalizzato può contenere fino a 6 KB.

Gli eventi personalizzati vengono inseriti solo se sono stati abilitati nel monitoraggio dell'app. Per aggiornare le impostazioni di configurazione dell'app monitor, utilizza la console CloudWatch RUM o l'[UpdateAppMonitor](https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_UpdateAppMonitor.html)API. 

Dopo aver abilitato gli eventi personalizzati e aver definito e inviato gli eventi personalizzati, puoi effettuare una ricerca. Per cercarle, usa la scheda **Eventi** nella console CloudWatch RUM. Effettua la ricerca utilizzando il tipo di evento.

## Requisiti e sintassi
<a name="CloudWatch-RUM-custom-event-syntax"></a>

Gli eventi personalizzati sono costituiti da un tipo di evento e dai relativi dettagli. I parametri sono i seguenti:
+ **Tipo di evento**
  + Questo valore può essere il **tipo** o il **nome** dell'evento. Ad esempio, il tipo di evento integrato CloudWatch RUM chiamato **JsError**ha un tipo di evento di`com.amazon.rum.js_error_event`.
  + Deve contenere da 1 a 256 caratteri.
  + Può essere una combinazione di caratteri alfanumerici, caratteri di sottolineatura, trattini e punti.
+ **Dettagli dell'evento**
  + Contiene i dati effettivi che si desidera registrare in CloudWatch RUM.
  + Deve essere un oggetto composto da campi e valori.

## Esempi di registrazione di eventi personalizzati
<a name="CloudWatch-RUM-custom-event-examples"></a>

Esistono due modi per registrare eventi personalizzati nel client web CloudWatch RUM. 
+ Utilizza l'`recordEvent`API del client web CloudWatch RUM.
+ Utilizza un plug-in personalizzato.

**Invio di un evento personalizzato tramite l'API `recordEvent` (esempio NPM)**

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

**Invio di un evento personalizzato tramite l'API `recordEvent` (esempio di script incorporato)**

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

**Esempio di invio di un evento personalizzato tramite un plug-in personalizzato**

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