Destinazione di Event Tracing for Windows
Prima di utilizzare Event Tracing for Windows (ETW) come destinazione, è consigliabile acquisire familiarità con tale funzionalità. L'analisi ETW è utilizzata in abbinamento a Eventi estesi o come un consumer di eventi estesi. I collegamenti esterni seguenti rappresentano un punto iniziale per ottenere informazioni di base su 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 di Eventi estesi è limitato a un'unica istanza per processo.
Importante |
---|
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 di Eventi estesi. Il motore controlla gli eventi da generare e le condizioni che devono essere soddisfatte perché l'evento si verifichi.
Dopo avere eseguito un'associazione a una sessione di 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 di 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 contenente fino a 256 caratteri. Questo valore è facoltativo. |
Nome della sessione di Eventi estesi. Per impostazione predefinita è XE_DEFAULT_ETW_SESSION. |
default_etw_session_logfile_path |
Qualsiasi stringa contenente fino a 256 caratteri. Questo valore è facoltativo. |
Percorso del file di log per la sessione di Eventi estesi. Per impostazione predefinita è %TEMP%\ XEEtw.etl. |
default_etw_session_logfile_size_mb |
Qualsiasi valore intero senza segno. Questo valore è facoltativo. |
Dimensioni del file di log, in megabyte (MB), per la sessione di Eventi estesi. Il valore predefinito è 20 MB. |
default_etw_session_buffer_size_kb |
Qualsiasi valore intero senza segno. Questo valore è facoltativo. |
Dimensioni del buffer in memoria, in kilobyte (MB), per la sessione di Eventi estesi. Il valore predefinito è 128 KB. |
retries |
Qualsiasi valore intero senza segno. |
Numero di tentativi di pubblicazione dell'evento al sottosistema ETW prima di eliminare l'evento. Il valore predefinito è 0. |
La configurazione di queste impostazioni è 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 di 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 di 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 di 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.
Importante Impossibile modificare il percorso del file dopo l'inizio della prima sessione.
I file Managed Object Format (MOF) si trovano in <your install path>\Microsoft SQL Server\Shared. Per ulteriori informazioni, vedere Managed Object Format in MSDN.
Aggiunta della destinazione a una sessione
Per aggiungere la destinazione ETW a una sessione di Eventi estesi, è necessario includere l'istruzione seguente quando si crea o modifica una sessione eventi:
ADD TARGET package0.etw_classic_sync_target
Per ulteriori informazioni su un esempio completo che mostra come utilizzare la destinazione ETW e come visualizzare i dati, vedere Monitorare l'attività del sistema mediante gli eventi estesi.
Vedere anche
Riferimento
sys.dm_xe_session_targets (Transact-SQL)
CREATE EVENT SESSION (Transact-SQL)
ALTER EVENT SESSION (Transact-SQL)