Exemple : Utiliser OpenTelemetry avec Azure Monitor et Application Insights
De nombreux systèmes de gestion des performances des applications commerciales (APM) sont disponibles. Dans Azure, le produit de supervision des applications principal est Application Insights, qui fait partie d’Azure Monitor. L’un des avantages d’un produit APM intégré est qu’il peut mettre en corrélation les différentes sources de données d’observabilité. Application Insights offre des vues et des fonctionnalités d’analyse enrichies.
1. Ajout de la distribution Application Insights
Pour faciliter l’expérience de ASP.NET avec Azure Monitor, un package wrapper (appelé distribution dans oTel parlance) est fourni pour la plupart des tâches importantes de configuration d’OpenTelemetry.
Cet exemple est basé sur la procédure pas à pas OTLP. Suivez les étapes 1 à 5 pour créer le code d’application à l’aide de l’exportateur OTLP. Dans cet exemple, nous allons étendre le code pour envoyer des données à Application Insights.
Prenez le même projet à partir de l’étape 5 et ajoutez le package NuGet suivant :
<ItemGroup>
<PackageReference Include="Azure.Monitor.OpenTelemetry.AspNetCore" Version="1.3.0-beta.1" />
</ItemGroup>
Remarque
Remplacez la version par la dernière version disponible
2. Configurer l’exportateur
Ajoutez le code d’initialisation OTel suivant avant builder.Build();
:
if (!string.IsNullOrEmpty(builder.Configuration["APPLICATIONINSIGHTS_CONNECTION_STRING"]))
{
otel.UseAzureMonitor();
}
UseAzureMonitor()
est la magie qui ajoute les bibliothèques d’instrumentation et les exporters courants pour Application Insights. Il vous suffit d’ajouter vos noms de Meter
et ActivitySource
personnalisés à l’inscription.
La même initialisation OTel fonctionne pour OTLP que pour Application Insights, la différence est celle des exportateurs que vous sélectionnez. Vous pouvez utiliser les deux dans la même application et les sélectionner entre eux en définissant les variables d’environnement appropriées.
3. Spécifiez la chaîne de connexion
Si vous n’êtes pas encore un client d’Azure, vous pouvez créer un compte gratuit à l’adresse https://azure.microsoft.com/free/. Connectez-vous au Portail Azure et sélectionnez une ressource Application Insights existante ou créez-en une avec https://ms.portal.azure.com/#create/Microsoft.AppInsights.
Application Insights identifie les instance à utiliser pour stocker et traiter des données via une clé d’instrumentation et une chaîne de connexion se trouvant en haut à droite de l’interface utilisateur du portail.
Si vous utilisez Azure App Service, cette chaîne de connexion est automatiquement transmise à l’application comme variable d’environnement. Pour d’autres services ou lors de l’exécution locale, vous devez le transmettre à l’aide de la APPLICATIONINSIGHTS_CONNECTION_STRING
variable d’environnement ou dans appsettings.json. Pour l’exécution locale, il est plus simple d’ajouter la valeur à appsettings.development.json :
"AzureMonitor": {
"ConnectionString": "InstrumentationKey=12345678-abcd-abcd-abcd-12345678..."
}
Remarque
Remplacez la valeur par celle de votre instance.
4. Examiner votre application dans Application Insights
Lorsque vous exécutez l’application, la télémétrie est envoyée à Application Insights. Vous devriez maintenant obtenir des journaux, des métriques et des traces distribuées pour votre application. Ouvrez la ressource Application Insights dans le portail Azure.