Contrôle des événements et des compteurs de performance StreamInsight

Désormais, vous pouvez utiliser l'infrastructure de diagnostic existante pour contrôler et dépanner les processus et les requêtes StreamInsight grâce à l'Analyseur de performances et à l'Observateur d'événements.

Dans cette rubrique

  • Compteurs de performance

    • Configuration des compteurs de performance

    • Liste des compteurs de performance

    • Utilité des compteurs de performance

  • Événements administratifs

    • Configuration de la journalisation administrative

    • Liste des événements administratifs

Compteurs de performance

StreamInsight installe et configure des compteurs de performance. Les compteurs de performance peuvent être surveillés à l'aide de l'Analyseur de performances ou d'un autre outil de contrôle.

Les compteurs de performance sont disponibles pour les objets StreamInsight suivants :

  • Serveurs

  • Requêtes

  • Adaptateurs d'entrée

  • Résistance

Configuration des compteurs de performance

Les compteurs de performance sont installés et configurés lors de l'installation de StreamInsight. Cette option d'installation n'est pas configurable.

Les compteurs de la catégorie Serveur sont activés par défaut et ne peuvent pas être désactivés. Les compteurs des catégories Requêtes et Adaptateurs d'entrée sont désactivés par défaut. Lorsque vous activez des compteurs pour une requête, les compteurs des adaptateurs d'entrée qui y sont associés sont également activés. Pour restaurer les comportements par défaut, il suffit de redémarrer une instance de StreamInsight.

Activation des compteurs pour une seule requête

Pour activer des compteurs pour une requête spécifique et les adaptateurs d'entrée qui lui sont associés, il suffit d'activer un nouvel Aspect dans un appel à Server.SetDiagnosticSettings.

Par exemple, vous pouvez utiliser le code suivant pour activer les compteurs de performance de la requête associée à cette URI : cep:/Server/Application/MyApp/Query/MyQuery.

DiagnosticSettings settings = server.GetDiagnosticSettings(new Uri(“cep:/Server/Application/MyApp/Query/MyQuery”);
Settings.Aspects |= DiagnosticAspect.PerformanceCounters;
server.SetDiagnosticSettings(new Uri(“cep:/Server/Application/MyApp/Query/MyQuery”), settings);

Pour désactiver les compteurs de performance de cette même requête, utilisez le code ci-dessous :

DiagnosticSettings settings = server.GetDiagnosticSettings(new Uri(“cep:/Server/Application/MyApp/Query/MyQuery”);
Settings.Aspects & ~DiagnosticAspect.PerformanceCounters;
server.SetDiagnosticSettings(new Uri(“cep:/Server/Application/MyApp/Query/MyQuery”), settings);

Activation des compteurs pour toutes les requêtes

Vous pouvez également utiliser une boucle foreach pour activer des compteurs de performance pour toutes les requêtes et tous les adaptateurs d'entrée d'une application.

foreach (var q in application.Queries)
   {
       DiagnosticSettings settings = server.GetDiagnosticSettings(q.Value.Name);
       settings.Aspects |= DiagnosticAspect.PerformanceCounters;
       server.SetDiagnosticSettings(q.Value.Name, settings);
   }

Pour plus d'informations sur les classes et les méthodes utilisées dans les exemples de codes précédents, consultez les rubriques suivantes :

[HAUT]

Liste des compteurs de performance

Conventions d'affectation des noms

Les chaînes comprenant plus de 16 caractères, comme les noms d'application, sont raccourcies selon la formule suivante : first 10 characters + 2 periods + last 4 characters.

Dans les conventions d'affectation des noms décrites ci-dessous, uniqueid désigne l'ID de l'objet au moment de l'exécution.

Compteurs de serveurs

Conventions d'affectation des noms pour les instances de serveur : %PROCESSNAME%[uniqueid], où %PROCESSNAME% désigne le nom du processus d'hébergement.

Nom

Description

Événements en file d'attente d'entrée

Nombre d'événements en file d'attente d'entrée dans toutes les requêtes.

Événements en file d'attente de sortie

Nombre d'événements en file d'attente de sortie dans toutes les requêtes.

Mémoire

Mémoire totale (en octets) utilisée pour tous les flux de données, les événements et les index de l'opérateur.

Requêtes en cours d'exécution

Nombre de requêtes actives.

Compteurs de requêtes

Conventions d'affectation des noms pour les instances de requêtes : %APPLICATION NAME%,%QUERY NAME%[uniqueid],%SERVER_INSTANCE_NAME%, où %SERVER_INSTANCE_NAME% désigne le nom de l'instance du serveur d'appartenance de la requête.

Nom

Description

Latence moyenne d'événements produits

Latence moyenne (en millisecondes) des événements produits chaque seconde par la requête.

CTI produits

Nombre de CTI produits.

Événements en file d'attente de sortie

Nombre d'événements dans la file d'attente de sortie.

Événements produits

Nombre d'événements produits.

Mémoire

Mémoire totale (en octets) utilisée, notamment pour les événements, les index et les flux de données.

Événements produits/sec

Nombre d'événements produits chaque seconde.

Compteurs d'adaptateurs d'entrée

Conventions d'affectation des noms pour les instances d'adaptateurs : %APPLICATION NAME%,%QUERY NAME%,%ADAPTER NAME%[uniqueid],%SERVER_INSTANCE_NAME%.

Nom

Description

Événements ajustés

Nombres d'événements dont les métadonnées temporelles ont été ajustées conformément à la stratégie AdvanceTimeSettings.

Entrées CTI

Nombre de CTI envoyés en file d'attente d'entrée.

Événements abandonnés

Nombre d'événements abandonnés conformément à la stratégie AdvanceTimeSettings.

Événements en file d'attente d'entrée

Nombre d'événements en file d'attente d'entrée (y compris les CTI).

Événements entrants/sec

Nombre d'événements reçus chaque seconde par l'adaptateur.

Reprises/sec

Nombre de fois où l'état est passé à En cours d'exécution par seconde.

Pauses/sec

Nombre de fois où l'état est passé à Suspendu par seconde.

Total des événements en attente

Nombre d'événements mis en file d'attente.

[HAUT]

Utilité des compteurs de performance

Voici quelques cas illustrant comment les compteurs de performance peuvent vous aider à comprendre, à contrôler et à surveiller vos applications StreamInsight :

  • Serveurs

    • Encombrement mémoire. Combien de mémoire consomme l'instance incorporée de StreamInsight, indépendamment de l'application d'hébergement ?

    • Planification des capacités. Combien de requêtes peuvent-être exécutées sur ce serveur sans affecter les performances ?

    • Analyse post-mortem. Combien de requêtes étaient en cours d'exécution quand le serveur est tombé en panne ?

  • Requêtes

    • Contrôle du débit. Où se situe le goulot d'étranglement ?

    • Contrôle des latences.

[HAUT]

Événements administratifs

StreamInsight journalise les événements dans le journal des événements de l'application Windows. Ce journal peut être analysé à l'aide de l'Observateur d'événements ou d'un autre outil de contrôle. Les événements consignés dans le journal vous aide à contrôler les modifications d'états et à corriger les anomalies des applications StreamInsight.

Les événements sont consignés par les objets StreamInsight suivants :

  • Serveur

  • Requête

Configuration de la journalisation administrative

La journalisation administrative est activée par défaut. Vous pouvez l'activer et la désactiver uniquement au niveau de l'instance StreamInsight (cep:/Server/).

Désactivation de la journalisation administrative

DiagnosticSettings settings = server.GetDiagnosticSettings(new Uri("cep:/Server/"));
settings.Aspects &= ~DiagnosticAspect.AdminLog;
server.SetDiagnosticSettings(new Uri("cep:/Server/"), settings);

Activation de la journalisation administrative

DiagnosticSettings settings = server.GetDiagnosticSettings(new Uri("cep:/Server/"));
settings.Aspects |= DiagnosticAspect.AdminLog;
server.SetDiagnosticSettings(new Uri("cep:/Server/"), settings);

[HAUT]

Liste des événements administratifs

Le tableau suivant répertorie les événements qui peuvent apparaître dans le journal des événements.

La Source de tous les événements administratifs StreamInsight est StreamInsight.

Événements de requête

Symbole

ID d'événement

Niveau

Message

Paramètres

QueryInitializing

11001

Information

Initialisation de la requête {0} en cours.

URI de la requête

QueryRunning

11002

Information

Requête {0} en cours d'exécution.

URI de la requête

QueryCheckpointing

11003

Information

Points de contrôle de la requête {0} en cours de réalisation.

URI de la requête

QueryStopping

11004

Information

Arrêt de la requête {0} en cours.

URI de la requête

QuerySuspended

11005

Information

La requête {0} est suspendue.

URI de la requête

QueryCompleted

11006

Information

La requête {0} est terminée.

URI de la requête

QueryAborted

11007

Avertissement

La requête {0} a été annulée.

URI de la requête

QueryStopped

11008

Information

La requête {0} a été arrêtée.

URI de la requête

QueryError

11500

Avertissement

La requête {0} a rencontré une exception. Détails de l'exception : {1}

URI de la requête, message d'exception.

QueryRecoveryError

11501

Erreur

La requête {0} a rencontré une exception lors de la récupération. Détails de l'exception : {1}

URI de la requête, message d'exception.

QueryCheckpointError

11502

Erreur

La requête {0} a rencontré une exception lors de la réalisation des points de contrôle. Détails de l'exception : {1}

URI de la requête, message d'exception.

Événements de serveur

Symbole

ID d'événement

Niveau

Message

Paramètres

ServerCreated

1000

Information

Création du serveur.

ServerDisposed

1001

Information

Suppression du serveur.

[HAUT]