Exempel: Använda OpenTelemetry med Azure Monitor och Application Insights
Det finns många kommersiella APM-system (Application Performance Management) att välja mellan. I Azure är den primära programövervakningsprodukten Application Insights, som är en del av Azure Monitor. En av fördelarna med en integrerad APM-produkt är att den kan korrelera de olika datakällorna för observerbarhet. Application Insights har omfattande vyer och analysfunktioner.
1. Lägga till Application Insights-distributionen
För att göra ASP.NET upplevelsen med Azure Monitor enklare tillhandahålls ett omslutningspaket (kallas distro i OTel-parlance) som utför det mesta av det tunga arbetet med att konfigurera OpenTelemetry.
Det här exemplet baseras på genomgången av OTLP. Följ stegen 1–5 för att skapa programkoden med hjälp av OTLP-exportören. I det här exemplet utökar vi koden för att skicka data till Application Insights.
Ta samma projekt från steg 5 och lägg till följande NuGet-paket:
<ItemGroup>
<PackageReference Include="Azure.Monitor.OpenTelemetry.AspNetCore" Version="1.3.0-beta.1" />
</ItemGroup>
Kommentar
Ersätt versionen med den senaste tillgängliga
2. Konfigurera exportören
Lägg till följande OTel-initieringskod före builder.Build();
:
if (!string.IsNullOrEmpty(builder.Configuration["APPLICATIONINSIGHTS_CONNECTION_STRING"]))
{
otel.UseAzureMonitor();
}
UseAzureMonitor()
är magin som lägger till de vanliga instrumentationsbiblioteken och exportörerna för Application Insights. Du behöver bara lägga till dina anpassade Meter
namn och ActivitySource
namn i registreringen.
Samma OTel-initiering fungerar för OTLP som för Application Insights, skillnaden är vilka exportörer du väljer. Du kan använda båda i samma program och välja mellan dem genom att definiera lämpliga miljövariabler.
3. Ange anslutningssträng
Om du inte redan är Azure-kund kan du skapa ett kostnadsfritt konto på https://azure.microsoft.com/free/. Logga in på Azure-portalen och välj antingen en befintlig Application Insights-resurs eller skapa en ny med https://ms.portal.azure.com/#create/Microsoft.AppInsights.
Application Insights identifierar vilken instans som ska användas för att lagra och bearbeta data via en instrumentationsnyckel och anslutningssträng som finns längst upp till höger i portalgränssnittet.
Om du använder Azure App Service skickas den här anslutningssträng automatiskt till programmet som en miljövariabel. För andra tjänster eller när du kör lokalt måste du skicka den med hjälp av APPLICATIONINSIGHTS_CONNECTION_STRING
miljövariabeln eller i appsettings.json. När du kör lokalt är det enklast att lägga till värdet i appsettings.development.json:
"AzureMonitor": {
"ConnectionString": "InstrumentationKey=12345678-abcd-abcd-abcd-12345678..."
}
Kommentar
Ersätt värdet med värdet från din instans.
4. Granska din app i Application Insights
När du kör programmet skickas telemetri till Application Insights. Nu bör du hämta loggar, mått och distribuerade spårningar för ditt program. Öppna Application Insights-resursen i Azure-portalen.