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:
|
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.
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]