Surveillance et diagnostic des services dans une configuration de développement d’ordinateur local

L’analyse, la détection, le diagnostic et la résolution des problèmes permettent aux services de fonctionner avec une interruption minimale de l’expérience utilisateur. Bien que l’analyse et le diagnostic soient essentiels dans un environnement de production réel déployé, leur efficacité dépend de l’adoption d’un modèle semblable pendant le développement des services pour garantir leur fonctionnement lors du passage à une configuration réelle. Service Fabric facilite pour les développeurs de service l’implémentation de diagnostics qui peuvent fonctionner parfaitement aussi bien sur une configuration de développement d’ordinateur local unique que sur une configuration réelle de cluster de production.

Suivi d’événements pour Windows

Suivi d'événements pour Windows (ETW) est la technologie recommandée pour le suivi des messages dans Service Fabric. Voici quelques avantages liés à l’utilisation d’ETW :

  • ETW est rapide. Il a été créé en tant que technologie de suivi avec un impact minimal sur le temps d’exécution du code.
  • Le suivi ETW fonctionne parfaitement dans des environnements de développement local ainsi que dans les configurations de cluster réel. Cela signifie que vous n'êtes pas obligé de réécrire votre code de suivi quand vous êtes prêt à déployer votre code dans un cluster réel.
  • Le code système de Service Fabric utilise également ETW pour le suivi interne. Vous pouvez ainsi afficher les traces de votre application entrelacées avec celles du système Service Fabric. Vous pouvez également comprendre plus facilement les séquences et les relations entre votre code d’application et les événements du système sous-jacent.
  • Les outils Visual Studio de Service Fabric prennent en charge l'affichage des événements ETW. Les événements ETW apparaissent dans l’affichage des événements de diagnostic de Visual Studio une fois que Visual Studio est correctement configuré avec Service Fabric.

Afficher les événements système de Service Fabric dans Visual Studio

Service Fabric émet des événements ETW pour aider les développeurs d’applications à comprendre ce qui se passe dans la plateforme. Si ce n’est pas déjà fait, continuez en suivant les étapes décrites dans Création de votre première application dans Visual Studio. Ces informations vous permettront de créer une application opérationnelle tout en observant les messages de trace dans la visionneuse d’événements de diagnostic.

  1. Si la fenêtre des événements de diagnostics ne s’affiche pas automatiquement, accédez à l’onglet Affichage dans Visual Studio, puis choisissez Autres fenêtres et Visionneuse d’événements de diagnostics.

  2. Chaque événement comporte des informations de métadonnées standard qui vous indiquent le nœud, l’application et le service d’où il provient. Vous pouvez également filtrer la liste des événements à l’aide de la zone Filtrer les événements située en haut de la fenêtre Événements. Par exemple, vous pouvez filtrer sur Nom du nœud ou Nom du service. Lorsque vous examinez les détails d’un événement, vous pouvez également mettre en pause à l’aide du bouton Pause en haut de la fenêtre Événements et reprendre plus tard sans perte d’événements.

    Observateur d'événements de diagnostic de Visual Studio

Ajouter vos propres traces personnalisées au code d'application

Les modèles de projet Visual Studio de Service Fabric contiennent des exemples de code. Le code indique comment ajouter les traces ETW de code d’application personnalisé qui s’affichent dans la visionneuse ETW de Visual Studio avec les traces système de Service Fabric. L’avantage de cette méthode est que les métadonnées sont automatiquement ajoutées aux traces et la visionneuse d’événements de diagnostics de Visual Studio est déjà configurée pour les afficher.

Pour les projets créés à partir des modèles de service (sans état ou avec état), cherchez l’implémentation RunAsync :

  1. L’appel de ServiceEventSource.Current.ServiceMessage in the RunAsync est un exemple de suivi ETW personnalisé à partir du code d’application.
  2. Dans le fichier ServiceEventSource.cs, vous trouverez une surcharge pour la méthode ServiceEventSource.ServiceMessage devant être utilisée pour les événements de haute fréquence pour une question de performances.

Pour les projets créés à partir des modèles d'acteur (sans état ou avec état) :

  1. Ouvrez le fichier « Nom_projet ».csNom_projet est le nom que vous avez choisi pour votre projet Visual Studio.
  2. Recherchez le code ActorEventSource.Current.ActorMessage(this, "Doing Work"); dans la méthode DoWorkAsync . Il s'agit d'un exemple de suivi écrit ETW personnalisé à partir du code d'application.
  3. Dans le fichier ActorEventSource.cs, vous trouverez une surcharge pour la méthode ActorEventSource.ActorMessage devant être utilisée pour les événements de haute fréquence pour une question de performances.

Après avoir ajouté le suivi ETW personnalisé à votre code de service, vous pouvez générer, déployer et réexécuter l’application pour afficher vos événements dans la visionneuse d’événements de diagnostics. Si vous déboguez l’application en appuyant sur F5, la visionneuse d’événements de diagnostics s’ouvre automatiquement.

Étapes suivantes

Le code de traçage que vous avez ajouté à votre application ci-dessus pour le diagnostic local fonctionnera avec les outils que vous pouvez utiliser pour afficher ces événements lors de l’exécution de votre application sur un cluster Azure. Consultez ces articles qui traitent des différentes options pour les outils et décrivent comment vous pouvez les configurer.