Dela via


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.

Anslutningssträng i Azure-portalen

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.

Loggar

App Insights-loggvy

Mått

App Insights-måttvy

Distribuerad spårning

App Insights-transaktionsvy