Activer Azure Monitor OpenTelemetry pour les applications .NET, Node.js, Java et Python
Cet article explique comment activer et configurer la collecte de données basée sur OpenTelemetry pour appuyer les expériences dans Azure Monitor Application Insights. Nous allons découvrir comment installer la « Distribution Azure Monitor OpenTelemetry ». La distribution collecte automatiquement les traces, les indicateurs de performance, les journaux et les exceptions dans votre application et ses dépendances. Pour en savoir plus sur la collecte de données à l’aide de OpenTelemetry, veuillez consulter la rubrique Principes de base sur la collecte de données ou FAQ OpenTelemetry.
Statut de publication d’OpenTelemetry
Les offres OpenTelemetry sont disponibles pour les applications .NET, Node.js, Python et Java.
Remarque
Pour connaître l’état de la publication fonctionnalité par fonctionnalité, consultez la FAQ.
Bien démarrer
Suivez les étapes de cette section pour instrumenter votre application avec OpenTelemetry.
Prérequis
- Abonnement Azure : créer un abonnement Azure gratuitement
- Ressource Application Insights : créer une ressource Application Insights
- Application ASP.NET Core utilisant une version officiellement prise en charge de .NET Core
Conseil
Nous vous déconseillons d’utiliser le SDK/l’API de la communauté OTel avec la distribution OTel Azure Monitor, car il les charge automatiquement en tant que dépendances.
Installer la bibliothèque de client
Installez le package NuGet Azure.Monitor.OpenTelemetry.AspNetCore le plus récent :
dotnet add package --prerelease Azure.Monitor.OpenTelemetry.AspNetCore
Activer Azure Monitor Application Insights
Pour activer Azure Monitor Application Insights, apportez une modification mineure à votre application et définissez votre « chaîne de connexion ». La chaîne de connexion indique à votre application où envoyer les données de télémétrie collectées par la distribution, et elle vous est unique.
Modifier votre application
Ajoutez UseAzureMonitor()
au start-up de votre application. En fonction de votre version .NET, il se trouve dans votre classe startup.cs
ou program.cs
.
// Import the Azure.Monitor.OpenTelemetry.AspNetCore namespace.
using Azure.Monitor.OpenTelemetry.AspNetCore;
// Create a new WebApplicationBuilder instance.
var builder = WebApplication.CreateBuilder(args);
// Add the OpenTelemetry NuGet package to the application's services and configure OpenTelemetry to use Azure Monitor.
builder.Services.AddOpenTelemetry().UseAzureMonitor();
// Build the application.
var app = builder.Build();
// Run the application.
app.Run();
Copier la chaîne de connexion à partir de votre ressource Application Insights
Conseil
Si vous n’en avez pas encore une, le moment est venu de créer une ressource Application Insights. Voici dans quel cas nous recommandons de créer une ressource Application Insights plutôt que d’en utiliser une existante.
Pour copier votre chaîne de connexion unique :
- Accédez au panneau Vue d’ensemble de votre ressource Application Insights.
- Recherchez votre chaîne de connexion.
- Pointez sur la chaîne de connexion et sélectionnez l’icône Copier dans le Presse-papiers.
Coller la chaîne de connexion dans votre environnement
Pour coller votre chaîne de connexion, sélectionnez l’une des options suivantes :
R. Définir via une variable d’environnement (recommandé)
Dans la commande suivante, remplacez <Your Connection String>
par votre chaîne de connexion unique.
APPLICATIONINSIGHTS_CONNECTION_STRING=<Your Connection String>
B. Définir via le fichier de configuration : Java uniquement (recommandé)
Créez un fichier de configuration nommé applicationinsights.json
, puis placez-le dans le même répertoire que applicationinsights-agent-3.4.18.jar
, avec le contenu suivant :
{
"connectionString": "<Your Connection String>"
}
Remplacez <Your Connection String>
dans le code JSON précédent par votre chaîne de connexion unique.
C. Définir via le code : ASP.NET Core, Node.js et Python uniquement (non recommandé)
Consultez Configuration de la chaîne de connexion pour obtenir un exemple de définition de chaîne de connexion par le code.
Remarque
Si vous définissez la chaîne de connexion à plusieurs emplacements, nous respectons l’ordre suivant :
- Code
- Variable d’environnement
- Fichier de configuration
Confirmer le déplacement des données
Exécutez votre application et ouvrez votre onglet Ressource Application Insights dans le portail Azure. L’affichage des données dans le portail peut prendre plusieurs minutes.
Vous avez activé Application Insights pour votre application. Toutes les étapes suivantes sont facultatives et permettent une personnalisation supplémentaire.
Important
Si vous avez deux ou plusieurs services émettant de la télémétrie vers la même ressource Application Insights, vous devez définir les noms des rôles cloud pour les représenter correctement sur la cartographie d’application.
Dans le cadre de l’utilisation de l’instrumentation Application Insights, nous collectons et envoyons des données de diagnostic à Microsoft. Ces données nous permettent d’exécuter et d’améliorer Application Insights. Pour en savoir plus, consultez Statsbeat dans Azure Application Insights.
Forum aux questions
Cette section fournit des réponses aux questions fréquentes.
Qu’est-ce qu’OpenTelemetry ?
C’est une nouvelle norme open source pour l’observabilité. Pour en savoir plus, rendez-vous sur OpenTelemetry.
Pourquoi Microsoft Azure Monitor investit-il dans OpenTelemetry ?
Microsoft fait partie des plus importants contributeurs d’OpenTelemetry.
Les principales propositions de valeur d’OpenTelemetry reposent sur le fait qu’elles sont indépendantes du fournisseur et qu’elles offrent des API/kits SDK cohérents dans tous les langages.
Au fil du temps, nous pensons qu’OpenTelemetry permettra aux clients d’Azure Monitor d’observer des applications écrites dans des langages autres que nos langages pris en charge. Il étend également les types de données que vous pouvez collecter via un ensemble complet de bibliothèques d’instrumentation. En outre, les kits de développement logiciel (SDK) OpenTelemetry ont tendance à être plus performants à grande échelle que leurs prédécesseurs, les kits de développement logiciel (SDK) Application Insights.
Enfin, OpenTelemetry est en phase avec la stratégie de Microsoft qui vise à adopter l’open source.
Quel est l’état d’OpenTelemetry ?
Consultez la matrice de conformité aux spécifications OpenTelemetry.
Qu’est-ce que la « distribution Azure Monitor OpenTelemetry » ?
Vous pouvez le considérer comme un wrapper mince qui regroupe tous les composants OpenTelemetry pour une expérience de première classe sur Azure.
Pourquoi utiliser la « distribution Azure Monitor OpenTelemetry » ?
Il existe plusieurs avantages à utiliser la distribution Azure Monitor OpenTelemetry par rapport à OpenTelemetry natif de la communauté :
- Réduit l’effort d’activation
- Prise en charge par Microsoft
- Intègre des fonctionnalités spécifiques à Azure, telles que :
- Conserve les traces avec les composants de service à l’aide des kits de développement logiciel (SDK) Application Insights
- Authentification Microsoft Entra
- Stockage hors connexion et nouvelles tentatives automatiques
- Statsbeat
- Métriques standard sur Application Insights
- Détecter les métadonnées de ressource pour remplir automatiquement le nom du rôle cloud sur Azure
- Métriques en direct (à venir)
Dans l’esprit d’OpenTelemetry, nous avons conçu la distribution pour qu’elle soit ouverte et extensible. Par exemple, vous pouvez ajouter :
- Un exportateur OTLP et envoyer vers une seconde destination simultanément
- Des bibliothèques d’instrumentation de la communauté en plus de ce qui est regroupé dans le package
Comment tester la distribution Azure Monitor OpenTelemetry ?
Consultez notre documentation sur l’activation pour .NET, Java, JavaScript (Node.js) et Python.
Dois-je utiliser le kit de développement logiciel (SDK) OpenTelemetry ou Application Insights ?
Nous vous recommandons d’utiliser la distribution OpenTelemetry, sauf si vous avez besoin d’une fonctionnalité disponible uniquement avec une prise en charge formelle dans le kit SDK Application Insights.
Quel est l’état de publication actuel des fonctionnalités de la distribution Azure Monitor OpenTelemetry ?
Le graphique suivant présente la prise en charge des fonctionnalités OpenTelemetry pour chaque langage.
Fonctionnalité | .NET | Node.js | Python | Java |
---|---|---|---|---|
Traçage distribué | ✅ | ✅ | ✅ | ✅ |
Métriques personnalisées | ✅ | ✅ | ✅ | ✅ |
Métriques standard (précision affectée par l’échantillonnage) | ✅ | ✅ | ✅ | ✅ |
Échantillonnage à fréquence fixe | ✅ | ✅ | ✅ | ✅ |
Stockage hors connexion et nouvelles tentatives automatiques | ✅ | ✅ | ✅ | ✅ |
Rapports d’exceptions | ✅ | ✅ | ✅ | ✅ |
Collection de journaux | ✅ | ⚠️ | ✅ | ✅ |
Événements personnalisés | ⚠️ | ⚠️ | ⚠️ | ✅ |
Authentification Microsoft Entra | ✅ | ✅ | ✅ | ✅ |
Métriques temps réel | ❌ | ❌ | ❌ | ✅ |
Détecter le contexte de ressource pour la machine virtuelle ou VMSS et l’application Svc | ✅ | ❌ | ✅ | ✅ |
Détecter le contexte de ressource pour AKS et les fonctions | ❌ | ❌ | ❌ | ✅ |
Filtrage de l’étendue des tests de disponibilité | ❌ | ❌ | ❌ | ✅ |
Remplissage automatique de l’identifiant utilisateur, de l’identifiant utilisateur authentifié et de l’IP utilisateur | ❌ | ❌ | ❌ | ✅ |
Remplacer/définir manuellement le nom de l’opération, l’ID utilisateur ou l’ID utilisateur authentifié | ❌ | ❌ | ❌ | ✅ |
échantillonnage adaptatif | ❌ | ❌ | ❌ | ✅ |
Profiler | ❌ | ❌ | ❌ | ⚠️ |
Débogueur de capture instantanée | ❌ | ❌ | ❌ | ❌ |
Clé
- ✅ Cette fonctionnalité est disponible pour tous les clients bénéficiant d’un support formel.
- ⚠ Cette fonctionnalité est disponible en préversion publique. Consultez Conditions d’utilisation supplémentaires des Préversions Microsoft Azure.
- ❌ Cette fonctionnalité n’est pas disponible ou n’est pas applicable.
OpenTelemetry peut-il être utilisé pour les navigateurs web ?
Oui, mais cela n’est pas recommandé ou pris en charge par Azure. OpenTelemetry JavaScript est fortement optimisé pour Node.js. Au lieu de cela, nous vous recommandons d’utiliser le Kit de développement logiciel (SDK) JavaScript Application Insights.
Quand pouvons-nous nous attendre à ce que le Kit de développement logiciel (SDK) OpenTelemetry soit disponible pour être utilisé dans les navigateurs web ?
Le calendrier de disponibilité du Kit de développement logiciel (SDK) web d’OpenTelemetry n’a pas encore été déterminé. Il faudra probablement attendre encore plusieurs années avant qu’un SDK pour navigateur ne constitue une alternative viable au SDK JavaScript d’Application Insights.
Puis-je tester OpenTelemetry dans un navigateur web aujourd’hui ?
Le bac à sable web OpenTelemetry est une duplication (fork) conçue pour permettre à OpenTelemetry de fonctionner dans un navigateur. Il n’est pas encore possible d’envoyer des données de télémétrie à Application Insights. Le Kit de développement logiciel (SDK) n’a actuellement pas d’événements clients généraux définis.
L’exécution d’Application Insights avec les agents concurrents tels que AppDynamics, DataDog et NewRelic est-elle prise en charge ?
Nombre Bien que nos distributions vous permettent d’exporter simultanément vers un point de terminaison OTLP et Azure Monitor, nous ne prévoyons pas de tester ou de prendre en charge cette pratique.
Puis-je utiliser les fonctionnalités d’évaluation dans les environnements de production ?
Nous ne le recommandons pas. Consultez Conditions d’utilisation supplémentaires des Préversions Microsoft Azure.
Puis-je utiliser l’exportateur Azure Monitor en tant que composant autonome ?
Oui, nous comprenons que certains clients puissent vouloir instrumenter en utilisant une « approche fragmentaire ». Toutefois, la distribution fournit le moyen le plus simple de commencer à bénéficier de la meilleure expérience sur Azure.
Quelles sont les différences entre une instrumentation manuelle et automatique ?
Consultez la rubrique Présentation d’OpenTelemetry.
Est-il possible d’utiliser le collecteur OpenTelemetry ?
Microsoft ne prend pas encore officiellement en charge une approche basée sur un agent pour la supervision d’applications, mais certains clients ont commencé à utiliser le collecteur OpenTelemetry comme alternative aux agents. Dans le même temps, la communauté open source a contribué à créer un exportateur Azure Monitor de collecteur OpenTelemetry que certains clients utilisent pour envoyer des données à Azure Monitor Application Insights.
Nous envisageons de prendre en charge une approche basée sur un agent à l’avenir, mais les détails et le calendrier ne sont pas encore communiqués. Notre objectif est de proposer un moyen pour tout langage pris en charge par OpenTelemetry d’effectuer des envois à Azure Monitor par le biais du protocole OTLP (OpenTelemetry Protocol). Cette approche permet aux clients d’observer des applications écrites dans des langages autres que nos langages pris en charge.
Quelle est la différence entre OpenCensus et OpenTelemetry ?
OpenCensus est le précurseur d’OpenTelemetry. Microsoft a contribué à réunir OpenTracing et OpenCensus pour créer OpenTelemetry, une norme d’observabilité unique et disponible à l’échelle mondiale. Le Kit de développement logiciel (SDK) Python actuellement recommandé en production pour Azure Monitor est basé sur OpenCensus. À terme, tous les SDK Azure Monitor seront basés sur OpenTelemetry.
Résolution des problèmes
Cela ne fonctionne pas ? Consultez la page de résolution des problèmes pour ASP.NET Core.
Support
Sélectionnez un onglet correspondant à la langue de votre choix pour découvrir les options de support.
- Pour les problèmes de support Azure, ouvrez un ticket de support Azure.
- Pour les problèmes OpenTelemetry, contactez directement la communauté OpenTelemetry .NET.
- Pour obtenir la liste des problèmes ouverts liés à Azure Monitor Exporter, consultez la page Problèmes GitHub.
Commentaires OpenTelemetry
Pour fournir des commentaires :
- Remplissez l’enquête sur les commentaires des clients de la communauté OpenTelemetry.
- Parlez de vous à Microsoft en rejoignant la communauté d’utilisateurs précoces d’OpenTelemetry.
- Discutez avec d’autres utilisateurs d’Azure Monitor au sein de la communauté Microsoft Tech.
- Formulez une demande de fonctionnalité sur le Forum de commentaires Azure.
Étapes suivantes
- Pour plus d’informations sur l’ajout et la modification d’Azure Monitor OpenTelemetry, consultez Ajouter et modifier Azure Monitor OpenTelemetry
- Pour configurer davantage la distribution OpenTelemetry, consultez Configuration d’Azure Monitor OpenTelemetry
- Pour passer en revue le code source, consultez Référentiel GitHub Azure Monitor AspNetCore .
- Pour installer le package NuGet, recherchez les mises à jour ou affichez les notes de publication, et consultez la page Package NuGet Azure Monitor AspNetCore.
- Pour se familiariser davantage à Azure Monitor et OpenTelemetry grâce à l’exemple d’application Azure Monitor.
- Pour en savoir plus sur OpenTelemetry et sa communauté, consultez le référentiel GitHub OpenTelemetry .NET.
- Pour activer les expériences d’utilisation, consultez Activer la surveillance des utilisateurs web ou de navigateur.