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]