Monitoraggio delle query e del server StreamInsight

Il monitoraggio dello stato di un server StreamInsight include il rilevamento dell'integrità globale del sistema e delle prestazioni di esecuzione delle query. Lo stato di un server StreamInsight viene acquisito tramite il monitoraggio delle query di StreamInsight in esecuzione nel server e della modalità di utilizzo delle risorse di sistema da parte delle entità che compongono una query di StreamInsight.

In questo argomento

  • Creazione di viste diagnostiche

  • Problemi risolvibili con le viste diagnostiche

  • Stati della query

  • Informazioni sul monitoraggio a livello di query

  • Monitoraggio della latenza delle query

  • Elenco delle proprietà diagnostiche

    • Diagnostica degli operatori

    • Diagnostica degli adattatori

    • Diagnostica del flusso

    • Diagnostica delle query

    • Diagnostica del flusso pubblicato

    • Diagnostica del server

  • Accesso alla diagnostica tramite PowerShell

Creazione di viste diagnostiche

È possibile ottenere le informazioni di monitoraggio utilizzando l'API delle viste diagnostiche. Per utilizzare quest'API, è necessario che il servizio Web di gestione sia abilitato sia nella modalità incorporata che in quella autonoma di distribuzione del server e che l'applicazione client sia connessa al server tramite questo servizio Web. Per ulteriori informazioni, vedere Pubblicazione e connessione al server StreamInsight.

In alternativa, è possibile monitorare il server e le query tramite le caratteristiche di diagnostica disponibili in Debugger flusso eventi di StreamInsight, in cui viene utilizzata l'API di diagnostica per restituire i risultati in un'interfaccia GUI. È necessario connettere il debugger a un server StreamInsight attivo e utilizzare Esplora oggetti per visualizzare i diversi oggetti nel server. Fare clic con il pulsante destro del mouse su qualsiasi oggetto per ottenere dati diagnostici di runtime relativi a tale entità. Per ulteriori informazioni, vedere Utilizzo di Debugger flusso eventi di StreamInsight.

L'accesso a tutti gli oggetti nel server viene eseguito tramite URI (Uniform Resource Identifier) basati su uno schema di denominazione gerarchico. Questo schema di denominazione inizia con il server e continua fino agli operatori di query e ai flussi di eventi. È possibile recuperare dati diagnostici a livello di server dagli oggetti seguenti:

  • cep:/Server

  • cep:/Server/PlanManager

  • cep:/Server/EventManager

  • cep:/Server/Query

Per fare riferimento a una query specifica, utilizzare lo schema di denominazione cep:/Server/Application/NomeApplicazione/Query/NomeQuery.

Per fare riferimento a operatori e flussi specifici appartenenti a una query, utilizzare gli schemi di denominazione seguenti. Si noti che anche gli adattatori sono considerati operatori in una query. Utilizzare, per essi, la nomenclatura degli operatori.

  • cep:/Server/Application/NomeApplicazione/Query/NomeQuery/Operator/NomeOperatore

  • cep:/Server/Application/NomeApplicazione/Query/NomeQuery/Stream/NomeFlusso

Per fare riferimento, ad esempio, a una query denominata 'TrafficSensorQuery' nell'applicazione denominata 'ObjectModelSample', utilizzare cep:/Server/Application/ObjectModelSample/Query/TrafficSensorQuery.

Le informazioni di diagnostica per questi oggetti vengono ottenute effettuando una chiamata al metodo GetDiagnosticView(). È possibile filtrare il recupero delle impostazioni di diagnostica in corrispondenza di due dimensioni: aspetto (memoria, CPU e altri attributi specifici dell'impostazione) e livello (di criticità). È possibile impostare le condizioni di filtro utilizzando i metodi SetDiagnosticsSettings() e ClearDiagnosticSettings() per specificare o cancellare impostazioni specifiche per una determinata query. L'esempio seguente è tratto dall'esempio "ExplicitServer.cs" e restituisce dati diagnostici per vari oggetti per una query in esecuzione. Nell'esempio si presuppone un'istanza di StreamInsight registrata denominata "MyInstance".

public class ExplicitServer
{
        public static void Main(string[] args)
        {
            using (Server server = Server.Create("MyInstance"))
{
            try
            {
                // Create application in server

                // Create query logic as a query template

                // Register adapter factories

                // bind query to event producers and consumers

                // Create bound query that can be run

      // Create a tracer to output information on the console.
                TraceListener tracer = new ConsoleTraceListener();

                // Start the query 
                query.Start();

                // Retrieve diagnostic information from the StreamInsight server.
                RetrieveDiagnostics(server.GetDiagnosticView(new Uri("cep:/Server/EventManager")), tracer);
                RetrieveDiagnostics(server.GetDiagnosticView(new Uri("cep:/Server/PlanManager")), tracer);
                RetrieveDiagnostics(server.GetDiagnosticView(new Uri("cep:/Server/Application/ObjectModelSample/Query/TrafficSensorQuery")), tracer);

                DiagnosticSettings settings = new DiagnosticSettings(DiagnosticAspect.GenerateErrorReports, DiagnosticLevel.Always);
                server.SetDiagnosticSettings(new Uri("cep:/Server"), settings);

                tracer.WriteLine("Global Server Diagnostics");
                RetrieveDiagnostics(server.GetDiagnosticView(new Uri("cep:/Server/EventManager")), tracer);
                RetrieveDiagnostics(server.GetDiagnosticView(new Uri("cep:/Server/PlanManager")), tracer);
                RetrieveDiagnostics(server.GetDiagnosticView(new Uri("cep:/Server/Query")), tracer);
                
                tracer.WriteLine("Summary Query Diagnostics");
                RetrieveDiagnostics(server.GetDiagnosticView(new Uri("cep:/Server/Application/ObjectModelSample/Query/TrafficSensorQuery")), tracer);
                tracer.WriteLine("Operator Diagnostics");
                RetrieveDiagnostics(server.GetDiagnosticView(new Uri("cep:/Server/Application/ObjectModelSample/Query/TrafficSensorQuery/Operator/sensorInput")), tracer);


                query.Stop();
            }
            catch (Exception e)
            {
                tracer.WriteLine(e.ToString());
            }
}
      }

        private static void RetrieveDiagnostics(DiagnosticView diagview, TraceListener traceListener)
        {
            // Display diagnostics for diagnostic view object
            traceListener.WriteLine("Diagnostic View for '" + diagview.ObjectName + "':");
            foreach (KeyValuePair<string, object> diagprop in diagview)
            {
                traceListener.WriteLine(" " + diagprop.Key + ": " + diagprop.Value);
            }
        }
}

Per ulteriori informazioni sull'API utilizzata nell'esempio precedente, vedere DiagnosticView. Per ulteriori informazioni sull'utilizzo dei listener di traccia, vedere la pagina relativa ai listener di traccia.

[Torna all'inizio]

Problemi risolvibili con le viste diagnostiche

È possibile utilizzare le viste diagnostiche per risolvere diversi tipi di problemi di un'applicazione StreamInsight. Ad esempio:

Causa radice

Sintomi

L'estensione definita dall'utente è lenta

Latenza del sistema elevata

È stata generata un'eccezione dall'estensione definita dall'utente

Query bloccata o interrotta

L'invio di dati da parte dell'adattatore di input è lento

Latenza dei dati elevata

Mancata generazione di CTI da parte dell'adattatore di input

Query bloccata

Funzionamento parziale dell'adattatore di output

Latenza del sistema elevata

In genere, tuttavia, non è possibile utilizzare le viste diagnostiche per risolvere problemi a livello di server o di rete locale che potrebbero influire sulle applicazioni StreamInsight. Nei problemi di questo tipo sono inclusi una rete lenta, un'operazione di I/O su disco lenta, una memoria insufficiente e una contesa delle risorse nel server.

[Torna all'inizio]

Stati della query

Per tutta la durata di una query sono previsti stati diversi, descritti nella tabella seguente:

Stato della query

Descrizione

Arrestato

La query non è più attiva. Non viene mantenuto alcun piano di query.

Si tratta del tipico stato dopo una chiamata al metodo Stop della query.

Inizializzazione in corso

Si tratta del tipico stato dopo uno degli eventi seguenti:

  • La query è stata arrestata e l'utente ha effettuato una chiamata al relativo metodo Start. La query passerà allo stato Running senza interazione dell'utente.

  • Una query resiliente è in esecuzione mentre viene recuperato un errore del server. Per modificare lo stato della query, l'utente deve effettuare una chiamata al relativo metodo Start.

In esecuzione

È in corso l'elaborazione di eventi da parte della query.

Si tratta del tipico stato dopo una chiamata al metodo Start della query.

Checkpoint

La query è in esecuzione ed è in corso un checkpoint.

Si tratta del tipico stato dopo una chiamata al metodo BeginCheckpoint.

Arresto in corso

L'utente ha richiesto l'arresto della query.

Si tratta del tipico stato dopo una chiamata al metodo Stop della query.

Sospeso

Il recupero di una query resiliente non è stato completato oppure non è stato possibile effettuare tale operazione poiché il server è stato avviato senza resilienza.

Completato

La query è stata completata in modo normale, ovvero gli adattatori di input hanno consentito l'accodamento dei marcatori di fine flusso e l'adattatore di output ne ha permesso l'utilizzo.

Interrotto

Si è verificato un errore. La query è ancora disponibile nella gestione piano.

[Torna all'inizio]

Informazioni sul monitoraggio a livello di query

Quando si esegue il monitoraggio delle prestazioni di esecuzione delle query nel server StreamInsight, è possibile utilizzare gli attributi di monitoraggio a livello di query forniti dall'API ManagementService. La seguente illustrazione del flusso di eventi consente di comprendere in che modo è possibile utilizzare questi attributi di monitoraggio.

Monitoraggio di eventi tramite query CEP.

In base all'illustrazione, si supponga la presenza di quattro punti di misurazione che registrano il passaggio degli eventi (da sinistra a destra) dall'adattatore di input all'adattatore di output passando per la query. In base a tali punti di misurazione, è possibile derivare le metriche seguenti:

  • In entrata: vengono registrati gli eventi in entrata attraverso tutti gli adattatori di input. Si tratta di una misura della frequenza di arrivo degli eventi di input non elaborati nella query dall'adattatore di input.

  • Utilizzati: vengono registrati gli eventi utilizzati dal server StreamInsight, ovvero attraverso tutti gli operatori che seguono immediatamente gli adattatori di input. Si tratta di una misura degli eventi accodati nel server.

  • Prodotti: vengono registrati tutti gli eventi in uscita dall'ultimo operatore, che precede immediatamente l'adattatore di output. Si tratta di una misura degli eventi rimossi dalla coda della query.

  • In uscita: vengono registrati tutti gli eventi in uscita dall'adattatore di output. Si tratta di una misura della frequenza di uscita degli eventi dal server StreamInsight al sink.

Basandosi sull'illustrazione, è possibile determinare l'attributo appropriato da restituire in base all'area del flusso di eventi alla quale si è interessati. Se, ad esempio, si è interessati al numero di eventi utilizzati dalla query, utilizzare l'attributo QueryTotalConsumedEventCount oppure, se si è interessati agli eventi generati dalla query, utilizzare l'attributo QueryTotalProducedEventCount.

[Torna all'inizio]

Monitoraggio della latenza delle query

La latenza è un numero cumulativo calcolato per tutti gli eventi in entrata e in uscita in un particolare gate (in entrata, generati, utilizzati o in uscita). È possibile calcolare la latenza media tra le misure eseguite tra due punti nel tempo come (S2 – S1) / (C2 – C1), dove S è la somma cumulativa della latenza in un dato gate e C è il conteggio degli eventi in quel punto di gate.

Per calcolare, ad esempio, la latenza media degli eventi utilizzati, misurare la latenza cumulativa degli eventi utilizzati QueryTotalConsumedEventLatency in corrispondenza del timestamp t1 (S1) insieme al conteggio totale degli eventi utilizzati QueryTotalConsumedEventCount in corrispondenza del timestamp t1 (C1). Ripetere quindi le stesse misurazioni in corrispondenza di un timestamp diverso (t2) e calcolare la latenza media degli eventi utilizzati come (S2 – S1)/(C2 – C1).

È possibile utilizzare gli attributi da QueryTotalIncomingEventCount a QueryLastProducedCtiTimestamp per determinare l'efficienza degli adattatori nel trasferimento degli eventi nella query o fuori da essa e la frequenza di elaborazione degli eventi da parte del server StreamInsight.

È possibile determinare la memoria totale utilizzata dagli operatori sommando i valori degli attributi OperatorEventMemory e OperatorIndexMemory.

[Torna all'inizio]

Proprietà diagnostiche

Le viste diagnostiche consentono di restituire attributi a diversi livelli di granularità degli oggetti: server, query, flussi pubblicati, operatore e adattatore.

I dati diagnostici sono progettati in modo da consentire l'aggregazione da oggetti con granularità più fine a oggetti con granularità più grossolana, risalendo nella gerarchia. Per ognuno di questi livelli, è possibile ottenere i seguenti tipi di informazioni di diagnostica:

  • Informazioni statiche (S), che restituiscono la proprietà dell'oggetto. Tali informazioni non cambiano con il variare delle condizioni dell'operazione di query.

  • Informazioni non aggregate (N), che restituiscono statistiche non aggregate dagli oggetti figlio agli oggetti padre.

  • Le informazioni aggregate (A) consentono di restituire statistiche aggregate dagli oggetti figlio all'oggetto padre.

Si noti che tutte le proprietà della vista diagnostica elencate di seguito sono disponibili in DiagnosticViewProperty.

Diagnostica degli operatori

Metadati

Nella tabella seguente vengono elencate le proprietà di metadati che consentono di descrivere operatori singoli in una query. I valori per queste proprietà non cambiano.

Nome proprietà

Tipo

Descrizione

OperatorId

Int64

Identificatore per un operatore.

OperatorKind

String

Tipo di operatore.

OperatorQueryId

Int64

Identificatore per la query in cui risiede l'operatore corrente.

OperatorEventType

String

Rappresentazione XML del tipo di output dell'operatore. Per G&A, si tratta del tipo di campo di raggruppamento, non del tipo di output.

Statistiche non aggregate

Nella tabella seguente vengono elencate le statistiche aggregate in tutte le istanze logiche di un operatore, ma non nelle statistiche delle query.

Nome proprietà

Tipo

Descrizione

OperatorTotalInputEventCount

Int64

Numero totale di eventi di input per l'operatore.

OperatorMinInputEventCountAcrossWorkers

Int64

Numero minimo di eventi di input elaborati tra tutti i thread di lavoro per un operatore.

OperatorMaxInputEventCountAcrossWorkers

Int64

Numero massimo di eventi di input elaborati tra tutti i thread di lavoro per un operatore.

OperatorTotalOutputEventCount

Int64

Numero totale di eventi di output per l'operatore.

OperatorMinOutputEventCountAcrossWorkers

Int64

Numero minimo di eventi di output generati tra tutti i thread di lavoro per un operatore.

OperatorMaxOutputEventCountAcrossWorkers

Int64

Numero massimo di eventi di output generati tra tutti i thread di lavoro per un operatore.

OperatorLastOutputCtiTimestamp

DateTime

Timestamp (in tempo applicazione) dell'ultimo CTI generato dall'operatore.

OperatorTotalOutputCtiCount

Int64

Numero totale di eventi CTI generati dall'operatore.

OperatorMinOutputCtiCountAcrossWorkers

Int64

Numero minimo di eventi CTI generati tra tutti i thread di lavoro per un operatore.

OperatorMaxOutputCtiCountAcrossWorkers

Int64

Numero massimo di eventi CTI generati tra tutti i thread di lavoro per un operatore.

OperatorEventCountSinceLastCti

Int64

Numero aggregato di eventi generati dall'operatore a partire dall'ultimo CTI per tutti i thread di lavoro di un operatore.

Per l'operatore Cleanse, questo valore è generalmente 0 (zero).

OperatorMinIndexEventCountAcrossWorkers

Int64

Numero minimo di eventi negli indici tra i thread di lavoro dell'operatore.

OperatorMaxIndexEventCountAcrossWorkers

Int64

Numero massimo di eventi negli indici tra i thread di lavoro dell'operatore.

OperatorMinEventMemoryAcrossWorkers

Int64

Quantità minima di memoria (in byte) utilizzata dagli eventi negli indici tra tutti i thread di lavoro di un operatore.

OperatorMaxEventMemoryAcrossWorkers

Int64

Quantità massima di memoria (in byte) utilizzata dagli eventi negli indici tra tutti i thread di lavoro di un operatore.

OperatorMinIndexMemoryAcrossWorkers

Int64

Quantità minima di memoria (in byte) utilizzata dagli indici tra tutti i thread di lavoro di un operatore.

OperatorMaxIndexMemoryAcrossWorkers

Int64

Quantità massima di memoria (in byte) utilizzata dagli indici tra tutti i thread di lavoro di un operatore.

OperatorNumberOfWorkers

Int32

Numero di unità di calcolo in cui l'operatore è in esecuzione.

OperatorGroupIdField

String

Nome del campo ID gruppo per un operatore di raggruppamento e applicazione.

OperatorMinCpuUsageAcrossWorkers

Int64

Utilizzo minimo della CPU, in millisecondi, tra i thread di lavoro dell'operatore.

OperatorMaxCpuUsageAcrossWorkers

Int64

Utilizzo massimo della CPU, in millisecondi, tra i thread di lavoro dell'operatore.

OperatorMinEventAdjustedCount

Int64

Numero minimo di eventi modificati tra i thread di lavoro dell'operatore.

OperatorMaxEventAdjustedCount

Int64

Numero massimo di eventi modificati tra i thread di lavoro dell'operatore.

OperatorTotalEventAdjustedCount

Int64

Numero totale di eventi modificati tra i thread di lavoro dell'operatore.

OperatorMinEventDroppedCount

Int64

Numero minimo di eventi eliminati tra i thread di lavoro dell'operatore.

OperatorMaxEventDroppedCount

Int64

Numero massimo di eventi eliminati tra i thread di lavoro dell'operatore.

OperatorTotalEventDroppedCount

Int64

Numero totale di eventi eliminati tra i thread di lavoro dell'operatore.

Statistiche aggregate

Nella tabella seguente vengono elencate le statistiche aggregate in tutte le istanze logiche di un operatore e nelle statistiche delle query.

Nome proprietà

Tipo

Descrizione

OperatorIndexEventCount

Int64

Memoria utilizzata dagli indici in tutte le istanze logiche attive dell'operatore.

OperatorEventMemory

Int64

Quantità di memoria (in byte) utilizzata dagli eventi negli indici in tutte le istanze logiche dell'operatore.

OperatorIndexMemory

Int64

Quantità di memoria (in byte) utilizzata dagli indici nell'operatore.

OperatorTotalCpuUsage

Int64

Utilizzo totale della CPU dell'operatore in millisecondi.

OperatorTotalScheduledCount

Int64

Numero totale di pianificazioni relative all'operatore.

[Torna all'inizio]

Diagnostica degli adattatori

In questa sezione vengono elencate le proprietà di diagnostica specifiche degli adattatori. Essendo un tipo speciale di operatore, gli adattatori comprendono tutte le proprietà di diagnostica elencate per gli operatori.

Metadati

Nella tabella seguente vengono elencate le proprietà di metadati che consentono di descrivere adattatori singoli. Nota: il valore della proprietà AdapterState può cambiare.

Nome proprietà

Tipo

Descrizione

AdapterStateTransitionHistory

String

Rappresentazione XML delle ultime transizioni dell'adattatore per ognuno di essi.

Statistiche

Nella tabella seguente vengono elencate le statistiche specifiche degli adattatori.

Nome proprietà

Tipo

Descrizione

AdapterTotalSuspendCount

Int64

Numero totale di volte in cui tutte le istanze dell'adattatore sono state sospese.

AdapterMinSuspendCountAcrossWorkers

Int64

Numero minimo di volte in cui un'istanza dell'adattatore è stata sospesa.

AdapterMinSuspendCountAcrossWorkers

Int64

Numero massimo di volte in cui un'istanza dell'adattatore è stata sospesa.

AdapterTotalTimeInSuspendedState

TimeSpan

Tempo totale in cui tutte le istanze dell'adattatore sono state in uno stato sospeso.

AdapterMinTimeInSuspendedStateAcrossWorkers

TimeSpan

Tempo minimo in cui un'istanza dell'adattatore è stata in uno stato sospeso.

AdapterMaxTimeInSuspendedStateAcrossWorkers

TimeSpan

Tempo massimo in cui un'istanza dell'adattatore è stata in uno stato sospeso.

AdapterTotalTimeInNonSuspendedState

TimeSpan

Tempo totale in cui tutte le istanze dell'adattatore sono state in uno stato non sospeso.

AdapterMinTimeInNonSuspendedStateAcrossWorkers

TimeSpan

Tempo minimo in cui un'istanza dell'adattatore è stata in uno stato non sospeso.

AdapterMaxTimeInNonSuspendedStateAcrossWorkers

TimeSpan

Tempo massimo in cui un'istanza dell'adattatore è stata in uno stato non sospeso.

AdapterFirstCtiTimestamp

DateTime

Timestamp (in tempo applicazione) del primo CTI generato o utilizzato dall'adattatore.

AdapterNumberOfRunningWorkers

Int32

Numero di istanze dell'adattatore nello stato Running.

AdapterNumberOfStoppedWorkers

Int32

Numero di istanze dell'adattatore nello stato Stopped.

AdapterNumberOfSuspendedWorkers

Int32

Numero di istanze dell'adattatore nello stato Suspended.

Resilienza dell'adattatore

Attributo

Tipo di

informazioni

Tipo .NET Framework

Descrizione

InputAdapterLastCheckpointHighWaterMark

N

DateTime

Limite massimo di tempo applicazione utilizzato per l'ultimo checkpoint di questo flusso. In questo modo si identifica in maniera univoca un punto nel flusso di input dopo il quale il flusso deve consentire la riproduzione di tutti gli eventi durante il recupero.

OutputAdapterLastCheckpointEventOffset

N

Int32

Numero di eventi a partire dal limite massimo di tempo applicazione tramite cui viene specificata la posizione nel flusso di output in cui è stato accettato l'ultimo checkpoint.

OutputAdapterLastCheckpointHighWaterMark

N

DateTime

Limite massimo di tempo applicazione del flusso di output per l'ultimo checkpoint accettato dalla query.

[Torna all'inizio]

Diagnostica del flusso

Metadati

Nella tabella seguente vengono elencate le proprietà di metadati che consentono di descrivere flussi singoli in una query. I valori per queste proprietà non cambiano.

Nome proprietà

Tipo

Descrizione

StreamId

Int64

ID del flusso.

StreamQueryId

Int64

ID della query per il flusso.

StreamSourceOperatorId

Int64

ID dell'operatore di origine per il flusso.

StreamTargetOperatorId

Int64

ID dell'operatore di destinazione per il flusso.

StreamSystemInstance

Booleano

Valore booleano tramite cui viene indicato se il flusso è un flusso di sistema.

Statistiche non aggregate

Nella tabella seguente vengono elencate le statistiche aggregate in tutte le istanze logiche di un flusso, ma non nelle statistiche delle query.

Nome proprietà

Tipo

Descrizione

StreamTotalInputEventCount

Int64

Numero totale di eventi di input per il flusso.

StreamMinEventCountAcrossWorkers

Int64

Numero minimo di eventi in tutte le istanze del flusso.

StreamMaxEventCountAcrossWorkers

Int64

Numero massimo di eventi in tutte le istanze del flusso.

StreamNumberOfWorkers

Int32

Numero di istanze di questo flusso.

StreamMinInputEventCountAcrossWorkers

Int64

Numero minimo di eventi di input nelle istanze del flusso.

StreamMaxInputEventCountAcrossWorkers

Int64

Numero massimo di eventi di input nelle istanze del flusso.

StreamMinMemoryIncludingEventsAcrossWorkers

Int64

Quantità minima di memoria (in byte) utilizzata nelle istanze del flusso.

StreamMaxMemoryIncludingEventsAcrossWorkers

Int64

Quantità massima di memoria (in byte) utilizzata nelle istanze del flusso.

Statistiche aggregate

Nella tabella seguente vengono elencate le statistiche aggregate in tutte le istanze logiche di un flusso e nelle statistiche delle query.

Nome proprietà

Tipo

Descrizione

StreamEventCount

Int64

Numero totale di eventi in tutte le istanze del flusso.

StreamMemoryIncludingEvents

Int64

Quantità di memoria (in byte) utilizzata dal flusso e da tutti i relativi eventi.

[Torna all'inizio]

Diagnostica delle query

Nelle query, oltre alle relative statistiche, sono contenute anche le statistiche di aggregazione degli operatori e dei flussi costituenti. Nelle sezioni seguenti vengono illustrate le statistiche specifiche delle query.

Quando una query non è in esecuzione, i dati diagnostici consentono di restituire solo le proprietà QueryState (Sospeso o Arrestato) e IsResilient (true o false).

Metadati

Nella tabella seguente vengono elencate le proprietà di metadati che consentono di descrivere query singole. I valori per queste proprietà non cambiano.

Nome proprietà

Tipo

Descrizione

QueryState

String

Stato corrente della query.

QueryStartTime

DateTime

Ora di inizio della query.

QueryEndTime

DateTime

Ora di fine della query.

QueryException

String

Ultima eccezione che si è verificata nella query.

QueryCreationTime

DateTime

Ora di creazione dell'istanza di query.

QueryId

Int64

ID della query.

QuerySystemInstance

Booleano

Valore booleano tramite cui viene indicato se la query è una query di sistema.

QueryInstanceGroupId

Int64

ID del gruppo di istanze della query.

Statistiche

Nella tabella seguente vengono elencate le statistiche specifiche della query.

Nome proprietà

Tipo

Descrizione

QueryTotalIncomingEventCount

Int64

Numero totale di eventi in entrata per la query.

QueryTotalConsumedEventCount

Int64

Numero totale di eventi utilizzati dalla query.

QueryTotalProducedEventCount

Int64

Numero totale di eventi generati dalla query.

QueryTotalOutgoingEventCount

Int64

Numero totale di eventi in uscita per la query.

QueryLastIncomingEventTimestamp

DateTime

Ora di sistema dell'ultimo evento in entrata per la query.

QueryLastConsumedEventTimestamp

DateTime

Ora di sistema dell'ultimo evento utilizzato per la query.

QueryLastProducedEventTimestamp

DateTime

Ora di sistema dell'ultimo evento generato per la query.

QueryLastOutgoingEventTimestamp

DateTime

Ora di sistema dell'ultimo evento in uscita per la query.

QueryTotalConsumedEventLatency

Double

Latenza totale (in millisecondi) di tutti gli eventi utilizzati dalla query.

QueryTotalProducedEventLatency

Double

Latenza totale (in millisecondi) di tutti gli eventi generati dalla query.

QueryTotalOutgoingEventLatency

Double

Latenza totale (in millisecondi) di tutti gli eventi in uscita per la query.

QueryLastProducedCtiTimestamp

DateTime

Timestamp (in tempo applicazione) dell'ultimo CTI generato dalla query.

Resilienza della query

Attributo

Tipo di

informazioni

Tipo .NET Framework

Descrizione

QueryLastCheckpointBeginTime

N

DateTime

Ora in cui è iniziato l'ultimo checkpoint della query. Non sarà disponibile se non è mai stato accettato alcun checkpoint, nel caso in cui la query venga arrestata o interrotta.

QueryLastCheckpointEndTime

N

DateTime

Ora in cui è stato completato l'ultimo checkpoint della query. Non sarà disponibile se non è mai stato accettato alcun checkpoint, nel caso in cui la query venga arrestata o interrotta.

QueryLastCheckpointSize

N

Int64

Dimensioni in byte dell'ultimo checkpoint della query. Non saranno disponibili se non è mai stato accettato alcun checkpoint.

QueryIsResilient

N

Booleano

True se la query è configurata per la resilienza (indipendentemente dallo stato del server). In caso contrario, False.

[Torna all'inizio]

Diagnostica del flusso pubblicato

Nella tabella seguente vengono elencate le metriche che vengono restituite per un flusso pubblicato. Per ulteriori informazioni sui flussi pubblicati, vedere Creazione di query in fase di esecuzione nella Guida per gli sviluppatori. Si noti che ogni query dispone anche di un flusso pubblicato implicito; i relativi dettagli saranno visualizzati come parte della diagnostica della query.

Attributo

Tipo di informazioni

Tipo di dati

Tipo .NET Framework

Descrizione

PublishedStreamId

S

Number

Int64

ID del flusso pubblicato.

PublishedStreamEventShape

S

String

String

Forma dell'evento elaborato dal flusso pubblicato, ovvero uno tra punto, intervallo o limite.

PublishedStreamEventType

S

String

String

Stringa contenente il nome di evento rappresentato in XML.

PublishedStreamProducerCount

S

Number

Int32

Conteggio di producer di eventi nel flusso; valore pari a 0 o 1.

PublishedStreamConsumerCount

S

Number

Int32

Conteggio di consumer di eventi del flusso.

PublishedStreamEventCount

S

Number

Int64

Conteggio di eventi nel flusso pubblicato.

PublishedStreamTotalEventCount

S

Number

Int64

Conteggio totale di eventi in tutti i flussi pubblicati.

[Torna all'inizio]

Diagnostica del server

Server

Nella tabella seguente viene elencata la metrica per l'intero server (server StreamInsight).

Attributo

Tipo di dati

Tipo .NET Framework

Descrizione

ServerVersion

String

String

Stringa di versione dell'assembly del server.

Gestione eventi

Nella tabella seguente vengono elencate le metriche per l'intero server (server StreamInsight) che possono essere restituite per la gestione eventi.

Attributo

Tipo di dati

Tipo .NET Framework

Descrizione

AllEventsCount

Number

Int64

Conteggio degli eventi attivi (allocati) nel server StreamInsight.

AllEventsMemory

Number

Int64

Quantità di memoria utilizzata da tutti gli eventi attivi nel sistema.

Gestione query

Nella tabella seguente vengono elencate le metriche per l'intero server (server StreamInsight) che possono essere restituite per il gestore dei piani di query.

Attributo

Tipo di dati

Tipo .NET Framework

Descrizione

AllQueriesCount

Number

Int64

Totale delle query in esecuzione, interrotte o sospese nel server StreamInsight (in esecuzione e finite). Una query finita implica che l'adattatore abbia richiamato il metodo Stopped() in risposta a una richiesta di arresto della query o che la query sia stata interrotta.

AllQueriesStreamCount

Number

Int64

Operatori totali nelle query.

AllQueriesOperatorCount

Number

Int64

Flussi totali nelle query.

Query (per l'intero server)

Le metriche di diagnostica delle query per l'intero server (server StreamInsight) rappresentano un'unione delle tre tabelle in cui sono illustrate le metriche aggregate per la query, l'operatore e il flusso. In questa vista diagnostica sono inoltre fornite le metriche relative alla latenza a livello di query. Due di queste metriche sono illustrate di seguito per sottolinearne l'importanza.

Attributo

Tipo di dati

Tipo .NET Framework

Descrizione

StreamEventCount

Number

Int64

Numero totale di eventi in tutti i flussi logici di tutte le query.

Si tratta del conteggio cumulativo degli eventi per tutti i flussi. I flussi di query diverse possono mantenere riferimenti a questi eventi, pertanto se si somma questo conteggio per le query, potrebbe sembrare che la memoria di flusso per il conteggio totale degli eventi superi la capacità fisica del computer che esegue il server StreamInsight.

OperatorIndexEventCount

Number

Int64

Conteggio cumulativo degli eventi in tutti gli operatori.

Si tratta del conteggio cumulativo degli eventi in tutti gli operatori. Gli operatori dalle diverse query possono gestire i riferimenti a questi eventi. Se, pertanto, si somma questo conteggio per le query, potrebbe sembrare che la memoria per il conteggio totale degli eventi superi la capacità fisica del computer che esegue il server StreamInsight. Quindi è importante interpretare questo numero come localizzato a una particolare query e non tra tutte le query.

Resilienza del server

Attributo

Tipo di

informazioni

Tipo .NET Framework

Descrizione

ServerLastRecoveryBeginTime

N

DateTime

Ora in cui il server ha iniziato l'ultimo processo di recupero.

ServerLastRecoveryEndTime

N

DateTime

Ora in cui il server ha completato l'ultimo processo di recupero.

ServerIsResilient

N

Booleano

True se il server è configurato per la resilienza. In caso contrario, False.

[Torna all'inizio]

Accesso alla diagnostica tramite PowerShell

È possibile utilizzare PowerShell per accedere alle informazioni sulla gestione o per gestire i metadati per un'istanza ospitata e in esecuzione di StreamInsight. Negli esempi seguenti viene utilizzato Powershell 2.0. Per eseguire una query, viene utilizzata l'applicazione di esempio ObjectModel.cs in esecuzione in un host di StreamInsight.

Nell'esempio seguente vengono caricate le DLL Microsoft.ComplexEventProcessing dalla Global Assembly Cache (GAC).

PS C:\> [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.ComplexEventProcessing")

Set di risultati:

GAC    Version     Location

------ ----------- -------------------------------------------------------------------------

True   v2.0.50727  C:\Windows\assembly\GAC_MSIL\Microsoft.ComplexEventProcessing\10.0.0.0__89845dcd8080cc91\Micro...

Nell'esempio seguente vengono restituiti i metodi e le proprietà accessibili nell'istanza in esecuzione di StreamInsight.

PS C:\> $server = [Microsoft.ComplexEventProcessing.Server]::Connect("https://localhost/StreamInsight")
PS C:\> $server | gm
   TypeName: Microsoft.ComplexEventProcessing.Server

Set di risultati:

Name                           MemberType Definition

------------------------------ ---------- ----------------

ClearDiagnosticSettings        Method     System.Void ClearDiagnosticSettings(System.Uri name)

CreateApplication              Method     Microsoft.ComplexEventProcessing.Application CreateApplication(string name)

CreateManagementService        Method     Microsoft.ComplexEventProcessing.ManagementService.IManagementService CreateManag...

Dispose                        Method     System.Void Dispose()

Equals                         Method     bool Equals(System.Object obj)

GetDiagnosticSettings          Method     Microsoft.ComplexEventProcessing.DiagnosticSettings GetDiagnosticSettings(System....

GetDiagnosticView              Method     Microsoft.ComplexEventProcessing.DiagnosticView GetDiagnosticView(System.Uri name)

GetHashCode                    Method     int GetHashCode()

GetType                        Method     type GetType()

SetDiagnosticSettings          Method     System.Void SetDiagnosticSettings(System.Uri name, Microsoft.ComplexEventProcessi...

ToString                       Method     string ToString()

Applications                   Property   System.Collections.Generic.IDictionary`2[[System.String, mscorlib, Version=2.0.0....

IsEmbedded                     Property   System.Boolean IsEmbedded {get;}

Nell'esempio seguente vengono restituite le metriche per l'intero server (server StreamInsight) per la gestione eventi.

PS C:\> $dv = $server.GetDiagnosticView("cep:/Server/EventManager")
PS C:\> $dv

Set di risultati:

Key                           Value

------------------------------ -----

AllEventsCount                 19

AllEventsMemory                249856

Nell'esempio seguente vengono restituite le metriche a livello di server (server StreamInsight) per il gestore dei piani.

PS C:\> $dv = $server.GetDiagnosticView("cep:/Server/PlanManager")
PS C:\> $dv

Set di risultati:

Key                    Value

----------------------- -----

AllQueriesCount         14

AllQueriesStreamCount   50

AllQueriesOperatorCount 38

Nell'esempio seguente vengono restituite le metriche per la query TrafficSensorQuery.

PS C:\> $dv = $server.GetDiagnosticView("cep:/Server/Application/ObjectModelSample/Query/TrafficSensorQuery")
PS C:\> $dv

Set di risultati:

Key                                          Value

------------------------------------------   --------------

QueryState                                  Suspended

QueryStartTime                              9/22/2009 5:34:02 PM

QueryEndTime                                9/22/2009 5:34:03 PM

StreamEventCount                            0

OperatorCount                               0

QueryTotalIncomingEventCount                553

QueryTotalConsumedEventCount                553

QueryTotalProducedEventCount                192

QueryTotalOutgoingEventCount                192

QueryLastIncomingEventSystemTime            9/22/2009 5:34:02 PM

QueryLastConsumedEventSystemTime            9/22/2009 5:34:02 PM

QueryLastProducedEventSystemTime            9/22/2009 5:34:03 PM

QueryLastOutgoingEventSystemTime            9/22/2009 5:34:03 PM

QueryTotalConsumedEventsLatency             14527.833

QueryTotalProducedEventsLatency             62457.0953

QueryTotalOutgoingEventsLatency             63553.2049

QueryLastProducedCTITimestamp               12/31/9999 11:59:59 PM

StreamMemoryIncludingEvents                 0

OperatorIndexEventCount                     0

OperatorEventMemory                         0

OperatorIndexMemory                         65870

OperatorTotalScheduledCount                 708

OperatorTotalCpuUsage                       670

[Torna all'inizio]

Vedere anche

Concetti

Operazioni (StreamInsight)