Destinazioni degli eventi estesi di SQL Server

Le destinazioni degli eventi estesi di SQL Server sono consumer di eventi. Le destinazioni possono scrivere su un file, aggregare dati degli eventi o avviare un'attività correlata all'evento. Le destinazioni possono elaborare i dati in modo sincrono o asincrono.

La progettazione degli eventi estesi assicura che per le destinazioni sia garantita la ricezione degli eventi solo una volta per sessione.

Gli eventi estesi forniscono le seguenti destinazioni che è possibile utilizzare per una sessione relativa:

  • Bucket dell'evento

    Consente di calcolare il numero di volte per cui si verifica un evento specificato, in base a una colonna di evento oppure a un'azione specificata.

  • Abbinamento dell'evento

    Molti tipi di eventi si verificano a coppie: ad esempio, le acquisizioni e i rilasci del blocco. Consente di determinare quando un evento abbinato specificato non si verifica in un set corrispondente.

  • Analisi eventi per Windows (ETW)

    Consente di correlare gli eventi SQL Server con dati degli eventi del sistema operativo Windows o dell'applicazione.

  • File di eventi

    Consente di scrivere l'output di sessione dell'evento restituito dai buffer di memoria completi su disco.

  • Contatore degli eventi sincroni

    Conta tutti gli eventi specificati che si verificano durante una sessione di eventi estesi. Consente di ottenere informazioni sulle caratteristiche del carico di lavoro senza aggiungere l'overhead di un'intera raccolta di eventi.

  • Buffer circolare

    Consente di mantenere i dati degli eventi in memoria secondo una modalità FIFO o secondo una modalità FIFO basata sul tipo di evento.

Le destinazioni possono essere divise in destinazioni di file e destinazioni in memoria.

  • La destinazione file di eventi e la destinazione ETW sono considerate destinazioni di file.

  • Le destinazioni bucket dell'evento, abbinamento dell'evento, contatore degli eventi sincroni e buffer circolare sono considerate destinazioni in memoria, dove i dati vengono archiviati nel buffer della sessione (colonna target_data della vista a gestione dinamica di sys.dm_xe_session_targets).

Quando si arresta una sessione che utilizza una destinazione in memoria, tutte le informazioni archiviate nel buffer di sessione andranno perse. Per accedere ai dati degli eventi dopo avere arrestato la sessione, è necessario configurare la sessione in modo che utilizzi una destinazione di file (scelta consigliata) o salvare i dati prima di arrestare la sessione.

Per decidere la destinazione da utilizzare, fare riferimento alle linee guida riportate di seguito.

Destinazione

Utilizzo consigliato

Destinazione ETW o file di eventi

Utilizzare una destinazione di file quando viene soddisfatta una o più delle condizioni seguenti:

  • Si desidera eseguire la raccolta di dati a lungo termine.

  • Si desidera raccogliere dati per eventi con volumi molto elevati.

  • Si desidera mantenere i dati degli eventi per motivi cronologici.

Destinazione buffer circolare

Utilizzare la destinazione buffer circolare quando viene soddisfatta una o più delle condizioni seguenti:

  • Si desidera eseguire l'analisi ciclica con raccolta continua di dati, concentrandosi solo sugli eventi più recenti (approssimativamente 2 megabyte (MB) di dati degli eventi). Oppure, si desidera eseguire la raccolta di dati a breve termine e visualizzare gli eventi più recenti.

  • Si desidera visualizzare tutti i dati degli eventi acquisiti nel buffer di sessione. In altri termini, si desidera visualizzare i dati non elaborati e le informazioni non aggregate.

  • Non si ha necessità di mantenere i dati degli eventi per motivi cronologici.

Destinazione bucket dell'evento, destinazione abbinamento dell'evento o destinazione contatore degli eventi sincroni

Utilizzare una di queste destinazioni in memoria quando viene soddisfatta una o più delle condizioni seguenti:

  • Si desidera risolvere un problema specifico utilizzando una destinazione che sia in grado di eseguire alcune forme di analisi e aggregazione dei dati degli eventi. Ad esempio, è necessario sapere se una qualsiasi transazione viene lasciata aperta (destinazione di abbinamento dell'evento) o è necessario esaminare le query di utilizzo della CPU in un determinato periodo di tempo (destinazione di bucket dell'evento).

  • Si desidera eseguire la raccolta di dati a breve termine.

  • Non si ha necessità di mantenere i dati degli eventi per motivi cronologici.

Destinazione bucket dell'evento

La destinazione bucket dell'evento raggruppa le occorrenze di un tipo di evento specifico in base ai dati relativi all'evento. Per "bucket" si intende un raggruppamento di eventi conteggiati in base a una colonna di evento oppure a un'azione specificata. È possibile utilizzare la destinazione bucket dell'evento per risolvere i problemi relativi alle prestazioni. Grazie all'identificazione degli eventi che si verificano più di frequente, è infatti possibile individuare elementi specifici che indicano la causa potenziale di un problema relativo alle prestazioni.

Nella tabella seguente vengono descritte le opzioni che consentono di configurare la destinazione bucket dell'evento.

Opzione

Valori consentiti

Descrizione

slots

Qualsiasi valore integer. Questo valore è facoltativo.

Valore specificato dall'utente che indica il numero massimo di bucket da mantenere. Quando questo valore viene raggiunto, i nuovi eventi che non appartengono ai bucket esistenti sono ignorati.

filtering_event_name

Qualsiasi evento presente nella sessione degli eventi estesi. Questo valore è facoltativo.

Valore specificato dall'utente utilizzato per identificare una classe di eventi. Nel bucket vengono inserite solo le istanze dell'evento specificato. Tutti gli altri eventi vengono ignorati.

Se si specifica questo valore, è necessario utilizzare il formato nome_pacchetto.nome_evento, ad esempio 'sqlserver.checkpoint_end'. Per identificare il nome del pacchetto, è possibile utilizzare la query seguente:

SELECT p.name, se.event_name
FROM sys.dm_xe_session_events se
JOIN sys.dm_xe_packages p
ON se_event_package_guid = p.guid
ORDER BY p.name, se.event_name

Se non si specifica il valore filtering_event_name, l'opzione source_type deve essere impostata su 1 (impostazione predefinita).

source_type

Tipo di oggetto sul quale si basa il bucket. Si tratta di un valore facoltativo e se non specificato assumerà il valore predefinito 1.

I valori consentiti sono i seguenti:

  • 0 per un evento

  • 1 per un'azione

source

Colonna di evento o nome dell'azione.

Colonna di evento o nome dell'azione utilizzato come origine dati.

Quando si specifica una colonna di evento per origine, è necessario specificare una colonna dall'evento utilizzato per il valore filtering_event_name. Per identificare le colonne potenziali, è possibile utilizzare la query seguente:

SELECT name FROM sys.dm_xe_object_columns
WHERE object_name = '<eventname>'
AND column_type != 'readonly'

Quando si specifica una colonna di evento per origine, non è necessario includere il nome del pacchetto nel valore dell'origine.

Quando si specifica un nome di azione per origine, è necessario utilizzare una delle azioni configurate per la raccolta nella sessione eventi per cui viene utilizzata la destinazione specifica. Per individuare valori potenziali per il nome di azione, è possibile eseguire una query sulla colonna action_name della vista sys.dm_xe_sesssion_event_actions.

Se si utilizza un nome di azione come origine dati, è necessario specificare il valore dell'origine utilizzando il formato nome_pacchetto.nome_azione.

Nell'esempio seguente viene illustrato, a un livello elevato, il modo in cui i dati vengono raccolti nella destinazione bucket dell'evento. Nell'esempio la destinazione bucket dell'evento viene utilizzata per contare il numero di volte in cui si verifica ogni tipo di attesa. A questo scopo, è necessario specificare le opzioni seguenti quando si definisce la destinazione del bucket dell'evento:

  • filtering_event_name = 'wait_info'

  • source = 'wait_type'

  • source_type = 0 (poiché wait_type è una colonna di evento)

Nello scenario di esempio per l'origine wait_type vengono registrati i dati seguenti:

Nome evento di filtro

Valore colonna di origine

wait_info

file_io

wait_info

file_io

wait_info

network

wait_info

network

wait_info

sospensione

I valori relativi al tipo di attesa verranno inseriti in tre bucket, cui sono associati i valori e i conteggi di slot seguenti:

Valore

Conteggio di slot

file_io

2

network

2

sospensione

1

Per ulteriori informazioni sulla sintassi della destinazione bucket dell'evento, vedere Procedura: Monitoraggio dell'attività del sistema mediante gli eventi estesi.

Nella destinazione bucket vengono mantenuti solo i dati degli eventi per l'origine specificata. Nel caso in cui le dimensioni dei dati degli eventi siano troppo elevate per mantenere completamente i dati, questi ultimi vengono troncati. Quando i dati degli eventi sono troncati, il numero di byte è registrato e visualizzato come output XML.

La destinazione bucket serializza i dati su un programma che esegue la chiamata o una procedura in formato XML.

Nota

L'output del bucket non è conforme ad alcuno schema.

Nell'esempio seguente è illustrato il formato di output della destinazione bucket.

<Slots truncated = "0" buckets=[count]>
    <Slot count=[count] trunc=[truncated bytes]>
        <value>
        </value>
    </Slot>
</Slots>

Destinazione abbinamento dell'evento

La destinazione abbinamento dell'evento mette in corrispondenza due eventi utilizzando una o più colonne di dati presenti in ciascun evento. Molti eventi entrano nelle coppie, ad esempio, le acquisizioni e i rilasci del blocco. Dopo che una sequenza dell'evento viene abbinata, entrambi gli eventi sono ignorati. Il fatto di ignorare i set corrispondenti consente un facile rilevamento di acquisizioni del blocco che non sono state rilasciate.

Utilizzando filtri a livello di evento, la destinazione abbinamento può essere utilizzata solamente per acquisire eventi che non corrispondono a criteri preimpostati.

Quando si utilizza la destinazione abbinamento dell'evento, è possibile scegliere due eventi corrispondenti, insieme a una sequenza di colonne su cui eseguire la corrispondenza. Tutte le colonne nella sequenza devono essere dello stesso tipo.

Nella tabella seguente vengono descritte le opzioni disponibili per configurare l'abbinamento dell'evento.

Opzione

Valori consentiti

Descrizione

begin_event

Qualsiasi nome di evento presente nella sessione corrente.

Nome di evento che specifica l'evento di inizio in una sequenza abbinata.

end_event

Qualsiasi nome di evento presente nella sessione corrente.

Nome di evento che specifica l'evento di fine in una sequenza abbinata.

begin_matching_columns

Un elenco ordinato di nomi di colonne separati da virgole.

Colonne sulle quali eseguire la corrispondenza.

end_matching_columns

Un elenco ordinato di nomi di colonne separati da virgole.

Colonne sulle quali eseguire la corrispondenza.

begin_matching_actions

Un elenco ordinato di azioni separate da virgole.

Azioni sulle quali eseguire la corrispondenza.

end_matching_actions

Un elenco ordinato di azioni separate da virgole.

Azioni sulle quali eseguire la corrispondenza.

respond_to_memory_pressure

I valori validi sono i seguenti:

  • 0 = non rispondere.

  • 1 = arrestare l'aggiunta di nuovi orfani all'elenco quando sono presenti richieste di memoria.

Risposta della destinazione agli eventi della memoria. Se il valore è impostato su 1 e la memoria del server è insufficiente, le informazioni non abbinate mantenute vengono rimosse.

Tutti i dati associati a un evento sono acquisiti e archiviati per un abbinamento futuro. Inoltre, vengono raccolti anche i dati aggiunti dalle azioni. I dati degli eventi raccolti sono archiviati in memoria e, come tali, hanno un limite finito. Questo limite è basato sulla capacità e l'attività del sistema. Invece di prendere la quantità massima di memoria da utilizzare come parametro, la quantità di memoria utilizzata sarà basata sulle risorse di sistema disponibili. Quando queste non sono disponibili, gli eventi non abbinati che sono stati mantenuti saranno eliminati. Se un evento non è stato abbinato ed è stato eliminato, l'evento corrispondente comparirà come un evento non abbinato.

La destinazione abbinamento serializza gli eventi non abbinati a un formato XML. Questo formato non è conforme ad alcun schema. Il formato contiene solo due tipi di elementi. L'<elemento non abbinato> è la radice, seguita da un elemento <evento> per ogni evento non abbinato che viene attualmente monitorato. L'elemento <evento> contiene un attributo che contiene il nome dell'evento non abbinato.

Nell'esempio seguente viene illustrato il formato di output della destinazione abbinamento.

<unpaired truncated = "0" matchedCount = "[matched count]" memoryPressureDroppedCount = " [lost count]">
    <event name  = "[event name]" package = "[package]" id= "[event ID value]" version = "[event version]">
    <data name = "[column name]"> 
    <type name = "[column type]" package = "[type package]" /> 
    <value>[column value]</value>
    <text value>[text value]</text>>
        </data>
    </event>
</unpaired>

Destinazione Analisi eventi per Windows

Prima di utilizzare Analisi eventi per Windows (ETW) come destinazione, è consigliabile acquisire familiarità con tale funzionalità. L'analisi ETW è utilizzata in abbinamento agli eventi estesi o come un consumer di eventi estesi. I collegamenti esterni seguenti rappresentano un punto iniziale per ottenere informazioni di base su ETW:

Gli eventi estesi supportano le versioni Windows XP e Windows Server 2003 di ETW. Sebbene possa essere aggiunta a numerose sessioni, la destinazione ETW è una destinazione singleton. Se un evento viene generato in più sessioni, verrà propagato alla destinazione ETW solo una volta per ogni occorrenza. Il motore degli eventi estesi è limitato a un'unica istanza per processo.

Nota importanteImportante

Affinché la destinazione ETW funzioni, l'account di avvio del servizio SQL Server deve essere membro del gruppo Performance Log Users.

La configurazione degli eventi presente in una sessione ETW è controllata dal processo che ospita il motore degli eventi estesi. Il motore controlla gli eventi da generare e le condizioni che devono essere soddisfatte per la generazione di un evento.

Dopo avere eseguito un'associazione a una sessione degli eventi estesi, il che allega per la prima volta la destinazione ETW per la durata di un processo, la destinazione ETW apre una sola sessione ETW sul provider SQL Server. Se una sessione ETW esiste già, la destinazione ETW ottiene un riferimento alla sessione esistente. Questa sessione ETW è condivisa in tutte le istanze SQL Server su un dato computer. Questa sessione ETW riceve tutti gli eventi da sessioni che possiedono la destinazione ETW.

Poiché ETW ha bisogno che i provider siano abilitati per utilizzare gli eventi e trasmetterli verso il basso a ETW, tutti i pacchetti degli eventi estesi sono attivati nella sessione. Quando un evento è generato, la destinazione ETW invia l'evento alla sessione sulla quale è abilitato il provider per l'evento.

La destinazione ETW supporta la pubblicazione sincrona di eventi sul thread che genera l'evento. Tale destinazione tuttavia non supporta la pubblicazione asincrona di eventi.

La destinazione ETW non supporta il controllo da controller ETW esterni, ad esempio logman.exe. Per produrre tracce di ETW, una sessione dell'evento deve essere creata con la destinazione ETW. Per ulteriori informazioni, vedere CREATE EVENT SESSION (Transact-SQL).

Nota

Abilitando la destinazione ETW, viene creata una sessione ETW denominata XE_DEFAULT_ETW_SESSION. Se esiste già una sessione con il nome XE_DEFAULT_ETW_SESSION, viene utilizzata senza la modifica di alcuna proprietà della sessione esistente. La sessione XE_DEFAULT_ETW_SESSION viene condivisa tra tutte le istanze di SQL Server. Dopo aver avviato XE_DEFAULT_ETW_SESSION, è necessario arrestarla tramite un controller ETW, quale lo strumento Logman. Ad esempio, è possibile eseguire il comando seguente dal prompt dei comandi: logman stop XE_DEFAULT_ETW_SESSION - ets.

Nella tabella seguente vengono descritte le opzioni disponibili per la configurazione della destinazione ETW.

Opzione

Valori consentiti

Descrizione

default_xe_session_name

Qualsiasi stringa fino a 256 caratteri. Questo valore è facoltativo.

Nome della sessione degli eventi estesi. Per impostazione predefinita è XESESSION0_4B7A5EC6-37EF-4d4c-81EC-13C547B9AC46.

default_etw_session_logfile_path

Qualsiasi stringa fino a 256 caratteri. Questo valore è facoltativo.

Percorso del file di log per la sessione degli eventi estesi. Per impostazione predefinita è % TEMP% \ XEEtw.etl.

default_etw_session_logfile_size_mb

Qualsiasi valore integer senza segno. Questo valore è facoltativo.

Dimensioni del file di log, in megabyte (MB), per la sessione degli eventi estesi. Il valore predefinito è 20 MB.

default_etw_session_buffer_size_kb

Qualsiasi valore integer senza segno. Questo valore è facoltativo.

Dimensioni del buffer in memoria, in kilobyte (MB), per la sessione degli eventi estesi. Il valore predefinito è 128 KB.

tentativi

Qualsiasi valore integer senza segno.

Numero di tentativi di pubblicazione dell'evento al sottosistema ETW prima di eliminare l'evento. Il valore predefinito è 0.

La configurazione delle impostazioni precedenti è facoltativa. La destinazione ETW utilizza valori predefiniti per queste impostazioni.

La destinazione ETW è responsabile per:

  • Creazione della sessione ETW predefinita.

  • Registrazione di tutti i pacchetti degli eventi estesi con ETW. Ciò assicura che gli eventi non siano eliminati da ETW.

  • Gestione dell'invio del flusso di eventi a ETW. La destinazione ETW crea un evento ETW con i dati degli eventi estesi e lo invia alla sessione ETW appropriata. Se l'evento è più grande della dimensione del buffer o se i dati non possono adattarsi a un evento ETW, ETW suddivide l'evento in frammenti.

  • Conservazione dei pacchetti degli eventi estesi sempre abilitata.

I seguenti percorsi predefiniti dei file sono utilizzati da ETW:

  • Il percorso del file di output per ETW è %TEMP%\XEEtw.etl.

    Nota importanteImportante

    Impossibile modificare il percorso del file dopo l'inizio della prima sessione.

  • I file Managed Object Format (MOF) si trovano in <percorso di installazione>\Microsoft SQL Server\Shared. Per ulteriori informazioni, vedere Managed Object Format in MSDN.

Destinazione file di eventi

La destinazione file di eventi è una destinazione asincrona che prevede la scrittura di buffer completi sul disco e la creazione di due tipi di file, ovvero il file di log e quello dei metadati. Nel file dei metadati viene descritto il contenuto degli eventi presente nel file di log di output di destinazione. In questo modo l'analisi di tutti gli eventi presenti nel file di log e quella dei dati dell'azione associati a un evento vengono eseguite in modo corretto.

Per utilizzare questa destinazione, è necessario specificare il percorso del file di log e del file dei metadati. Altre opzioni di configurazione, ad esempio le caratteristiche sulle dimensioni del file e sul relativo aumento, sono facoltative.

Nella tabella seguente vengono descritte le opzioni disponibili per configurare un file di eventi utilizzato come destinazione.

Opzione

Valori consentiti

Descrizione

filename

Qualsiasi stringa fino a 260 caratteri. Questo valore è obbligatorio.

Percorso del file e nome del file.

È possibile utilizzare qualsiasi estensione del nome di file.

max_file_size

Qualsiasi valore integer a 64 bit. Questo valore è facoltativo.

Dimensioni massime del file in megabyte (MB). Se l'opzione max_file_size non è specificata, le dimensioni del file aumenteranno fino a quando il disco non è pieno. Il valore delle dimensioni predefinite del file è 1 GB.

Il valore di max_file_size deve essere maggiore delle dimensioni correnti dei buffer della sessione. In caso contrario, il file di destinazione non verrà inizializzato in modo corretto e verrà segnalato che il valore di max_file_size non è valido. Per visualizzare le dimensioni correnti dei buffer, eseguire una query sulla colonna buffer_size nella vista a gestione dinamica sys.dm_xe_sessions.

Se le dimensioni predefinite del file sono minori di quelle del buffer della sessione, è consigliabile impostare max_file_size sul valore specificato nella colonna max_memory nella vista del catalogo sys.server_event_sessions.

Quando l'opzione max_file_size è impostata su dimensioni maggiori di quelle dei buffer della sessione, il valore può essere arrotondato per difetto al multiplo più vicino delle dimensioni dei buffer della sessione. In questo modo è possibile creare un file di destinazione minore del valore specificato di max_file_size. Se il valore delle dimensioni del buffer, ad esempio, è 100 MB e max_file_size è impostato su 150 MB, le dimensioni del file risultante vengono arrotondate per difetto al valore 100 MB perché i 50 MB di spazio non sarebbero sufficienti per il secondo buffer.

Se le dimensioni predefinite del file sono minori di quelle del buffer della sessione, è consigliabile impostare max_file_size sul valore nella colonna max_memory nella vista del catalogo sys.server_event_sessions.

max_rollover_files

Qualsiasi valore integer a 32 bit. Questo valore è facoltativo.

Numero massimo di file da mantenere nel file system.

increment

Qualsiasi valore integer a 32 bit. Questo valore è facoltativo.

Crescita incrementale del file in megabyte (MB). Se non viene specificato, il valore predefinito per questa opzione è il doppio delle dimensioni del buffer della sessione.

metadatafile

Qualsiasi stringa fino a 260 caratteri. Questo valore è obbligatorio.

Nome e percorso dei metadati per il file.

La prima volta che viene creata una destinazione del file, il nome del file specificato viene aggiunto con 0 e un valore long integer. Il valore integer viene calcolato come il numero di millisecondi compresi tra l'1 gennaio 1600 e la data e l'ora di creazione del file. Questo formato viene utilizzato anche da file di rollover successivi. L'analisi del valore long integer consente di determinare il file più recente. Nell'esempio seguente viene illustrato come denominare i file in uno scenario in cui l'opzione relativa al nome di file viene specificata come C:\OutputFiles\MyOutput.xel:

  • primo file creato - C:\OutputFiles\MyOutput_0_128500310259380000.xel

  • primo file di rollover - C:\OutputFiles\MyOutput_0_128505831770890000.xel

  • secondo file di rollover - C:\OutputFiles\MyOutput_0_132410772966237000.xel

Destinazione contatore degli eventi sincroni

La destinazione contatore degli eventi sincroni conta tutti gli eventi generati durante una sessione di eventi estesi. Utilizzando la destinazione contatore è possibile ottenere informazioni sulle caratteristiche del carico di lavoro senza aggiungere l'overhead di un'intera raccolta di eventi. Questa destinazione non dispone di parametri personalizzabili.

Nell'esempio seguente viene illustrato l'output della destinazione contatore degli eventi.

<CounterTarget truncated = "0">
  <Packages>
    <Package name = "[package name]">
      <Event name = "[event name]" count = "[number]" />
    </Package>
  </Packages>
</CounterTarget>

Destinazione buffer circolare

Il buffer circolare mantiene brevemente in memoria i dati relativi agli eventi. Questa destinazione può gestire gli eventi in due modalità diverse.

  • La prima è una modalità di tipo puramente FIFO, in base alla quale l'evento meno recente viene eliminato quando tutta la memoria allocata alla destinazione è stata utilizzata. In questa modalità, che rappresenta quella predefinita, il valore dell'opzione occurrence_number è impostato su 0.

  • La seconda è una modalità FIFO basata sul tipo di evento, che prevede di mantenere in memoria un numero specificato di eventi di ciascun tipo. In base a tale modalità, gli eventi meno recenti di ciascun tipo vengono eliminati quando tutta la memoria allocata alla destinazione è stata utilizzata. È possibile configurare occurrence_number per specificare il numero di eventi di ciascun tipo da mantenere.

Nella tabella seguente vengono descritte le opzioni disponibili per configurare una destinazione buffer circolare.

Opzione

Valori consentiti

Descrizione

default_memory

Qualsiasi valore integer a 32 bit. Questo valore è facoltativo.

Quantità massima di memoria che può essere utilizzata in kilobyte. Quando questo valore è raggiunto, gli eventi esistenti vengono eliminati.

occurrence_number

I valori validi sono i seguenti:

  • 0 (valore predefinito) = l'evento meno recente viene eliminato quando tutta la memoria allocata alla destinazione è stata utilizzata.

  • Qualsiasi valore integer a 32 bit = indica il numero di eventi di ciascun tipo da mantenere prima di eseguire l'eliminazione secondo una modalità FIFO basata sul tipo di evento.

Questo valore è facoltativo.

Modalità FIFO da utilizzare e, se il valore impostato è maggiore di 0, numero desiderato di eventi di ciascun tipo da mantenere nel buffer.

Nell'esempio seguente viene illustrato l'output di un buffer circolare utilizzato come destinazione.

<RingBufferTarget eventsPerSec="" processingTime="" totalEventsProcessed="" eventCount="" droppedCount="" memoryUsed="">
 <event name="" package="" id="" version="" timestamp="">
    <data name="">
      <type name="" package="" />
      <value></value>
      <text></text>
    </data>
    <action name="" package="">
      <type name="" package="" />
      <value></value>
      <text></text>
    </action>
  </event>
</RingBufferTarget>