Supervisar el servidor y las consultas de StreamInsight

La supervisión del estado de un servidor de StreamInsight conlleva el seguimiento del estado general del sistema y el rendimiento de las consultas. El estado de un servidor de StreamInsight se captura supervisando las consultas de StreamInsight que se ejecutan en el servidor, y supervisando cómo usan los recursos del sistema las entidades que forman una consulta de StreamInsight.

En este tema

  • Crear vistas de diagnóstico

  • ¿Qué problemas se pueden solucionar con las vistas de diagnóstico?

  • Estados de consulta

  • Descripción de la supervisión del nivel de consulta

  • Supervisar la latencia de consulta

  • Lista de propiedades de diagnóstico

    • Información de diagnóstico de operador

    • Información de diagnóstico de adaptador

    • Información de diagnóstico de flujo

    • Información de diagnóstico de consulta

    • Información de diagnóstico de flujo publicado

    • Información de diagnóstico de servidor

  • Acceso a información de diagnóstico mediante PowerShell

Crear vistas de diagnóstico

Puede obtener información sobre la supervisión mediante la API de vistas de diagnóstico. Como requisito previo al uso de esta API, el servicio web de administración debe estar habilitado en los modos incrustado e independiente de implementación del servidor y la aplicación cliente debe estar conectada al servidor a través de este servicio web. Para obtener más información, vea Publicar en el servidor de StreamInsight y conectarse a él.

También puede supervisar el servidor y las consultas mediante las características de diagnóstico del Depurador de flujo de eventos de StreamInsight, que utiliza la API de diagnóstico para devolver los resultados en una interfaz gráfica de usuario (GUI). Debe conectar el depurador a un servidor de StreamInsight activo y utilizar el Explorador de objetos para ver los diferentes objetos del servidor. Haga clic con el botón secundario en cualquier objeto para obtener los diagnósticos en tiempo de ejecución de dicha entidad. Para obtener más información, vea Usar el Depurador de flujo de eventos de StreamInsight.

Se tiene acceso a todos los objetos del servidor utilizando Identificadores uniformes de recursos (URI) que se basan en un esquema de nombre jerárquico. Este esquema empieza en el servidor y continúa hacia abajo hasta los operadores de consulta y los flujos de eventos. Puede recuperar el diagnóstico de nivel de servidor desde los siguientes objetos:

  • cep:/Server

  • cep:/Server/PlanManager

  • cep:/Server/EventManager

  • cep:/Server/Query

Para hacer referencia a una consulta concreta, use el esquema de nombre cep:/Server/Application/nombreDeAplicación/Query/nombreDeConsulta.

Para hacer referencia a operadores y flujos concretos que pertenecen a una consulta, utilice los siguientes esquemas de nombre. Observe que los adaptadores también se consideran operadores en una consulta. Utilice la nomenclatura de operador para los adaptadores.

  • cep:/Server/Application/nombreDeAplicación/Query/nombreDeConsulta/Operator/nombreDeOperador

  • cep:/Server/Application/nombreDeAplicación/Query/nombreDeConsulta/Stream/nombreDeFlujo

Por ejemplo, para hacer referencia a una consulta denominada "TrafficSensorQuery" en la aplicación denominada "ObjectModelSample", use cep:/Server/Application/ObjectModelSample/Query/TrafficSensorQuery.

La información de diagnóstico de estos objetos se obtiene mediante la llamada al método GetDiagnosticView(). Puede filtrar la recuperación de valores de diagnóstico en dos dimensiones: el aspecto (memoria, CPU y otros atributos específicos de este valor) y el nivel (de importancia). Puede establecer estas condiciones de filtrado con los métodos SetDiagnosticsSettings() y ClearDiagnosticSettings() para establecer o borrar valores concretos para una consulta concreta. El siguiente ejemplo se toma del ejemplo 'ExplicitServer.cs' y genera el diagnóstico a través de diferentes objetos de una consulta en ejecución. El ejemplo supone que existe una instancia de StreamInsight registrada con el nombre "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 obtener más información acerca de la API usada en el ejemplo anterior, vea DiagnosticView. Para obtener más información acerca del uso de las escuchas de seguimiento, vea Escuchas de seguimiento.

[ARRIBA]

¿Qué problemas se pueden solucionar con las vistas de diagnóstico?

Puede usar las vistas de diagnóstico para solucionar varios tipos de problemas con una aplicación StreamInsight. Por ejemplo:

Causa raíz

Síntomas

La extensión definida por el usuario es lenta

Latencia de sistema alta

Una extensión definida por el usuario ha producido una excepción

Consulta bloqueada o anulada

El adaptador de entrada no proporciona datos rápidamente

Latencia de datos alta

El adaptador de entrada no genera CTI

Consulta bloqueada

El adaptador de entrada no se mantiene constante

Latencia de sistema alta

No obstante, normalmente no se pueden usar vistas de diagnóstico para solucionar los problemas en el nivel del servidor, o de la red local, que puedan afectar a las aplicaciones StreamInsight. Entre los problemas de este tipo se incluye una red lenta, E/S de disco lenta, poca memoria y contención de recursos en el servidor.

[ARRIBA]

Estados de consulta

Una consulta pasa por distintos estados en su duración. Estos estados se describen en la siguiente tabla.

Estado de consulta

Descripción

Detenido

La consulta ya no está activa. No se retiene ningún plan de consulta.

Este estado normalmente se produce después de una llamada al método Stop de la consulta.

Inicializándose

Este estado normalmente se produce después de uno de los siguientes eventos:

  • La consulta se detuvo y el usuario ha llamado a su método Start. La consultar continuará con el estado Running sin la interacción del usuario.

  • Se estaba ejecutando una consulta resistente y el servidor se está recuperando del error. Para cambiar el estado de la consulta, el usuario debe llamar a su método Start.

En ejecución

La consulta está procesando eventos.

Este estado normalmente se produce después de una llamada al método Start de la consulta.

Comprobando punto

La consulta se está ejecutando y hay un punto de comprobación en curso.

Este estado normalmente se produce después de una llamada al método BeginCheckpoint.

Deteniéndose

El usuario ha solicitado que se detenga la consulta.

Este estado normalmente se produce después de una llamada al método Stop de la consulta.

Suspendido

Una consulta resistente no pudo realizar la recuperación o no se pudo recuperar debido a que el se inició sin resistencia.

Completado

La consulta se ha completado normalmente. Es decir, los adaptadores de entrada han puesto en cola los marcadores de fin de flujo y el adaptador de salida los consumió.

Anulado

Se ha producido un error. La consulta sigue estando disponible en el administrador de planes.

[ARRIBA]

Descripción de la supervisión del nivel de consulta

Al supervisar el rendimiento de las consultas en el servidor de StreamInsight, puede usar los atributos de supervisión de nivel de consulta que proporciona la API ManagementService. Utilice la siguiente ilustración de flujo de eventos para entender cómo puede utilizar estos atributos de supervisión.

Supervisar eventos mediante consulta CEP.

Basándose en la ilustración, imagine que hay cuatro puntos de medición que registran el paso de eventos (de izquierda a derecha) desde el adaptador de entrada a través de la consulta hasta el adaptador de salida. En función de estos puntos de la medición, se pueden derivar las siguientes métricas:

  • De entrada. Registra los eventos de entrada de todos los adaptadores de entrada. Es una medida de la tasa de llegada a la consulta de eventos de entrada sin formato desde el adaptador de entrada.

  • Utilizado. Registra los eventos utilizados por el servidor de StreamInsight, es decir, en todos los operadores que siguen inmediatamente a los adaptadores de entrada. Es una medida de los eventos en cola en el servidor.

  • Generado. Registra todos los eventos que salen del último operador que precede inmediatamente al adaptador de salida. Es una medida de los eventos quitados de la cola de la consulta.

  • De salida. Registra todos los eventos que salen del adaptador de salida. Es una medida de la tasa de salida de eventos del servidor de StreamInsight al receptor.

Si usa esta ilustración como guía, puede determinar el atributo adecuado que se debe devolver en función del área del flujo de eventos que le interese. Por ejemplo, si le interesa el número de eventos usados por la consulta, use el atributo QueryTotalConsumedEventCount, y si le interesan los eventos generados por la consulta, use el atributo QueryTotalProducedEventCount.

[ARRIBA]

Supervisar la latencia de consulta

La latencia es un número acumulativo calculado en todas las llegadas y salidas de evento en una puerta determinada (de entrada, generado, usado o de salida). Puede calcular la latencia media entre las mediciones realizadas en dos puntos cualquiera en el tiempo mediante la fórmula (S2 – S1) / (C2 – C1), donde S es la suma acumulativa de latencia en cualquier puerta determinada y C es el recuento de eventos en ese punto de puerta.

Por ejemplo, para calcular el promedio de latencia utilizada, mida la latencia utilizada acumulativa (QueryTotalConsumedEventLatency) en la marca de tiempo t1 (S1) junto con el número total de eventos utilizados (QueryTotalConsumedEventCount) en la marca de tiempo t1 (C1). Después, repita las mismas mediciones en otra marca de tiempo (t2) y, a continuación, calcule el promedio de la latencia de evento utilizado con la fórmula (S2 – S1)/(C2 – C1).

Puede utilizar los atributos que van de QueryTotalIncomingEventCount a QueryLastProducedCtiTimestamp para determinar la eficacia de los adaptadores para transferir eventos hacia o desde de la consulta, y la velocidad con que el servidor de StreamInsight puede procesar los eventos.

Puede determinar la memoria total usada por operadores sumando los valores de los atributos OperatorEventMemory y OperatorIndexMemory.

[ARRIBA]

Propiedades de diagnóstico

Las vistas de diagnóstico devuelven atributos en varios niveles de granularidad de objetos: servidor, consulta, flujos publicados, operador y adaptador.

Los diagnósticos están diseñados de manera que pueden reducir el detalle desde objetos de granularidad más específica a objetos de granularidad más general en la jerarquía. Para cada uno de estos niveles, puede obtener los siguientes tipos de información de diagnóstico:

  • La información estática (S) devuelve la propiedad del objeto. La información estática no cambia con las condiciones variables de una operación de consulta.

  • La información no agregada (N) devuelve estadísticas que no se agregan de los objetos secundarios a sus objetos primarios.

  • La información agregada (A) devuelve estadísticas agregadas de los objetos secundarios a su objeto primario.

Todas las propiedades de vista de diagnóstico indicadas a continuación están disponibles en DiagnosticViewProperty.

Información de diagnóstico de operador

Metadatos

En la siguiente tabla se enumeran las propiedades de metadatos que describen los operadores individuales de una consulta. Los valores de estas propiedades no cambian.

Nombre de propiedad

Tipo

Descripción

OperatorId

Int64

Identificador de un operador.

OperatorKind

String

Tipo de operador.

OperatorQueryId

Int64

Identificador de la consulta en la que se encuentra el operador actual.

OperatorEventType

String

Representación XML del tipo de salida del operador. En el caso de la agrupación y la aplicación, es el tipo del campo de agrupación, no el resultado.

Estadísticas no agregadas

En la siguiente tabla se enumeran las estadísticas que se agregan en todas las instancias lógicas de un operador, pero no están agregadas en las estadísticas de consulta.

Nombre de propiedad

Tipo

Descripción

OperatorTotalInputEventCount

Int64

Número total de eventos de entrada del operador.

OperatorMinInputEventCountAcrossWorkers

Int64

Número mínimo de eventos de entrada procesados entre todos los trabajadores de un operador.

OperatorMaxInputEventCountAcrossWorkers

Int64

Número máximo de eventos de entrada procesados entre todos los trabajadores de un operador.

OperatorTotalOutputEventCount

Int64

Número total de eventos de salida del operador.

OperatorMinOutputEventCountAcrossWorkers

Int64

Número mínimo de eventos de salida generados entre todos los trabajadores de un operador.

OperatorMaxOutputEventCountAcrossWorkers

Int64

Número máximo de eventos de salida generados entre todos los trabajadores de un operador.

OperatorLastOutputCtiTimestamp

DateTime

La marca de tiempo (en tiempo de aplicación) del último evento CTI generado por el operador.

OperatorTotalOutputCtiCount

Int64

Número total de eventos CTI generados por el operador.

OperatorMinOutputCtiCountAcrossWorkers

Int64

Número mínimo de eventos CTI producidos entre todos los trabajadores de un operador.

OperatorMaxOutputCtiCountAcrossWorkers

Int64

Número máximo de eventos CTI producidos entre todos los trabajadores de un operador.

OperatorEventCountSinceLastCti

Int64

Número agregado de eventos producidos por el operador desde el último CTI para todos los trabajadores de un operador.

Para el operador Cleanse, este valor normalmente es 0 (cero).

OperatorMinIndexEventCountAcrossWorkers

Int64

Número mínimo de eventos de los índices entre los trabajadores del operador.

OperatorMaxIndexEventCountAcrossWorkers

Int64

Número máximo de eventos de los índices entre los trabajadores del operador.

OperatorMinEventMemoryAcrossWorkers

Int64

Cantidad mínima de memoria usada (en bytes) por los eventos de los índices entre todos los trabajadores de un operador.

OperatorMaxEventMemoryAcrossWorkers

Int64

Cantidad máxima de memoria usada (en bytes) por los eventos de los índices entre todos los trabajadores de un operador.

OperatorMinIndexMemoryAcrossWorkers

Int64

Cantidad mínima de memoria usada (en bytes) por los índices entre todos los trabajadores de un operador.

OperatorMaxIndexMemoryAcrossWorkers

Int64

Cantidad máxima de memoria usada (en bytes) por los índices entre todos los trabajadores de un operador.

OperatorNumberOfWorkers

Int32

Número de unidades de cálculo que están ejecutando el operador.

OperatorGroupIdField

String

Nombre del campo de identificador de grupo para un operador de agrupación y aplicación.

OperatorMinCpuUsageAcrossWorkers

Int64

Uso de CPU mínimo, en milisegundos, entre los trabajadores del operador.

OperatorMaxCpuUsageAcrossWorkers

Int64

Uso de CPU máximo, en milisegundos, entre los trabajadores del operador.

OperatorMinEventAdjustedCount

Int64

Número mínimo de eventos ajustados entre los trabajadores del operador.

OperatorMaxEventAdjustedCount

Int64

Número máximo de eventos ajustados entre los trabajadores del operador.

OperatorTotalEventAdjustedCount

Int64

Número total de eventos ajustados entre los trabajadores del operador.

OperatorMinEventDroppedCount

Int64

Número mínimo de eventos quitados entre los trabajadores del operador.

OperatorMaxEventDroppedCount

Int64

Número máximo de eventos quitados entre los trabajadores del operador.

OperatorTotalEventDroppedCount

Int64

Número total de eventos quitados entre los trabajadores del operador.

Estadísticas agregadas

En la siguiente tabla se enumeran las estadísticas que se agregan en todas las instancias lógicas de un operador y están agregadas en las estadísticas de consulta.

Nombre de propiedad

Tipo

Descripción

OperatorIndexEventCount

Int64

Memoria usada por los índice entre todas las instancias lógicas activas del operador.

OperatorEventMemory

Int64

Cantidad de memoria usada (en bytes) por los eventos de los índices entre todas las instancias lógicas del operador.

OperatorIndexMemory

Int64

Cantidad de memoria usada (en bytes) por los índices del operador.

OperatorTotalCpuUsage

Int64

Uso total de CPU del operador en milisegundos.

OperatorTotalScheduledCount

Int64

Número total de veces que se programó el operador.

[ARRIBA]

Información de diagnóstico de adaptador

En esta sección se enumeran las propiedades de diagnóstico que son específicas de los adaptadores. Los adaptadores son un tipo especial de operador y, por lo tanto, incluyen todas las propiedades enumeradas para los operadores.

Metadatos

En la siguiente tabla se enumeran las propiedades de metadatos que describen los adaptadores individuales. Nota: el valor de la propiedad AdapterState puede cambiar.

Nombre de propiedad

Tipo

Descripción

AdapterStateTransitionHistory

String

La representación XML de las últimas transiciones de adaptador por cada adaptador.

Estadísticas

En la tabla siguiente se enumeran las estadísticas que son específicas de los adaptadores.

Nombre de propiedad

Tipo

Descripción

AdapterTotalSuspendCount

Int64

Número total de veces que se han suspendido todas las instancias del adaptador.

AdapterMinSuspendCountAcrossWorkers

Int64

Número mínimo de veces que se ha suspendido una instancia del adaptador.

AdapterMinSuspendCountAcrossWorkers

Int64

Número máximo de veces que se ha suspendido una instancia del adaptador.

AdapterTotalTimeInSuspendedState

TimeSpan

El tiempo total que todas las instancias del adaptador estuvieron en estado suspendido.

AdapterMinTimeInSuspendedStateAcrossWorkers

TimeSpan

Tiempo mínimo que una instancia del adaptador estuvo en estado suspendido.

AdapterMaxTimeInSuspendedStateAcrossWorkers

TimeSpan

Tiempo máximo que una instancia del adaptador estuvo en estado suspendido.

AdapterTotalTimeInNonSuspendedState

TimeSpan

Tiempo total que todas las instancias del adaptador estuvieron en un estado no suspendido.

AdapterMinTimeInNonSuspendedStateAcrossWorkers

TimeSpan

Tiempo mínimo que una instancia del adaptador estuvo en un estado no suspendido.

AdapterMaxTimeInNonSuspendedStateAcrossWorkers

TimeSpan

Tiempo máximo que una instancia del adaptador estuvo en un estado no suspendido.

AdapterFirstCtiTimestamp

DateTime

Marca de tiempo del primer evento CTI (en tiempo de aplicación) generado o usado por el adaptador.

AdapterNumberOfRunningWorkers

Int32

Número de instancias del adaptador en el estado En ejecución.

AdapterNumberOfStoppedWorkers

Int32

Número de instancias del adaptador en el estado Detenido.

AdapterNumberOfSuspendedWorkers

Int32

Número de instancias del adaptador en el estado Suspendido.

Resistencia del adaptador

Atributo

Tipo de

información

Tipo de .NET Framework

Descripción

InputAdapterLastCheckpointHighWaterMark

N

DateTime

Límite máximo del tiempo de aplicación usado para el último punto de comprobación de este flujo. Identifica de manera única un punto del flujo de entrada y el flujo debe reproducir todos los eventos posteriores a este punto durante la recuperación.

OutputAdapterLastCheckpointEventOffset

N

Int32

Número de eventos producidos desde el límite máximo del tiempo de aplicación que especifica el lugar del flujo de salida donde se tomó el último punto de comprobación.

OutputAdapterLastCheckpointHighWaterMark

N

DateTime

Límite máximo del tiempo de aplicación del flujo de salida para el último punto de comprobación tomado por la consulta.

[ARRIBA]

Información de diagnóstico de flujo

Metadatos

En la siguiente tabla se enumeran las propiedades de metadatos que describen los flujos individuales de una consulta. Los valores de estas propiedades no cambian.

Nombre de propiedad

Tipo

Descripción

StreamId

Int64

Identificador del flujo.

StreamQueryId

Int64

Identificador de la consulta del flujo.

StreamSourceOperatorId

Int64

Identificador del operador de origen del flujo.

StreamTargetOperatorId

Int64

Identificador del operador de destino del flujo.

StreamSystemInstance

Boolean

Valor booleano que indica si el flujo es un flujo del sistema.

Estadísticas no agregadas

En la siguiente tabla se enumeran las estadísticas que se agregan en todas las instancias lógicas de un flujo, pero no están agregadas en las estadísticas de consulta.

Nombre de propiedad

Tipo

Descripción

StreamTotalInputEventCount

Int64

Número total de eventos de entrada del flujo.

StreamMinEventCountAcrossWorkers

Int64

Número mínimo de eventos en todas las instancias del flujo.

StreamMaxEventCountAcrossWorkers

Int64

Número máximo de eventos en todas las instancias del flujo.

StreamNumberOfWorkers

Int32

Número de instancias de este flujo.

StreamMinInputEventCountAcrossWorkers

Int64

Número mínimo de eventos de entrada en las instancias del flujo.

StreamMaxInputEventCountAcrossWorkers

Int64

Número máximo de eventos de entrada en las instancias del flujo.

StreamMinMemoryIncludingEventsAcrossWorkers

Int64

Cantidad mínima de memoria usada (en bytes) en las instancias del flujo.

StreamMaxMemoryIncludingEventsAcrossWorkers

Int64

Cantidad máxima de memoria usada (en bytes) en las instancias del flujo.

Estadísticas agregadas

En la siguiente tabla se enumeran las estadísticas que se agregan en todas las instancias lógicas de un flujo y están agregadas en las estadísticas de consulta.

Nombre de propiedad

Tipo

Descripción

StreamEventCount

Int64

Número total de eventos de entrada en todas las instancias del flujo.

StreamMemoryIncludingEvents

Int64

Cantidad de memoria usada (en bytes) por el flujo y todos sus eventos.

[ARRIBA]

Información de diagnóstico de consulta

Las consultas contienen las estadísticas agregadas de sus operadores y flujos constituyentes, junto con sus propias estadísticas. En las secciones siguientes se detallan las estadísticas específicas de las consultas.

Cuando una consulta no se está ejecutando, la información de diagnóstico solo devuelve QueryState (tanto Suspendido como Detenido) y las propiedades IsResilient (true o false).

Metadatos

En la siguiente tabla se enumeran las propiedades de metadatos que describen las consultas individuales. Los valores de estas propiedades no cambian.

Nombre de propiedad

Tipo

Descripción

QueryState

String

Estado actual de la consulta.

QueryStartTime

DateTime

Hora de inicio de la consulta.

QueryEndTime

DateTime

Hora de finalización de la consulta.

QueryException

String

Última excepción que se produjo en la consulta.

QueryCreationTime

DateTime

Hora en que se creó la instancia de consulta.

QueryId

Int64

Identificador de la consulta.

QuerySystemInstance

Boolean

Valor booleano que indica si la consulta es una consulta del sistema.

QueryInstanceGroupId

Int64

Identificador de grupo de instancia de la consulta.

Estadísticas

En la tabla siguiente se enumeran las estadísticas específicas de la consulta.

Nombre de propiedad

Tipo

Descripción

QueryTotalIncomingEventCount

Int64

Número total de eventos de entrada para la consulta.

QueryTotalConsumedEventCount

Int64

Número total de eventos usados por la consulta.

QueryTotalProducedEventCount

Int64

Número total de eventos producidos por la consulta.

QueryTotalOutgoingEventCount

Int64

Número total de eventos de salida para la consulta.

QueryLastIncomingEventTimestamp

DateTime

Hora del sistema del último evento de entrada de la consulta.

QueryLastConsumedEventTimestamp

DateTime

Hora del sistema del último evento usado para la consulta.

QueryLastProducedEventTimestamp

DateTime

Hora del sistema del último evento producido de la consulta.

QueryLastOutgoingEventTimestamp

DateTime

Hora del sistema del último evento de salida de la consulta.

QueryTotalConsumedEventLatency

Double

Latencia total (en milisegundos) de todos los eventos que se usan en la consulta.

QueryTotalProducedEventLatency

Double

Latencia total (en milisegundos) de todos los eventos que se crean en la consulta.

QueryTotalOutgoingEventLatency

Double

Latencia total (en milisegundos) de todos los eventos de salida de la consulta.

QueryLastProducedCtiTimestamp

DateTime

Marca de tiempo (en tiempo de aplicación) del último evento CTI generado por la consulta.

Resistencia de consulta

Atributo

Tipo de

información

Tipo de .NET Framework

Descripción

QueryLastCheckpointBeginTime

N

DateTime

Hora a la que empezó el último punto de comprobación de la consulta. No estará presente si nunca se ha tomado un punto de comprobación, o si la consulta se ha detenido o anulado.

QueryLastCheckpointEndTime

N

DateTime

Hora a la que se completó el último punto de comprobación de la consulta. No estará presente si nunca se ha tomado un punto de comprobación, o si la consulta se ha detenido o anulado.

QueryLastCheckpointSize

N

Int64

Tamaño en bytes del último punto de comprobación de la consulta. No estará presente si nunca se ha tomado un punto de comprobación.

QueryIsResilient

N

Boolean

Es True si la consulta está configurada para resistencia (independientemente del estado del servidor). De lo contrario, es False.

[ARRIBA]

Información de diagnóstico de flujo publicado

En la siguiente tabla se enumeran las métricas que se devuelven para un flujo publicado. Vea Crear consultas en tiempo de ejecución en la Guía del desarrollador para obtener más información sobre los flujos publicados. Tenga en cuenta que cada consulta también tiene un flujo publicado implícito. Los detalles de este flujo publicado se mostrarán como parte del diagnóstico de consulta.

Atributo

Tipo de información.

Tipo de datos

Tipo de .NET Framework

Descripción

PublishedStreamId

S

Number

Int64

Identificador del flujo publicado.

PublishedStreamEventShape

S

String

String

Forma del evento procesada por el flujo publicado: punto, intervalo o perímetro.

PublishedStreamEventType

S

String

String

Cadena que contiene el tipo de evento representado en XML.

PublishedStreamProducerCount

S

Number

Int32

Recuento de productores de eventos en el flujo; valor de 0 o 1.

PublishedStreamConsumerCount

S

Number

Int32

Recuento de consumidores de eventos del flujo.

PublishedStreamEventCount

S

Number

Int64

Recuento de eventos del flujo publicado.

PublishedStreamTotalEventCount

S

Number

Int64

Recuento total de eventos de todos los flujos publicados.

[ARRIBA]

Información de diagnóstico de servidor

Servidor

En la tabla siguiente se enumeran las métricas de todo el servidor (servidor StreamInsight).

Atributo

Tipo de datos

Tipo de .NET Framework

Descripción

ServerVersion

String

String

Cadena de versión del ensamblado del servidor.

Administrador de eventos

En la siguiente tabla se enumeran las métricas de todo el servidor (servidor de StreamInsight) que se pueden devolver para el administrador de eventos.

Atributo

Tipo de datos

Tipo de .NET Framework

Descripción

AllEventsCount

Number

Int64

Recuento de eventos que están activos (asignados) en el servidor de StreamInsight.

AllEventsMemory

Number

Int64

Cantidad de la memoria usada por todos los eventos que están activos en el sistema.

Administrador de consultas

En la siguiente tabla se enumeran las métricas de todo el servidor (servidor de StreamInsight) que se pueden devolver para el administrador de planes de consulta.

Atributo

Tipo de datos

Tipo de .NET Framework

Descripción

AllQueriesCount

Number

Int64

Total de consultas en ejecución, anuladas o suspendidas en todo el servidor de StreamInsight (en ejecución y acabadas). Una consulta acabada implica que el adaptador ha invocado el método Stopped() como respuesta a una solicitud de detención de consulta, o que la consulta se ha anulado.

AllQueriesStreamCount

Number

Int64

Operadores totales en las consultas.

AllQueriesOperatorCount

Number

Int64

Flujos totales en las consultas.

Consultas (en todo el servidor)

Las métricas de diagnóstico de consulta en todo el servidor (servidor de StreamInsight) son la unión de las tres tablas que muestran las métricas agregadas para la consulta, el operador y el flujo. Además, esta vista de diagnóstico también proporciona métricas de latencia de toda la consulta. Aquí se explican dos de las métricas para destacar su importancia.

Atributo

Tipo de datos

Tipo de .NET Framework

Descripción

StreamEventCount

Number

Int64

Número total de eventos en todos los flujos lógicos de todas las consultas.

Es el recuento acumulativo de eventos de todos los flujos. Los flujos de las distintas consultas pueden mantener referencias a estos eventos; por tanto, si suma este recuento de todas las consultas, puede parecer que la memoria de flujo para el recuento total de eventos supera la capacidad física del equipo donde se ejecuta el servidor de StreamInsight.

OperatorIndexEventCount

Number

Int64

Recuento de eventos acumulativo de todos los operadores.

Es el recuento acumulativo de eventos de todas los operadores. Los operadores de distintas consultas pueden mantener referencias a estos eventos. Por consiguiente, si suma este recuento en todas las consultas, podría parecer que la memoria para el recuento total de eventos supera la capacidad física del equipo en el que se está ejecutando el servidor de StreamInsight. Por ello, es importante entender este número como correspondiente a una consulta determinada y no a todas las consultas.

Resistencia del servidor

Atributo

Tipo de

información

Tipo de .NET Framework

Descripción

ServerLastRecoveryBeginTime

N

DateTime

Hora a la que el servidor comenzó su último proceso de recuperación.

ServerLastRecoveryEndTime

N

DateTime

Hora a la que el servidor completó su último proceso de recuperación.

ServerIsResilient

N

Boolean

True si el servidor está configurado para resistencia. De lo contrario, es False.

[ARRIBA]

Acceso a información de diagnóstico mediante PowerShell

Puede usar PowerShell para tener acceso a información de capacidad de administración o administrar los metadatos para una instancia hospedada y en funcionamiento de StreamInsight. En los siguientes ejemplos se usa Powershell 2.0. Para realizar consultas, se usa la aplicación de ejemplo ObjectModel.cs que se ejecuta en un host de StreamInsight.

En el siguiente ejemplo se cargan las DLL de Microsoft.ComplexEventProcessing desde la caché de ensamblados global (GAC).

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

El conjunto de resultados es el siguiente.

GAC    Version     Location

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

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

En el siguiente ejemplo se devuelven los métodos y propiedades a los que se puede tener acceso en la instancia de StreamInsight que se está ejecutando.

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

El conjunto de resultados es el siguiente.

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

En el siguiente ejemplo se devuelven las métricas para el administrador de eventos en todo el servidor (servidor de StreamInsight).

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

El conjunto de resultados es el siguiente.

Key                           Value

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

AllEventsCount                 19

AllEventsMemory                249856

En el siguiente ejemplo se devuelven las métricas para el administrador de planes en todo el servidor (servidor de StreamInsight).

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

El conjunto de resultados es el siguiente.

Key                    Value

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

AllQueriesCount         14

AllQueriesStreamCount   50

AllQueriesOperatorCount 38

En el siguiente ejemplo se devuelven las métricas de consulta para la consulta TrafficSensorQuery.

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

El conjunto de resultados es el siguiente.

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

[ARRIBA]

Vea también

Conceptos

Operaciones (StreamInsight)