Aller au contenu
Home » Blog » Supervision d’application .NET avec OpenTelemetry et Azure Application Insights

Supervision d’application .NET avec OpenTelemetry et Azure Application Insights

Introduction

La supervision des applications est une composante essentielle du maintien de la performance, de la stabilité et de la disponibilité des services en production. Azure Application Insights permet de collecter des métriques, des traces et des journaux pour analyser le comportement de l’application et détecter les anomalies.

Avec l’évolution des standards de supervision, OpenTelemetry est devenu la solution privilégiée pour l’instrumentation des applications modernes, remplaçant progressivement le SDK natif d’Application Insights pour .NET. Cette transition permet une meilleure interopérabilité et flexibilité dans l’observabilité des applications.

Dans cet article, nous verrons comment configurer une application ASP.NET Core pour utiliser OpenTelemetry avec Azure Application Insights.


Présentation d’Application Insights

Azure Application Insights est un service de supervision d’applications hébergé sur Azure. Il permet d’analyser en temps réel les performances et la disponibilité des applications, grâce à la collecte et l’analyse de télémétrie, incluant :

  • Les requêtes HTTP,
  • Les exceptions et erreurs applicatives,
  • Les journaux d’événements,
  • Les métriques personnalisées.

Il s’intègre facilement avec divers environnements de développement et plateformes cloud, facilitant ainsi le diagnostic et l’optimisation des applications.


Présentation d’OpenTelemetry

OpenTelemetry est une initiative open-source standardisant la collecte de télémétrie (logs, métriques et traces) pour les applications modernes. Il fournit un ensemble d’API et de SDK permettant d’envoyer des données à divers systèmes de supervision, dont Azure Application Insights.

Les avantages d’OpenTelemetry incluent :

  • Une compatibilité multi-cloud et multi-plateforme,
  • La réduction de la dépendance aux SDK propriétaires,
  • Une instrumentation standardisée facilitant l’interopérabilité entre services.

Retrait du SDK Application Insights pour .NET et utilisation d’OpenTelemetry

Microsoft recommande désormais l’utilisation d’OpenTelemetry à la place du SDK Application Insights pour .NET. Cette transition offre une approche plus modulaire et interopérable pour l’instrumentation des applications, évitant ainsi un verrouillage sur une seule plateforme de supervision.

Avec OpenTelemetry, les développeurs peuvent envoyer leurs métriques et traces vers plusieurs systèmes de monitoring sans modifier profondément leur code applicatif.


Mise en place

Étape 1 – Créer la ressource Azure Application Insights

Pour commencer, créez une ressource Azure Application Insights via le portail Azure :

  1. Accédez à Azure Portal.
  2. Recherchez Application Insights.
  3. Cliquez sur Créer et suivez les étapes pour configurer la ressource.

Étape 2 – Ajouter le package à votre application

Dans votre projet ASP.NET Core, installez le package NuGet Azure.Monitor.OpenTelemetry.AspNetCore :


Étape 3 – Configurer la connexion à Application Insights

Maintenant, nous devons ajouter au fichier de configuration AppSettings.json la chaine de connexion pour Azure Application Insights.

Pour cela, allez dans le portail Azure et copiez la clé de connexion pour Application Insights dans la page d’accueil :

Ajoutez la chaîne de connexion Application Insights à votre fichier appsettings.json :

{
  "APPINSIGHTS_CONNECTIONSTRING": "InstrumentationKey=xxxx-xxxx-xxxx-xxxx"
}

Assurez-vous que cette valeur est bien récupérée dans votre configuration.


Étape 4 – Inscrire OpenTelemetry dans le conteneur d’IoC

Dans le fichier Program.cs, ajoutez OpenTelemetry au conteneur d’injection de dépendances :

// Ajouter OpenTelemetry au conteneur
builder.Services.AddOpenTelemetry().UseAzureMonitor(o =>
{
    o.ConnectionString = builder.Configuration["APPINSIGHTS_CONNECTIONSTRING"];
    // Si on souhaite réduire le taux d'échantillonnage
    o.SamplingRatio = 0.5F;
});

Cela permet à OpenTelemetry de collecter automatiquement des métriques et des traces et de les envoyer vers Azure Application Insights.


Étape 5 – Vérification et validation des données

Après avoir lancé votre application, vérifiez que les données sont bien envoyées à Azure Application Insights :

  1. Ouvrez Azure Portal.
  2. Accédez à votre ressource Application Insights.
  3. Allez dans Metrics en direct pour visualiser les métriques en temps réel.

Conclusion

L’intégration d’OpenTelemetry avec Azure Application Insights offre une approche moderne et standardisée pour superviser les applications ASP.NET Core. Cette transition vers OpenTelemetry permet une flexibilité accrue en matière de supervision multi-plateforme et un meilleur contrôle des données télémétriques.

Grâce à cette configuration, votre application sera en mesure de générer des métriques et des traces exploitables pour assurer son bon fonctionnement et détecter rapidement d’éventuels problèmes de performance.

Pour en savoir plus, consultez la documentation officielle sur GitHub : Azure Monitor OpenTelemetry.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *