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]