Monitoraggio dei contatori delle prestazioni e degli eventi di StreamInsight
È ora possibile utilizzare l'infrastruttura di diagnostica esistente per monitorare e risolvere i problemi relativi ai processi e alle query di StreamInsight con Performance Monitor e il Visualizzatore eventi.
In questo argomento
Contatori delle prestazioni
Configurazione dei contatori delle prestazioni
Elenco di contatori delle prestazioni
Utilità dei contatori delle prestazioni
Eventi amministrativi
Configurazione della registrazione amministrativa
Elenco di eventi amministrativi
Contatori delle prestazioni
StreamInsight consente di installare e configurare i contatori delle prestazioni. È possibile monitorare questi contatori con Performance Monitor o un altro strumento di monitoraggio.
I contatori delle prestazioni sono disponibili per gli oggetti di StreamInsight seguenti:
Server
Query
Adattatori di input
Resilienza
Configurazione dei contatori delle prestazioni
I contatori delle prestazioni vengono installati e configurati durante l'installazione di StreamInsight. Questa opzione di configurazione non è configurabile.
I contatori nella categoria Server sono abilitati per impostazione predefinita e non possono essere disabilitati. I contatori nelle categorie Query e Adattatori di input sono disabilitati per impostazione predefinita. Quando si abilitano i contatori per una query, vengono abilitati anche i contatori per gli adattatori di input associati. Quando si riavvia un'istanza di StreamInsight, vengono ripristinati questi comportamenti predefiniti.
Modalità di abilitazione dei contatori per una singola query
È possibile abilitare i contatori per una query specifica e per i relativi adattatori di input associati abilitando un nuovo oggetto Aspect in una chiamata a Server.SetDiagnosticSettings.
Ad esempio, è possibile utilizzare il codice seguente per abilitare i contatori delle prestazioni per la query con l'URI cep:/Server/Application/MyApp/Query/MyQuery.
DiagnosticSettings settings = server.GetDiagnosticSettings(new Uri(“cep:/Server/Application/MyApp/Query/MyQuery”);
Settings.Aspects |= DiagnosticAspect.PerformanceCounters;
server.SetDiagnosticSettings(new Uri(“cep:/Server/Application/MyApp/Query/MyQuery”), settings);
È possibile utilizzare il codice seguente per disabilitare i contatori delle prestazioni per la stessa query.
DiagnosticSettings settings = server.GetDiagnosticSettings(new Uri(“cep:/Server/Application/MyApp/Query/MyQuery”);
Settings.Aspects & ~DiagnosticAspect.PerformanceCounters;
server.SetDiagnosticSettings(new Uri(“cep:/Server/Application/MyApp/Query/MyQuery”), settings);
Modalità di abilitazione dei contatori per tutte le query
È inoltre possibile utilizzare un ciclo foreach per abilitare i contatori delle prestazioni per tutte le query e tutti gli adattatori di input in un'applicazione.
foreach (var q in application.Queries)
{
DiagnosticSettings settings = server.GetDiagnosticSettings(q.Value.Name);
settings.Aspects |= DiagnosticAspect.PerformanceCounters;
server.SetDiagnosticSettings(q.Value.Name, settings);
}
Per ulteriori informazioni sulle classi e sui metodi utilizzati negli esempi di codice precedenti, vedere gli argomenti seguenti:
[Torna all'inizio]
Elenco di contatori delle prestazioni
Convenzioni di denominazione
Stringhe quali i nomi di applicazioni con più di 16 caratteri di lunghezza vengono abbreviati in base alla formula seguente: first 10 characters + 2 periods + last 4 characters.
Nelle convenzioni di denominazione specifiche descritte di seguito, uniqueid si riferisce all'ID dell'oggetto in fase di esecuzione.
Contatori di server
Convenzione di denominazione per istanze del server: %PROCESSNAME%[uniqueid], dove %PROCESSNAME% è il nome del processo di hosting.
Nome |
Descrizione |
---|---|
Eventi nelle code di input |
Numero di eventi nelle code di input di tutte le query. |
Eventi nelle code di output |
Numero di eventi nelle code di output di tutte le query. |
Memoria |
Memoria totale (in byte) utilizzata per tutti i flussi, gli eventi e gli indici dell'operatore. |
Query in esecuzione |
Numero di query attualmente in esecuzione. |
Contatori di query
Convenzione di denominazione per istanze di query: %APPLICATION NAME%,%QUERY NAME%[uniqueid],%SERVER_INSTANCE_NAME%, dove% SERVER_INSTANCE_NAME% è il nome dell'istanza del server al quale appartiene la query.
Nome |
Descrizione |
---|---|
Latenza media dell'evento generato |
Latenza media (in millisecondi) degli eventi generati dalla query ogni secondo. |
CTI prodotti |
Numero di CTI prodotti. |
Eventi nella coda di output |
Numero di eventi nella coda di output. |
Eventi generati |
Numero di eventi generati. |
Memoria |
Memoria totale (in byte) utilizzata, inclusi eventi, indici e flussi. |
Eventi generati/sec |
Numero di eventi generati al secondo. |
Contatori di adattatori di input
Convenzione di denominazione per istanze dell'adattatore: %APPLICATION NAME%,%QUERY NAME%,%ADAPTER NAME%[uniqueid],%SERVER_INSTANCE_NAME%.
Nome |
Descrizione |
---|---|
Eventi modificati |
Numero di eventi i cui metadati temporali sono stati modificati in base ai criteri AdvanceTimeSettings. |
Input CTI |
Numero di CTI inviati ala coda di input. |
Eventi eliminati |
Numero di eventi eliminati in base ai criteri AdvanceTimeSettings. |
Eventi nella coda di input |
Numero di eventi nella coda di input (inclusi CTI). |
Eventi in ingresso/sec |
Numero di eventi ricevuti dall'adattatore al secondo. |
Riprese/sec |
Numero di transizioni di stato nello stato di esecuzione al secondo. |
Sospensioni/sec |
Numero di transizioni di stato nello stato sospeso al secondo. |
Eventi totali accodati |
Numero di eventi accodati. |
[Torna all'inizio]
Utilità dei contatori delle prestazioni
Di seguito sono riportati alcuni esempi di scenari nei quali i contatori delle prestazioni consentono di comprendere, monitorare e risolvere i problemi relativi alle applicazioni StreamInsight:
Scenari di server
Footprint di memoria. Quanta memoria viene utilizzata dall'istanza incorporata di StreamInsight, separatamente dall'applicazione host?
Pianificazione delle capacità. Quante query posso essere eseguite in questo server prima che si verifichi un calo delle prestazioni?
Analisi della relazione finale. Quanto query erano in esecuzione al momento dell'arresto anomalo del server?
Scenari di query
Monitoraggio della velocità effettiva. Dove si trova il collo di bottiglia?
Monitoraggio della latenza.
[Torna all'inizio]
Eventi amministrativi
StreamInsight consente di registrare gli eventi nel registro eventi applicazioni di Windows. È possibile esaminare questo registro con il Visualizzatore eventi o un altro strumento di monitoraggio. Gli eventi registrati consentono di monitorare i cambiamenti di stato e risolvere i problemi relativi ad anomalie che si possono verificare nelle applicazioni StreamInsight.
Gli eventi vengono registrati dagli oggetti di StreamInsight seguenti:
Server
Query
Configurazione della registrazione amministrativa
La registrazione amministrativa è abilitata per impostazione predefinita. È possibile abilitare e disabilitare la registrazione amministrativa solo a livello dell'istanza di StreamInsight (cep:/Server/).
Modalità di disabilitazione della registrazione amministrativa
DiagnosticSettings settings = server.GetDiagnosticSettings(new Uri("cep:/Server/"));
settings.Aspects &= ~DiagnosticAspect.AdminLog;
server.SetDiagnosticSettings(new Uri("cep:/Server/"), settings);
Modalità di abilitazione della registrazione amministrativa
DiagnosticSettings settings = server.GetDiagnosticSettings(new Uri("cep:/Server/"));
settings.Aspects |= DiagnosticAspect.AdminLog;
server.SetDiagnosticSettings(new Uri("cep:/Server/"), settings);
[Torna all'inizio]
Elenco di eventi amministrativi
Nella tabella seguente sono elencati gli eventi visualizzabili nel registro eventi.
L'origine per ogni evento amministrativo di StreamInsight è StreamInsight.
Eventi di query
Simbolo |
ID evento |
Livello |
Messaggio |
Parametri |
---|---|---|---|---|
QueryInitializing |
11001 |
Informazioni |
Inizializzazione della query {0} in corso. |
URI della query |
QueryRunning |
11002 |
Informazioni |
Esecuzione della query {0} in corso. |
URI della query |
QueryCheckpointing |
11003 |
Informazioni |
Checkpoint della query {0} in corso. |
URI della query |
QueryStopping |
11004 |
Informazioni |
Arresto della query {0} in corso. |
URI della query |
QuerySuspended |
11005 |
Informazioni |
Esecuzione della query {0} sospesa. |
URI della query |
QueryCompleted |
11006 |
Informazioni |
Esecuzione della query {0} completata. |
URI della query |
QueryAborted |
11007 |
Avviso |
Esecuzione della query {0} interrotta. |
URI della query |
QueryStopped |
11008 |
Informazioni |
Esecuzione della query {0} arrestata. |
URI della query |
QueryError |
11500 |
Avviso |
Si è verificata un'eccezione della query {0}. Dettagli eccezione: {1} |
URI della query, messaggio di eccezione. |
QueryRecoveryError |
11501 |
Errore |
Si è verificata un'eccezione della query {0} durante il recupero. Dettagli eccezione: {1} |
URI della query, messaggio di eccezione. |
QueryCheckpointError |
11502 |
Errore |
Si è verificata un'eccezione della query {0} durante il checkpoint. Dettagli eccezione: {1} |
URI della query, messaggio di eccezione. |
Eventi del server
Simbolo |
ID evento |
Livello |
Messaggio |
Parametri |
---|---|---|---|---|
ServerCreated |
1000 |
Informazioni |
Server creato. |
|
ServerDisposed |
1001 |
Informazioni |
Server eliminato. |
[Torna all'inizio]