Utilisation du débogueur de flux d'événements StreamInsight

Les systèmes opérationnels des secteurs tels que la fabrication et la commande de processus, les utilités, la finance, le Web et la surveillance TI génèrent des flux d'événements ayant des inter-relations complexes et nécessitant des temps d'attente réduits. Considérant le temps requis pour le traitement de tels flux d'événements, la difficulté majeure de ces systèmes est de déterminer la validité des résultats selon les différents comportements dynamiques des flux de données et de dépanner la requête en cas d'échec.

Cela requiert des outils d'analyse des requêtes capables de :

  • Gérer de grandes quantités de données et réduire l'espace de recherche des problèmes.

  • Répondre à des critères de cohérence rigoureux.

  • Être suffisamment intuitifs pour arriver rapidement à un diagnostic ou à une solution.

Microsoft StreamInsight fournit un débogueur de flux d'événements autonome avec interface utilisateur graphique (GUI). Le débogueur de flux d'événements StreamInsight permet aux développeurs ou aux administrateurs d'une application de traitement des événements complexes (CEP), d'inspecter, de déboguer et d'analyser les flux d'événements via une requête StreamInsight. Cette rubrique décrit les fonctionnalités du débogueur de flux d'événements et explique les procédures à suivre pour commencer à utiliser rapidement cet outil de débogage et d'analyse.

Fonctionnement du débogage de flux d'événements

Avant d'aborder le fonctionnement du débogueur de flux d'événements StreamInsight, il est important de souligner les différences fondamentales entre un débogueur de flux de contrôle (par exemple, un débogueur C# ou C++) et un débogueur de flux d'événements.

Pour déboguer un flux de contrôle, le développeur « génère » un programme écrit dans un langage spécifique en mode débogage, active des points d'arrêt au niveau d'instructions ou de raccordements spécifiques dans le flux de contrôle du programme, « exécute » le programme jusqu'à ces points d'arrêt spécifiques, analyse le code et l'état du système, utilise des fonctions et des procédures pas à pas détaillées ou principales, surveille des variables, et ainsi de suite jusqu'à la fin de l'exécution. L'analyse temporelle des variables de « données » (c'est-à-dire l'analyse de la transformation de ces variables au fil du temps) est limitée ou inexistante.

En revanche, le débogage du flux d'événements implique l'analyse d'un événement au fil du temps, lorsqu'il passe d'une étape de la requête CEP à l'étape suivante, et, au sein d'une étape de requête, d'un opérateur au suivant. Ici, le débogage implique l'analyse des effets d'un événement sur un flux de données lorsqu'il provient d'un opérateur donné et de la façon dont les nouveaux événements sont générés suite aux calculs effectués sur les événements entrés dans un opérateur. Pour déboguer un flux d'événements, l'accent est porté sur la façon dont la sémantique de l'opérateur (filtre, projet, jointure, agrégat, multidiffusion et ainsi de suite) affecte l'événement, plutôt que sur l'exécution (flux de contrôle) des opérateurs eux-mêmes. Par conséquent, le débogueur vous aide à comprendre l'impact qu'un événement donné a sur d'autres événements, et l'impact d'autres événements sur l'événement qui est analysé.

Débogage et surveillance des modes

Le débogueur de flux d'événements est un outil de débogage autonome qui repose sur le suivi d'événements. Le débogueur a deux objectifs :

  • Déboguer une trace de flux d'événements. La session de débogage peut être basée sur :

    • une trace générée à partir d'un enregistrement opérationnel d'une requête opérationnelle spécifique, le débogueur étant connecté à un serveur de production ;

    • un fichier de trace généré hors du débogueur à l'aide d'un utilitaire de ligne de commande, le fichier étant chargé ultérieurement dans le débogueur.

  • Supervision du serveur. Dans ce mode, le débogueur fournit un explorateur d'objets qui répertorie les objets système et les objets d'application. Vous pouvez obtenir des diagnostics opérationnels pour chacune de ces entités. L'explorateur d'objets est également l'interface via laquelle vous activez et désactivez des requêtes de traçage, et qui vous permet, au niveau opérationnel, de démarrer et d'arrêter l'exécution d'une requête.

Pour utiliser le débogueur de flux d'événements, l'utilisateur doit faire partie du groupe des utilisateurs du journal des performances de Windows. Cela permet à l'utilisateur de collecter des traces à l'extérieur du débogueur à l'aide de trace.cmd ou d'enregistrer des événements à partir d'une requête pendant l'utilisation du débogueur. Consultez la section relative à la gestion et aux opérations de Windows pour plus d'informations sur la procédure à suivre.

Si vous avez installé StreamInsight, nous vous recommandons de lancer le débogueur et de lire la page Démarrage pour découvrir les fonctions de base de l'outil. Pour démarrer le débogueur, cliquez sur le bouton Démarrer, pointez sur Tous les programmes, cliquez sur Microsoft StreamInsight 1.1, puis sur Débogueur de flux d'événements StreamInsight.

Débogage d'une requête StreamInsight

Vous pouvez connecter le débogueur au serveur StreamInsight comme une application cliente locale ou distante et enregistrer et relire la trace de flux d'événements d'une ou plusieurs requêtes. Vous pouvez également utiliser le débogueur comme une application cliente autonome détachée du serveur et analyser les requêtes en fonction des suivis d'événements collectés hors connexion. Cela vous donne la flexibilité de déboguer une requête spécifique pendant qu'elle est opérationnelle, ou de la tester à postériori selon les traces historiques de ses exécutions.

Enregistrement d'événements de requêtes en cours d'exécution

Pour enregistrer les événements d'une requête en cours d'exécution, vous devez connecter le débogueur de flux d'événements à un serveur StreamInsight de production. La procédure suivante décrit comment se connecter à un serveur de production, ouvrir une requête en cours d'exécution et permettre le traçage de la requête.

  1. Comme condition préalable, vous (ou l'administrateur du serveur) devez activer le service Web de serveur. Pour plus d'informations sur l'activation du service Web, consultez Publication et connexion au serveur StreamInsight.

  2. Assurez-vous que l'utilisateur client dispose des autorisations nécessaires pour se connecter au serveur en devenant membre du groupe d'utilisateurs StreamInsight respectif. Pour plus d'informations, consultez la section « Groupe d'utilisateurs de StreamInsight » dans Installation (StreamInsight).

  3. Dans le débogueur, cliquez sur Fichier, puis sur Se connecter au serveur. Entrez l'adresse du point de terminaison du serveur. Le point de terminaison par défaut d'un serveur StreamInsight installé est https://localhost/StreamInsight/<instance_name>.

    Si les connexions du serveur ont été configurées correctement, le débogueur affiche un explorateur d'objets dans le volet gauche.

  4. Dans l'explorateur d'objets, cliquez sur la hiérarchie des objets jusqu'à ce que vous voyiez la requête à déboguer. Double-cliquez sur l'objet de requête. Le graphique de la requête s'ouvre comme indiqué dans l'illustration suivante. L'illustration montre que la requête « TrafficSensorQuery » utilisée dans l'exemple est en cours d'exécution.

    Graphique de requête dans le débogueur de flux d'événements

    Illustration 1 - Consultation d'une requête dans le graphique de la requête.

  5. Pour activer la requête de traçage, cliquez avec le bouton droit sur la requête et en sélectionnant Activer le traçage. Vous pouvez également activer le traçage par programme à l'aide d'une API. Pour plus d'informations, consultez Contrôle du serveur et des requêtes StreamInsight.

  6. Pour enregistrer les événements qui sont traités dans la requête, cliquez sur le bouton Démarrer l'enregistrement. Le processus d'enregistrement démarre comme le montre l'illustration suivante. Après avoir enregistré les événements pendant quelques minutes, cliquez sur Arrêter.

    Enregistrement des événements transitant par une requête.

    Illustration 2 - Enregistrement des événements dans une requête en cours d'exécution.

Le débogueur passe à l'état indiqué dans Illustration 1. À ce stade, vous pouvez utiliser l'outil d'analyse des requêtes fourni dans le débogueur. Les fonctionnalités d'analyse sont décrites dans la section suivante.

Chargement du fichier de trace du flux d'événements (EFT) ou du fichier de suivi d'événements (ETL) pour Windows

StreamInsight prend en charge les déploiements de serveur autonome et incorporé à la fois. Si l'application incorpore le serveur et n'active pas le service Web, une application cliente telle que le débogueur ne peut pas se connecter au serveur. Vous avez besoin d'un mécanisme pour déboguer et diagnostiquer les problèmes des requêtes en cours d'exécution dans de telles situations.

Pour collecter les journaux de suivi d'événements pour un serveur StreamInsight en cours d'exécution, vous pouvez utiliser l'utilitaire trace.cmd inclus dans l'installation de StreamInsight. La procédure suivante décrit comment créer un fichier de trace et charger le fichier dans le débogueur de flux d'événements.

  1. Avec le serveur et la ou les requêtes pertinentes en cours d'exécution, à l'invite de commandes Windows, tapez l'instruction suivante. Il est important d'utiliser l'extension de fichier « .etl » lorsque vous donnez un nom au fichier de trace.

trace.cmd start <filename>.etl

  1. Lorsque vous avez autorisé l'exécution de la requête pour une durée suffisante, arrêtez la trace à l'aide de l'instruction :

trace.cmd stop <filename>.etl

  1. Pour charger le fichier des résultats dans le débogueur, cliquez sur Fichier, puis sur Ouvrir. Dans la boîte de dialogue Ouvrir, accédez à l'emplacement de <filename>.etl et cliquez sur Ouvrir. Le graphique de la requête s'affiche comme indiqué dans l'illustration suivante.

    Chargement d'un fichier de traçage de requête dans le débogueur.

    Illustration 3 - Consultation d'une requête chargée depuis un fichier de trace.

Comparé aux objets affichés dans Illustration 1, cette illustration affiche moins d'entités dans l'explorateur d'objets. C'est parce que le débogueur n'est pas connecté au serveur. Notamment, les objets de diagnostic au niveau du serveur tels que les planificateurs ne peuvent pas être affichés lorsque le débogueur n'est pas connecté au serveur.

Remarquez que l'illustration affiche un indicateur de progression dans la barre d'état pour indiquer la progression du chargement du fichier ETL. Dans le cadre du chargement, le débogueur traduit un fichier ETL dans un format EFT exclusif et compressé.

Rappelez-vous que l'utilitaire trace.cmd est un script basé sur la commande Windows Logman. Logman fait appel à son tour à l'infrastructure de suivi d'événements pour Windows (ETW) en vue de procéder à la collecte d'événements. Pendant le processus de chargement du journal des traces, le débogueur peut vous signaler la perte de quelques événements liée à des paramètres de session et de mémoire tampon ETW incorrects. Pour résoudre le problème, modifiez la commande Logman dans le fichier trace.cmd et augmentez la taille de la mémoire tampon spécifiée dans l'option -bs (par exemple, -bs 3000) ou augmentez le nombre de mémoires tampon spécifié dans l'option -nb. Pour plus d'informations et pour obtenir des exemples, consultez la documentation Logman.

Analyse des requêtes à l'aide du débogueur de flux d'événements

Le débogueur de flux d'événements fournit les fonctionnalités clés suivantes pour l'analyse des requêtes.

  • Capacité de consulter le plan de requête, les opérateurs de requête et les flux d'événements d'une requête donnée. Cela permet d'analyser votre requête LINQ (Language Integrated Query) au niveau de son flux d'événements sous-jacent et des nœuds de traitement dans le flux d'événements.

  • Capacité d'inspecter tous les événements au niveau de l'entrée et des sorties de flux d'événements complexes et les résultats intermédiaires à chaque étape du calcul. Cela inclut les métadonnées d'événement au niveau des horodateurs de début et de fin, et les champs de charge utile.

  • Capacité de consulter des flux d'événements complexes partitionnés pour la montée en puissance parallèle. Le débogueur peut afficher la façon dont les événements sont partitionnés par l'opération de regroupement de l'opérateur de groupe et d'application, et la façon dont les événements sont transformés dans l'opérateur d'application.

  • Capacité d'effectuer un jeu d'analyses globales qui réduisent l'espace de recherche du problème ou mettent en corrélation des événements à travers plusieurs étapes du flux d'événements.

  • Capacité de parcourir la trace d'une exécution de requête dans la durée et comprendre comment les événements se propagent via une requête en continu.

  • Capacité d'analyser des événements et comprendre comment ils atteignent un état donné ; autrement dit, comment d'autres événements ou opérateurs ont affecté les heures et les charges utiles de l'événement.

  • Capacité d'analyser l'impact qu'un événement donné a sur les événements qui sont en aval de l'opérateur actuel. Fondamentalement, anticiper le traitement futur d'un événement jusqu'à ce qu'il affecte enfin la sortie.

Pour implémenter ces fonctionnalités, le débogueur fournit trois fonctions d'analyse :

  • Relire - À l'aide de cette fonctionnalité, vous pouvez parcourir le flux et observer un événement à la fois pour analyser sa progression d'un opérateur au suivant. Vous pouvez également définir des points d'arrêt au niveau d'opérateurs spécifiques dans le graphique de requête et « exécuter » le débogueur (autrement dit, activer le flux d'événements) jusqu'à cet opérateur, ou jusqu'à ce qu'une condition spécifique soit rencontrée dans cet opérateur.

  • Analyse de la cause première - À l'aide de cette fonctionnalité, vous pouvez remonter à la « cause première » ou à la séquence d'opérations ou de modifications qui a provoqué la condition actuelle de l'événement.

  • Analyse de propagation d'événement – À l'aide de cette fonctionnalité, vous pouvez analyser les effets d'un événement plus loin dans le flux de données, notamment les modifications que cet événement particulier traverse, ou la façon dont il affecte d'autres événements ou provoque la génération de nouveaux événements. Cette fonctionnalité procède inversement de l'analyse de la cause première.

Utilisation de la fonctionnalité Relire

Une fois que les événements ont été chargés dans le débogueur via un enregistrement en cours d'exécution ou le chargement d'un fichier de journal des traces, l'étape suivante consiste à découvrir ces événements. Pour cela, relisez les événements en cliquant sur l'icône Horloge. Un lecteur d'événement s'affiche. Vous pouvez parcourir les événements en cliquant sur l'icône Avancer. Vous pouvez également définir un point d'arrêt au niveau de chacun des opérateurs en cliquant sur la case d'option à gauche de l'opérateur, puis en sélectionnant Aller au point d'arrêt suivant dans le lecteur d'événement.

Dans l'illustration suivante, un point d'arrêt a été installé dans l'opérateur d'agrégation, dans la branche d'application et le flux d'événements a été activé. La ligne surlignée en vert dans l'opérateur d'agrégation affiche la progression du flux d'événements jusqu'à ce point.

Événements affichés dans la fonctionnalité Relire

Illustration 4 - Définition d'un point d'arrêt dans l'opérateur d'agrégation.

Maintenant que des événements passent par la requête, vous pouvez développer chaque opérateur en cliquant sur les icônes triangulaires à droite de chaque opérateur. Vous pouvez continuer à parcourir les événements et consulter leur progression.

Utilisation de l'analyse de la cause première

À l'aide de l'analyse de la cause première, vous pouvez analyser la façon dont l'événement est arrivé à son état actuel. Depuis la grille d'événement d'un opérateur, vous pouvez démarrer l'analyse de la cause première en cliquant avec le bouton droit sur l'événement concerné et en sélectionnant Analyse de la cause première.

Si vous choisissez la fonction Analyse de la cause première, le débogueur affiche une vue développée de tous les opérateurs qui contiennent les événements qui ont pu potentiellement contribuer à l'état actuel de l'événement analysé. Par exemple, l'illustration suivante montre comment le numéro médian (« avgCount ») 18, avec les horodateurs de début et de fin donnés, a été obtenu. Pour cela, dans le menu contextuel, cliquez avec le bouton droit sur l'événement en surbrillance et sélectionnez Analyse de la cause première. Le débogueur signale la réception des résultats d'analyse de la cause première en plaçant une deuxième flèche au niveau de l'en-tête du canevas de la requête avec onglets. L'illustration ci-dessous décrit cela. À ce stade du traitement de la requête, l'un des collaborateurs à l'état de cet événement est l'opérateur SensorInput avec la valeur VehicularCount 24.

Analyse de la cause première

Illustration 5 - Utilisation de l'analyse de la cause première.

Utilisation de l'analyse de propagation d'événement

Tandis que l'analyse de la cause première sert à déterminer l'impact d'autres événements ou étapes de traitement sur un événement, l'analyse de propagation d'événement est orientée vers le futur et sert à comprendre l'impact que l'événement actuel aura sur les événements en aval. Depuis la grille d'événement d'un opérateur, lancez l'analyse de propagation d'événement en cliquant avec le bouton droit sur l'événement concerné et en sélectionnant Analyse de propagation d'événement.

Empilement d'analyses

Les analyses peuvent être empilées les unes sur les autres. Vous pouvez commencer le débogage à l'aide de la fonction Relire. À un certain point de cette analyse, vous pouvez démarrer une analyse de la cause première pour un événement particulier. Dans cette vue, vous pouvez éventuellement choisir un autre événement pour l'analyse de propagation. De la sorte, vous pouvez empiler les analyses les unes sur les autres.

Vous pouvez également ouvrir la même requête dans plusieurs onglets et afficher des analyses et des vues différentes dans des onglets distincts, ce qui vous permet de comparer les mêmes segments, ou des segments différents, de la requête sous l'angle d'analyses différentes.

Opérateurs

Chaque zone rectangulaire dans le graphique de requête représente un opérateur, c'est-à-dire le nœud de traitement dans une requête StreamInsight. L'algèbre de la requête prend en charge plusieurs opérateurs, tels que les opérateurs de sélection (filtre), de projet, d'importation, d'exportation, de groupe et d'application, de jointure, de multidiffusion, d'union, ou les opérateurs Top-K, AlterLifetime, Advancetime et Cleanse. Chaque opérateur est différencié par nom dans les métadonnées du serveur, avec le type auquel il appartient.

Il est important de noter qu'il peut ne pas y avoir de correspondance 1:1 entre les opérateurs que vous voyez dans le graphique de requête et les opérations qui composent une requête LINQ. Par exemple, un opérateur d'importation représente une instance de l'adaptateur d'entrée et un opérateur d'exportation représente l'instance de l'adaptateur de sortie. L'opérateur de nettoyage (Cleanse) est un opérateur interne présenté par l'optimiseur de requête pour gérer des données non ordonnées et n'est pas présent dans la requête LINQ. De la même façon, AdvanceTime et AlterLifetime représentent les opérations temporelles principales dans l'algèbre de la requête qui résultent de la spécification d'extensions LINQ AlterEventDuration ou AlterEventLifeTime, ou d'opérations de fenêtrage dans la requête. Toutefois, vous pouvez mettre en corrélation une requête LINQ avec le graphique de requête résultant sans trop de difficulté.

Chaque grille d'événement inclut les sections suivantes.

Étiquette d'opérateur

Le titre de la grille est le nom de l'opérateur fourni par la requête et le type d'opérateur.

Filtre

Dans cette zone de texte vous pouvez spécifier une expression C# conditionnelle pour filtrer les événements qui vous intéressent. Par exemple, vous pouvez examiner uniquement les événements qui correspondent à une valeur ou à une heure donnée ou la dépassent.

Champs d'événement

Le reste de la fenêtre de la grille d'événement affiche les champs d'un événement. Les champs incluent le type d'événement spécifié par l'utilisateur (Insert ou CTI), les événements internes (Retract et Expand). Les colonnes de champ affichées par défaut sont EventKind, StartTime, EndTime et les champs de charge utile de l'événement. Vous pouvez ajouter ou supprimer des champs de la grille d'événement en cliquant avec le bouton droit sur la barre d'en-tête pour consulter le menu contextuel, ou bien, cliquez sur Afficher, Colonnes, puis sélectionnez ou effacez les noms de champ. Notez que tous les champs d'horodateur sont affichés dans le temps universel coordonné (UTC). Le menu contextuel vous permet de modifier le fuseau horaire.

Les champs disponibles s'affichent dans l'ordre répertorié dans le tableau suivant. Les événements dans un opérateur donné peuvent être exportés vers un fichier en cliquant avec le bouton droit sur la barre de titre de l'opérateur et en choisissant l'option « Écrire les événements dans un fichier... ». En général, cette option sert à exporter des événements en vue de les traiter ultérieurement à l'aide d'un autre programme.

Nom du champ

Description

EventKind

Insert, Cti, Retract ou Expand.

StartTime

Heure de début de l'événement.

EndTime

Heure de fin de l'événement.

NewEndTime

Heure de fin modifiée de l'événement pour des types d'événement système spéciaux. Vous pouvez ignorer les valeurs de cette colonne.

Latency

Latence système de l'événement à un point précis dans le temps. C'est l'intervalle de temps entre l'heure à laquelle l'événement entrant qui a provoqué cet événement est entré dans le système et l'heure à laquelle cet événement a été produit par le système.

EnqueueTime

Heure système à laquelle l'événement a été produit par l'opérateur.

Un ou plusieurs champs de charge utile

Champs de données définis par l'utilisateur disponibles dans l'événement.

Opérateur de groupe et d'application

L'opérateur de groupe et d'application est un opérateur spécial qui comprend un opérateur de groupe comme point d'entrée, un jeu d'opérateurs de branche d'application et un opérateur union de groupe comme opérateur englobant à la sortie. Si vous développez le nœud de groupe, vous affichez toutes les branches d'application ancrées sur les valeurs de clé de groupe respectives. Vous pouvez développer (ou réduire) l'opérateur de groupe et d'application simplement en faisant glisser la branche concernée du nœud de groupe vers le canevas. Chaque opérateur dans la branche peut maintenant être développé et analysé dans le détail. En cliquant sur le signe « X » dans chaque branche, vous réduisez l'opérateur dans le sous-graphe du flux de groupe et d'application principal. L'illustration suivante montre un nœud de groupe et d'application dans le débogueur de flux d'événements.

Développement d'un opérateur Groupe et analyse

Illustration 6 - Affichage d'un nœud de groupe et d'application.

Facilités d'utilisation supplémentaires

Le débogueur offre les fonctionnalités suivantes pour plus de facilité d'utilisation :

  • Vous pouvez facilement faire un zoom avant ou arrière sur le canevas du graphique de la requête pour afficher les opérateurs ou le graphique de requête complet.

  • Toutes les fonctionnalités disponibles via des icônes sont également disponibles en sélectionnant des options dans les menus contextuels.

  • Lorsque le débogueur est connecté au serveur, toutes les erreurs retournées par le serveur utilisent les paramètres régionaux en-US indépendamment des paramètres régionaux installés. Pour les paramètres régionaux autres qu'en-US, ces messages d'erreur peuvent être utilisés pour un support et un diagnostic supplémentaires.

  • Tous les opérateurs peuvent être développés ou réduits en utilisant les fonctionnalités Développer tout et Réduire tout.

  • Les options disponible dans le menu Outils vous permettent de définir les valeurs par défaut des différents paramètres du débogueur. Vous pouvez choisir de lire le fichier de trace de flux d'événements dans des segments de tailles spécifiques. De la sorte, le débogage sera prédictible et plus lissé. Vous pouvez spécifier le format de date et heure et le fuseau horaire pour tous les opérateurs du graphique de requête. En outre, vous pouvez spécifier la durée maximale et minimale de l'enregistrement du flux d'événements lorsque le débogueur est connecté à un serveur.

Surveillance du tableau de bord

En plus d'être un outil de débogage, le débogueur de flux d'événements sert d'outil d'analyse du serveur StreamInsight. Vous pouvez connecter le débogueur à un serveur de production en suivant les étapes décrites précédemment. Le débogueur affiche un explorateur d'objets avec toutes les entités du serveur. Au niveau supérieur, il affiche le récapitulatif des statistiques du gestionnaire d'événements, du gestionnaire de requête et des planificateurs. Pour afficher le diagnostic d'exécution d'un de ces objets, cliquez avec le bouton droit sur l'icône de l'objet et sélectionnez Diagnostics.

Vous pouvez également développer la hiérarchie des objets et choisir une requête particulière enregistrée dans le serveur. Vous pouvez activer ou désactiver le suivi sur une requête et démarrer ou arrêter une requête. De plus, si la requête s'exécute, vous pouvez obtenir son diagnostic d'exécution. Les informations relatives aux événements produits et consommés, aux caractéristiques de débit et de latence et aux besoins en mémoire de la requête peuvent être surveillées à l'aide de cette interface.

Ces mesures peuvent également être récupérées par le programme à l'aide des API de vue de diagnostic. Pour une description des informations de diagnostic disponibles pour chaque entité, consultez Contrôle du serveur et des requêtes StreamInsight.

Historique des modifications

Mise à jour du contenu

Informations sur les causes et les solutions envisagées dans la section « Chargement du fichier de trace du flux d'événements (EFT) ou du fichier de suivi d'événements (ETL) pour Windows » pour l'avertissement relatif aux événements perdus.

Étape 2 ajoutée dans la section « Enregistrement d'événements de requêtes en cours d'exécution ».