Beispiel: Verwenden von OpenTelemetry mit Azure Monitor und Application Insights
Es gibt viele kommerzielle Application Performance Management (APM)-Systeme, aus denen Sie wählen können. In Azure ist das primäre Anwendungsüberwachungsprodukt Application Insights, das Teil von Azure Monitor ist. Einer der Vorteile eines integrierten APM-Produkts ist, dass es die verschiedenen Einblickdatenquellen korrelieren kann. Application Insights bietet umfassende Ansichten und Analysefunktionen.
1. Hinzufügen der Application Insights-Einführung
Um die ASP.NET Erfahrung mit Azure Monitor zu vereinfachen, wird ein Wrapperpaket (als Distro in OTel-Parlance bezeichnet) bereitgestellt, das den größten Teil der konfiguration von OpenTelemetry erledigt.
Dieses Beispiel basiert auf der OTLP-exemplarischen Vorgehensweise. Führen Sie die Schritte 1 bis 5 aus, um den Anwendungscode mithilfe des OTLP-Exporters zu erstellen. In diesem Beispiel erweitern wir den Code, um Daten an Application Insights zu senden.
Führen Sie dasselbe Projekt aus Schritt 5 aus, und fügen Sie das folgende NuGet-Paket hinzu:
<ItemGroup>
<PackageReference Include="Azure.Monitor.OpenTelemetry.AspNetCore" Version="1.3.0-beta.1" />
</ItemGroup>
Hinweis
Ersetzen Sie die Version durch die neueste verfügbare Version.
2. Einrichten des Exporters
Fügen Sie den folgenden OTel-Initialisierungscode vor builder.Build();
:
if (!string.IsNullOrEmpty(builder.Configuration["APPLICATIONINSIGHTS_CONNECTION_STRING"]))
{
otel.UseAzureMonitor();
}
UseAzureMonitor()
ist die Magie, die die gängigen Instrumentierungsbibliotheken und -exporter für Application Insights hinzugibt. Sie müssen lediglich Ihre benutzerdefinierten Meter
- und ActivitySource
-Namen zur Registrierung hinzufügen.
Die gleiche OTel-Initialisierung funktioniert für OTLP wie für Application Insights, der Unterschied besteht darin, welche Exporteure Sie auswählen. Sie können beide in derselben Anwendung verwenden und zwischen diesen auswählen, indem Sie die entsprechenden Umgebungsvariablen definieren.
3. Angeben des Verbindungszeichenfolge
Wenn Sie noch kein Azure-Kunde sind, können Sie unter https://azure.microsoft.com/free/ ein kostenloses Konto erstellen. Melden Sie sich beim Azure-Portal an, und wählen Sie entweder eine vorhandene Application Insights-Ressource aus, oder erstellen Sie eine neue mit https://ms.portal.azure.com/#create/Microsoft.AppInsights.
Application Insights identifiziert, welche Instanz zum Speichern und Verarbeiten von Daten verwendet werden soll, über einen Instrumentierungsschlüssel und eine Verbindungszeichenfolge, die sich oben rechts auf der Portalbenutzeroberfläche befinden.
Wenn Sie Azure App Service verwenden, wird diese Verbindungszeichenfolge automatisch als Umgebungsvariable an die Anwendung übergeben. Bei anderen Diensten oder bei lokaler Ausführung müssen Sie sie mithilfe der APPLICATIONINSIGHTS_CONNECTION_STRING
Umgebungsvariable oder in appsettings.json übergeben. Für die lokale Ausführung ist es am einfachsten, den Wert zu appsettings.development.json hinzuzufügen:
"AzureMonitor": {
"ConnectionString": "InstrumentationKey=12345678-abcd-abcd-abcd-12345678..."
}
Hinweis
Ersetzen Sie den Wert durch den Wert aus Ihrer Instanz.
4. Untersuchen Sie Ihre App in Application Insights
Wenn Sie die Anwendung ausführen, werden Telemetriedaten an Application Insights gesendet. Sie sollten jetzt Protokolle, Metriken und verteilte Ablaufverfolgungen für Ihre Anwendung abrufen. Öffnen Sie die Application Insights-Ressource im Azure-Portal.