Share via


Monitorando o servidor StreamInsight e as consultas

O monitoramento do estado de um servidor do StreamInsight envolve o acompanhamento da integridade geral do sistema e do desempenho da consulta. O estado de um servidor StreamInsight é capturado pelo monitoramento das consultas StreamInsight em execução no servidor e pelo monitoramento de como as entidades que compõem uma consulta StreamInsight estão usando recursos do sistema.

Neste tópico

  • Criando exibições de diagnóstico

  • Quais problemas posso solucionar com as exibições de diagnóstico?

  • Estados de consulta

  • Noções básicas sobre monitoramento em nível de consulta

  • Monitorando a latência da consulta

  • Lista de propriedades de diagnóstico

    • Diagnóstico do operador

    • Diagnóstico do adaptador

    • Diagnóstico do fluxo

    • Diagnóstico da consulta

    • Diagnóstico do fluxo publicado

    • Diagnóstico do servidor

  • Acessando o diagnóstico com o PowerShell

Criando exibições de diagnóstico

É possível obter informações de monitoramento usando a API de exibições de diagnóstico. Como pré-requisito para usar essa API, você deve ter o serviço Web de gerenciamento habilitado nos modos inserido e autônomo de implantação de servidor e seu aplicativo cliente deve estar conectado ao servidor através desse serviço Web. Para obter mais informações, consulte Publicando e conectando ao servidor StreamInsight.

Outra alternativa é monitorar o servidor e consultar usando os recursos de diagnóstico no Depurador de Fluxo de Eventos do StreamInsight, que usa a API de diagnóstico para retornar os resultados em uma interface de GUI. Você deve conectar o depurador a um servidor StreamInsight ativo e usar o Pesquisador de Objetos para exibir os diversos objetos no servidor. Clique com o botão direito do mouse em qualquer objeto para obter o diagnóstico de tempo de execução dessa entidade. Para obter mais informações, consulte Usando o depurador do fluxo de eventos do StreamInsight.

Todos os objetos do servidor são acessados usando o URI (Uniform Resource Identifier) com base em um esquema de nomeação hierárquico. Esse esquema de nomeação começa com o servidor e continua até os operadores de consulta e os fluxos de eventos. Você pode recuperar o diagnóstico em nível de servidor a partir dos seguintes objetos:

  • cep:/Server

  • cep:/Server/PlanManager

  • cep:/Server/EventManager

  • cep:/Server/Query

Para fazer referência a uma consulta específica, use o esquema de nomeação cep:/Server/Application/ApplicationName/Query/QueryName.

Para referir-se a operadores e fluxos específicos que pertencem a uma consulta, use os esquemas de nomeação a seguir. Observe que adaptadores também são considerados operadores em uma consulta. Use a nomenclatura de operador em adaptadores.

  • cep:/Server/Application/ApplicationName/Query/QueryName/Operator/OperatorName

  • cep:/Server/Application/ApplicationName/Query/QueryName/Stream/StreamName

Por exemplo, para fazer referência a uma consulta 'TrafficSensorQuery' no aplicativo 'ObjectModelSample', use cep:/Server/Application/ObjectModelSample/Query/TrafficSensorQuery.

As informações de diagnóstico desses objetos são obtidas chamando o método GetDiagnosticView(). Você pode filtrar a recuperação de configurações de diagnóstico em duas dimensões - o aspecto (memória, CPU e outros atributos específicos dessa configuração) e nível (de importância). É possível definir essas condições de filtragem usando os métodos SetDiagnosticsSettings() e ClearDiagnosticSettings() para definir ou limpar configurações específicas de determinada consulta. O exemplo a seguir foi extraído do exemplo 'ExplicitServer.cs' e gera o diagnóstico em vários objetos para uma consulta em execução. O exemplo supõe que existe uma instância do StreamInsight registrada chamada "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);
            }
        }
}

Para obter mais informações sobre a API usada no exemplo anterior, consulte DiagnosticView. Para obter mais informações sobre como usar ouvintes de rastreamento, consulte Ouvintes de rastreamento.

[TOP]

Quais problemas posso solucionar com as exibições de diagnóstico?

Você pode usar as exibições de diagnóstico para solucionar vários tipos de problemas com um aplicativo StreamInsight. Por exemplo:

Causa raiz

Sintoma(s)

A extensão definida pelo usuário é baixa

Latência do sistema alta

A extensão definida pelo usuário gerou uma exceção

Consulta interrompida ou anulada

O adaptador de entrada não está alimentando os dados rapidamente

Latência de dados alta

O adaptador de entrada não está gerando CTIs

Consulta interrompida

O adaptador de saída não está acompanhando

Latência do sistema alta

No entanto, geralmente, você não pode usar exibições de diagnóstico para solucionar problemas no nível do servidor ou do local de rede, o que pode estar afetando os aplicativos StreamInsight. Rede lenta, E/S de disco lenta, memória baixa e contenção de recurso no servidor são considerados problemas desse tipo.

[TOP]

Estados de consulta

Uma consulta passa por vários estados durante seu tempo de vida. Esses estados são descritos na tabela a seguir.

Estado da consulta

Descrição

Parado

A consulta não está mais ativa. Nenhum plano de consulta está retido.

Esse estado geralmente ocorre depois que é feita uma chamada para o método Stop da consulta.

Inicializando

Esse estado geralmente ocorre após um dos seguintes eventos:

  • A consulta foi interrompida e o usuário chamou o método Start. A consulta passará para o estado Running sem interação do usuário.

  • Uma consulta resiliente estava em execução e o servidor está se recuperando da falha. Para alterar o estado da consulta, o usuário deve chamar o método Start.

Em Execução

A consulta está processando eventos.

Esse estado geralmente ocorre depois que é feita uma chamada para o método Start da consulta.

Definindo o ponto de verificação

A consulta está em execução e um ponto de verificação está em andamento.

Esse estado geralmente ocorre depois que é feita uma chamada para o método BeginCheckpoint.

Parando

O usuário solicitou a interrupção da consulta.

Esse estado geralmente ocorre depois que é feita uma chamada para o método Stop da consulta.

Suspensa

Uma consulta resiliente não conseguiu se recuperar ou não pôde ser recuperada porque o servidor foi iniciado sem resiliência.

Concluída

A consulta foi concluída de maneira normal. Ou seja, os adaptadores de entrada enfileiraram os marcadores de fim de fluxo, e o adaptador de saída os consumiu.

Anulada

A falha ocorreu. A consulta ainda está disponível no gerenciador de plano.

[TOP]

Noções básicas sobre monitoramento em nível de consulta

Quando você monitora o desempenho da consulta no servidor StreamInsight, é possível usar os atributos de monitoramento em nível de consulta fornecidos pela API ManagementService. Use a ilustração do fluxo de eventos a seguir para ajudá-lo a compreender como é possível usar esses atributos de monitoramento.

Eventos de monitoramento através da consulta CEP.

Com base na ilustração, imagine que existem quatro pontos de medição que registram a passagem de eventos (da esquerda para a direita), a partir do adaptador de entrada, passando pela consulta, até chegar ao adaptador de saída. Com base nesses pontos de medição, a seguinte métrica pode ser derivada:

  • Entrada — Registra eventos de entrada em todos os adaptadores de entrada. Esta é uma medida da taxa de chegada do evento de entrada do adaptador de entrada na consulta.

  • Consumidos — Registra eventos consumidos pelo servidor StreamInsight, ou seja, em todos os operadores que vêm logo depois dos adaptadores de entrada. Esta é uma medida dos eventos enfileirados no servidor.

  • Produzidos — Registra todos os eventos que estão deixando o último operador precede o adaptador de saída. Esta é uma medida dos eventos removidos da fila da consulta.

  • Saída — Registra todos os eventos que deixam o adaptador de saída. Esta é uma medida da taxa de saída do evento do servidor do StreamInsight para o coletor.

Usando a ilustração como guia, é possível determinar o atributo apropriado a ser retornado com base na área do fluxo de eventos na qual você está interessado. Por exemplo, se você estiver interessado no número de eventos consumidos pela consulta, use o atributo QueryTotalConsumedEventCount ou, se estiver interessado nos eventos produzidos pela consulta, use o atributo QueryTotalProducedEventCount.

[TOP]

Monitorando a latência da consulta

A latência é um número cumulativo computado em todas as chegadas e saídas de eventos em determinado portão (entrada, produzidos, consumidos ou saída). É possível computar a latência média entre medidas feitas em dois pontos por vez como (S2 – S1)/(C2 – C1), em que S é a soma cumulativa da latência em qualquer portão e C é a contagem de eventos nesse ponto associado.

Por exemplo, para computar a latência média consumida, procure medir a latência cumulativa consumida (QueryTotalConsumedEventLatency) no carimbo de data/hora t1 (S1) junto com a contagem total de eventos consumidos (QueryTotalConsumedEventCount). Em seguida, repita as mesmas medidas em um carimbo de data/hora diferente (t2) e calcule a latência média do evento consumido como (S2 – S1)/(C2 – C1).

É possível usar os atributos desde o QueryTotalIncomingEventCount até o QueryLastProducedCtiTimestamp para determinar a eficiência dos adaptadores na transferência de eventos de ou para a consulta, e a taxa de processamento de eventos pelo servidor do StreamInsight.

É possível determinar a memória total consumida por operadores somando os valores dos atributos OperatorEventMemory e OperatorIndexMemory.

[TOP]

Propriedades de diagnóstico

As exibições de diagnóstico retornam atributos em vários níveis de granularidade de objeto: servidor, consulta, fluxos publicados, operador e adaptador.

Os diagnósticos são criados de forma que podem ser agregados a partir de objetos de granularidade mais refinada para objetos de granularidade mais rústicos na hierarquia. Para cada um desses níveis, é possível obter os seguintes tipos de informações de diagnóstico:

  • Informações estáticas (S) retornam a propriedade do objeto. Informações estáticas não mudam de acordo com as condições variadas da operação de consulta.

  • Informações não agregadas (N) retornam estatísticas não agregadas de objetos filhos para seus objetos pais.

  • As informações agregadas (A) retornam estatísticas agregadas dos objetos filhos para seu objeto pai.

Observe que todas as propriedades de exibição de diagnóstico listadas abaixo estão disponíveis em DiagnosticViewProperty.

Diagnóstico do operador

Metadados

A tabela a seguir lista as propriedades de metadados que descrevem operadores individuais em uma consulta. Os valores dessas propriedades não são alterados.

Nome da propriedade

Tipo

Descrição

OperatorId

Int64

Identificador de um operador.

OperatorKind

String

Tipo de operador.

OperatorQueryId

Int64

Identificador da consulta em que o operador atual reside.

OperatorEventType

String

Representação XML do tipo de saída do operador. Para G&A, esse é o tipo do campo de agrupamento, e não a saída.

Estatísticas não agregadas

A tabela a seguir lista as estatísticas que são agregadas em todas as instâncias lógicas de um operador, mas que não são agregadas nas estatísticas da consulta.

Nome da propriedade

Tipo

Descrição

OperatorTotalInputEventCount

Int64

Número total de eventos de entrada do operador.

OperatorMinInputEventCountAcrossWorkers

Int64

Número mínimo de eventos de entrada processados entre todos os trabalhos de um operador.

OperatorMaxInputEventCountAcrossWorkers

Int64

Número máximo de eventos de entrada processados entre todos os trabalhos de um operador.

OperatorTotalOutputEventCount

Int64

Número total de eventos de saída do operador.

OperatorMinOutputEventCountAcrossWorkers

Int64

Número mínimo de eventos de saída gerados entre todos os trabalhos de um operador.

OperatorMaxOutputEventCountAcrossWorkers

Int64

Número máximo de eventos de saída gerados entre todos os trabalhos de um operador.

OperatorLastOutputCtiTimestamp

DateTime

O carimbo de data/hora do último CTI (na hora do aplicativo) produzido pelo operador.

OperatorTotalOutputCtiCount

Int64

O número total de eventos CTI produzidos pelo operador.

OperatorMinOutputCtiCountAcrossWorkers

Int64

O número mínimo de eventos CTI produzidos entre todos os trabalhos de um operador.

OperatorMaxOutputCtiCountAcrossWorkers

Int64

O número máximo de eventos CTI produzidos entre todos os trabalhos de um operador.

OperatorEventCountSinceLastCti

Int64

O número agregado de eventos CTI produzidos pelo operador desde o último CTI para todos os trabalhos de um operador.

Para o operador Cleanse, esse valor geralmente é 0 (zero).

OperatorMinIndexEventCountAcrossWorkers

Int64

O número mínimo de eventos nos índices entre os trabalhos do operador.

OperatorMaxIndexEventCountAcrossWorkers

Int64

O número máximo de eventos nos índices entre os trabalhos do operador.

OperatorMinEventMemoryAcrossWorkers

Int64

A quantidade mínima de memória usada (em bytes) pelos eventos nos índices entre todos os trabalhos de um operador.

OperatorMaxEventMemoryAcrossWorkers

Int64

A quantidade máxima de memória usada (em bytes) pelos eventos nos índices entre todos os trabalhos de um operador.

OperatorMinIndexMemoryAcrossWorkers

Int64

A quantidade mínima de memória usada (em bytes) pelos índices entre todos os trabalhos de um operador.

OperatorMaxIndexMemoryAcrossWorkers

Int64

A quantidade máxima de memória usada (em bytes) pelos índices entre todos os trabalhos de um operador.

OperatorNumberOfWorkers

Int32

O número de unidades computacionais que estão executando o operador.

OperatorGroupIdField

String

O nome do campo ID do grupo para um operador Group And Apply.

OperatorMinCpuUsageAcrossWorkers

Int64

O uso mínimo de CPU, em milissegundos, entre os trabalhos do operador.

OperatorMaxCpuUsageAcrossWorkers

Int64

O uso máximo de CPU, em milissegundos, entre os trabalhos do operador.

OperatorMinEventAdjustedCount

Int64

O número mínimo de eventos ajustados entre os trabalhos do operador.

OperatorMaxEventAdjustedCount

Int64

O número máximo de eventos ajustados entre os trabalhos do operador.

OperatorTotalEventAdjustedCount

Int64

O número total de eventos ajustados entre os trabalhos do operador.

OperatorMinEventDroppedCount

Int64

O número mínimo de eventos removidos entre os trabalhos do operador.

OperatorMaxEventDroppedCount

Int64

O número máximo de eventos removidos entre os trabalhos do operador.

OperatorTotalEventDroppedCount

Int64

O número total de eventos removidos entre os trabalhos do operador.

Estatísticas agregadas

A tabela a seguir lista as estatísticas agregadas em todas as instâncias lógicas de um operador e nas estatísticas da consulta.

Nome da propriedade

Tipo

Descrição

OperatorIndexEventCount

Int64

A memória usada pelos índices em todas as instâncias lógicas ativas do operador.

OperatorEventMemory

Int64

A quantidade de memória usada (em bytes) pelos eventos nos índices em todas as instâncias lógicas do operador.

OperatorIndexMemory

Int64

A quantidade de memória usadas (em bytes) pelos índices do operador.

OperatorTotalCpuUsage

Int64

O uso de CPU total do operador em milissegundos.

OperatorTotalScheduledCount

Int64

O número total de vezes em que o operador foi agendado.

[TOP]

Diagnóstico do adaptador

Esta seção lista as propriedades de diagnóstico específicas dos adaptadores. Os adaptadores são um tipo especial de operador e, portanto, incluem todas as propriedades de diagnóstico listadas para os operadores.

Metadados

A tabela a seguir lista as propriedades de metadados que descrevem adaptadores individuais. Observação: o valor de propriedade AdapterState pode ser alterado.

Nome da propriedade

Tipo

Descrição

AdapterStateTransitionHistory

String

A representação XML das últimas transições de cada adaptador.

Estatísticas

A tabela a seguir lista as estatísticas específicas dos adaptadores.

Nome da propriedade

Tipo

Descrição

AdapterTotalSuspendCount

Int64

O número total de vezes em que todas as instâncias do adaptador foram suspensas.

AdapterMinSuspendCountAcrossWorkers

Int64

O número mínimo de vezes que uma instância do adaptador foi suspensa.

AdapterMinSuspendCountAcrossWorkers

Int64

O número máximo de vezes que uma instância do adaptador foi suspensa.

AdapterTotalTimeInSuspendedState

TimeSpan

O tempo total em que todas as instâncias do adaptador permaneceram no estado suspenso.

AdapterMinTimeInSuspendedStateAcrossWorkers

TimeSpan

O tempo mínimo em que uma instância do adaptador permaneceu no estado suspenso.

AdapterMaxTimeInSuspendedStateAcrossWorkers

TimeSpan

O tempo máximo em que uma instância do adaptador permaneceu no estado suspenso.

AdapterTotalTimeInNonSuspendedState

TimeSpan

O tempo total em que todas as instâncias do adaptador permaneceram no estado não suspenso.

AdapterMinTimeInNonSuspendedStateAcrossWorkers

TimeSpan

O tempo mínimo em que uma instância do adaptador permaneceu no estado não suspenso.

AdapterMaxTimeInNonSuspendedStateAcrossWorkers

TimeSpan

O tempo máximo em que uma instância do adaptador permaneceu no estado não suspenso.

AdapterFirstCtiTimestamp

DateTime

O carimbo de data/hora do primeiro CTI (na hora do aplicativo) produzido ou consumido pelo adaptador.

AdapterNumberOfRunningWorkers

Int32

Número de instâncias do adaptador no estado Em Execução.

AdapterNumberOfStoppedWorkers

Int32

Número de instâncias do adaptador no estado Parado.

AdapterNumberOfSuspendedWorkers

Int32

Número de instâncias do adaptador no estado Suspenso.

Resiliência do adaptador

Atributo

Tipo de

informação

Tipo de .NET Framework

Descrição

InputAdapterLastCheckpointHighWaterMark

N

DateTime

A marca d'água alta da hora do aplicativo usada no último ponto de verificação deste fluxo. Isso identifica exclusivamente um ponto no fluxo de entrada, e o fluxo deve reproduzir todos os eventos após este ponto durante a recuperação.

OutputAdapterLastCheckpointEventOffset

N

Int32

O número de eventos desde a marca d'água alta da hora do aplicativo especificando o local no fluxo de saída em que o último ponto de verificação foi obtido.

OutputAdapterLastCheckpointHighWaterMark

N

DateTime

A marca d'água alta da hora do aplicativo do fluxo de saída para o último ponto de verificação obtido pela consulta.

[TOP]

Diagnóstico do fluxo

Metadados

A tabela a seguir lista as propriedades de metadados que descrevem fluxos individuais em uma consulta. Os valores dessas propriedades não são alterados.

Nome da propriedade

Tipo

Descrição

StreamId

Int64

A ID do fluxo.

StreamQueryId

Int64

A ID da consulta do fluxo.

StreamSourceOperatorId

Int64

A ID do operador de origem do fluxo.

StreamTargetOperatorId

Int64

A ID do operador de destino do fluxo.

StreamSystemInstance

Booliano

Valor booliano que indica se o fluxo está em um fluxo do sistema.

Estatísticas não agregadas

A tabela a seguir lista as estatísticas que são agregadas em todas as instâncias lógicas de um fluxo, mas que não são agregadas nas estatísticas da consulta.

Nome da propriedade

Tipo

Descrição

StreamTotalInputEventCount

Int64

O número total de eventos de entrada do fluxo.

StreamMinEventCountAcrossWorkers

Int64

O número mínimo de eventos em todas as instâncias do fluxo.

StreamMaxEventCountAcrossWorkers

Int64

O número máximo de eventos em todas as instâncias do fluxo.

StreamNumberOfWorkers

Int32

O número de instâncias deste fluxo.

StreamMinInputEventCountAcrossWorkers

Int64

O número mínimo de eventos de entrada nas instâncias do fluxo.

StreamMaxInputEventCountAcrossWorkers

Int64

O número máximo de eventos de entrada nas instâncias do fluxo.

StreamMinMemoryIncludingEventsAcrossWorkers

Int64

A quantidade mínima de memória usada (em bytes) nas instâncias do fluxo.

StreamMaxMemoryIncludingEventsAcrossWorkers

Int64

A quantidade máxima de memória usada (em bytes) nas instâncias do fluxo.

Estatísticas agregadas

A tabela a seguir lista as estatísticas agregadas em todas as instâncias lógicas de um fluxo e nas estatísticas da consulta.

Nome da propriedade

Tipo

Descrição

StreamEventCount

Int64

O número total de eventos em todas as instâncias do fluxo.

StreamMemoryIncludingEvents

Int64

A quantidade de memória (em bytes) usada pelo fluxo e todos os eventos nele contidos.

[TOP]

Diagnóstico da consulta

As consultas contêm as estatísticas agregadas dos seus fluxos e operadores constituintes, juntamente com suas próprias estatísticas. As seções a seguir descrevem detalhadamente as estatísticas específicas das consultas.

Quando uma consulta não está em execução, os diagnósticos retornam apenas as propriedades QueryState (Suspensa ou Parada) e IsResilient (true ou false).

Metadados

A tabela a seguir lista as propriedades de metadados que descrevem consultas individuais. Os valores dessas propriedades não são alterados.

Nome da propriedade

Tipo

Descrição

QueryState

String

O estado atual da consulta.

QueryStartTime

DateTime

A hora de início da consulta.

QueryEndTime

DateTime

A hora de término da consulta.

QueryException

String

A última exceção que ocorreu na consulta.

QueryCreationTime

DateTime

A hora em que a instância da consulta foi criada.

QueryId

Int64

A ID da consulta.

QuerySystemInstance

Booliano

Valor booliano que indica se a consulta é uma consulta do sistema.

QueryInstanceGroupId

Int64

A ID do grupo de instâncias da consulta.

Estatísticas

A tabela a seguir lista as estatísticas específicas da consulta.

Nome da propriedade

Tipo

Descrição

QueryTotalIncomingEventCount

Int64

O número total de eventos de entrada da consulta.

QueryTotalConsumedEventCount

Int64

O número total de eventos consumidos pela consulta.

QueryTotalProducedEventCount

Int64

O número total de eventos produzidos pela consulta.

QueryTotalOutgoingEventCount

Int64

O número total de eventos de saída da consulta.

QueryLastIncomingEventTimestamp

DateTime

A hora do sistema do último evento de entrada da consulta.

QueryLastConsumedEventTimestamp

DateTime

A hora do sistema do último evento consumido da consulta.

QueryLastProducedEventTimestamp

DateTime

A hora do sistema do último evento produzido da consulta.

QueryLastOutgoingEventTimestamp

DateTime

A hora do sistema do último evento de saída da consulta.

QueryTotalConsumedEventLatency

Double

A latência total (em milissegundos) de todos os eventos consumidos pela consulta.

QueryTotalProducedEventLatency

Double

A latência total (em milissegundos) de todos os eventos produzidos pela consulta.

QueryTotalOutgoingEventLatency

Double

A latência total (em milissegundos) de todos os eventos de saída da consulta.

QueryLastProducedCtiTimestamp

DateTime

O carimbo de data/hora (na hora do aplicativo) do último CTI produzido pela consulta.

Resiliência da consulta

Atributo

Tipo de

informação

Tipo de .NET Framework

Descrição

QueryLastCheckpointBeginTime

N

DateTime

A hora em que o último ponto de verificação da consulta começou. Não estará presente se um ponto de verificação nunca tiver sido obtido, ou se a consulta for interrompida ou anulada.

QueryLastCheckpointEndTime

N

DateTime

A hora em que o último ponto de verificação da consulta foi concluído. Não estará presente se um ponto de verificação nunca tiver sido obtido, ou se a consulta for interrompida ou anulada.

QueryLastCheckpointSize

N

Int64

O tamanho em bytes do último ponto de verificação da consulta. Não estará presente se um ponto de verificação nunca tiver sido obtido.

QueryIsResilient

N

Booliano

True se a consulta estiver configurada para resiliência (independentemente do estado do servidor). Caso contrário, False.

[TOP]

Diagnóstico do fluxo publicado

A tabela a seguir lista as métricas retornadas para um fluxo publicado. Consulte Compondo consultas em tempo de execução no Guia do Desenvolvedor para saber mais sobre fluxos publicados. Observe que cada consulta também tem um fluxo publicado implícito - os detalhes desse fluxo publicado serão exibidos como parte do diagnóstico de consulta.

Atributo

Tipo de informação

Tipo de dados

Tipo de .NET Framework

Descrição

PublishedStreamId

S

Number

Int64

A ID do fluxo publicado.

PublishedStreamEventShape

S

String

String

A forma do evento processado pelo fluxo publicado - um de Ponto, Intervalo ou Borda.

PublishedStreamEventType

S

String

String

Uma cadeia de caracteres que contém o tipo de evento representado em XML.

PublishedStreamProducerCount

S

Number

Int32

Contagem de produtores de eventos no fluxo; valor 0 ou 1.

PublishedStreamConsumerCount

S

Number

Int32

Contagem de clientes de eventos do fluxo.

PublishedStreamEventCount

S

Number

Int64

Contagem de eventos no fluxo publicado.

PublishedStreamTotalEventCount

S

Número

Int64

Contagem total de eventos em todos os fluxos publicados.

[TOP]

Diagnóstico do servidor

Servidor

A tabela a seguir lista as métricas no nível do servidor (servidor StreamInsight).

Atributo

Tipo de dados

Tipo de .NET Framework

Descrição

ServerVersion

String

String

Cadeia de caracteres da versão do assembly do servidor.

Gerenciador de eventos

A tabela a seguir lista as métricas no nível do servidor (servidor StreamInsight) que podem ser retornadas para o gerenciador de eventos.

Atributo

Tipo de dados

Tipo de .NET Framework

Descrição

AllEventsCount

Number

Int64

Contagem de eventos ativos (alocados) no servidor do StreamInsight.

AllEventsMemory

Number

Int64

Quantidade de memória usada por todos os eventos ativos no sistema.

Gerenciador de consultas

A tabela a seguir lista as métricas no nível do servidor (servidor StreamInsight) que podem ser retornadas para o gerenciador de plano de consulta.

Atributo

Tipo de dados

Tipo de .NET Framework

Descrição

AllQueriesCount

Number

Int64

Total de consultas em execução, anuladas ou suspensas no servidor do StreamInsight (em execução e concluídas). Uma consulta concluída implica a invocação do método Stopped() pelo adaptador em resposta a uma solicitação de desligamento da consulta, ou a anulação da consulta.

AllQueriesStreamCount

Number

Int64

Total de operadores nas consultas.

AllQueriesOperatorCount

Number

Int64

Total de fluxos nas consultas.

Consultas (no nível do servidor)

As métricas de diagnóstico de consulta no nível do servidor (servidor StreamInsight) são uma união das três tabelas que mostram as métricas agregadas para a consulta, o operador e o fluxo. Além disso, as métricas de latência de consulta também são fornecidas por esta exibição de diagnóstico. Duas das métricas são explicadas aqui para destacar seu significado.

Atributo

Tipo de dados

Tipo de .NET Framework

Descrição

StreamEventCount

Number

Int64

O número total de eventos em todos os fluxos lógicos em todas as consultas.

Essa é a contagem cumulativa de eventos em todos os fluxos. Os fluxos de consultas diferentes podem manter referências a esses eventos. Portanto, se você somar essa contagem em consultas, talvez pareça que a memória do fluxo da contagem total de eventos excedeu a capacidade física do computador que está executando o servidor do StreamInsight.

OperatorIndexEventCount

Number

Int64

Contagem cumulativa de eventos em todos os operadores.

Essa é a contagem cumulativa de eventos em todos os operadores. Os operadores de consultas diferentes podem manter referências a esses eventos. Portanto, se você totalizar essa contagem em consultas, talvez pareça que a memória da contagem total de eventos excedeu a capacidade física do computador no qual o servidor StreamInsight está em execução. Portanto, é importante interpretar esse número como localizado em determinada consulta, e não em várias consultas.

Resiliência do servidor

Atributo

Tipo de

informação

Tipo de .NET Framework

Descrição

ServerLastRecoveryBeginTime

N

DateTime

A hora em que o servidor iniciou seu último processo de recuperação.

ServerLastRecoveryEndTime

N

DateTime

A hora em que o servidor concluiu seu último processo de recuperação.

ServerIsResilient

N

Booliano

True se o servidor estiver configurado para resiliência. Caso contrário, False.

[TOP]

Acessando o diagnóstico com o PowerShell

É possível usar o PowerShell para acessar informações de capacidade de gerenciamento ou gerenciar metadados de uma instância hospedada do StreamInsight em execução. Os seguintes exemplos usam o Powershell 2.0. Na consulta, eles usam o aplicativo de exemplo ObjectModel.cs em execução em um host do StreamInsight.

O exemplo a seguir carrega as DLLs Microsoft.ComplexEventProcessing do GAC (cache de assembly global).

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

Aqui está o conjunto de resultados.

GAC    Version     Location

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

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

O exemplo a seguir retorna os métodos e as propriedades que podem ser acessados na instância do StreamInsight em execução.

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

Aqui está o conjunto de resultados.

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;}

O exemplo a seguir retorna as métricas no nível do servidor (servidor StreamInsight) para o gerenciador de eventos.

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

Aqui está o conjunto de resultados.

Key                           Value

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

AllEventsCount                 19

AllEventsMemory                249856

O exemplo a seguir retorna as métricas de servidor (servidor StreamInsight) para o gerenciador de planos.

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

Aqui está o conjunto de resultados.

Key                    Value

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

AllQueriesCount         14

AllQueriesStreamCount   50

AllQueriesOperatorCount 38

O exemplo a seguir retorna as métricas da consulta TrafficSensorQuery.

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

Aqui está o conjunto de resultados.

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

[TOP]

Consulte também

Conceitos

Operações (StreamInsight)