Azure Monitor OpenTelemetry inschakelen voor .NET-, Node.js-, Python- en Java-toepassingen
Artikel
In dit artikel wordt beschreven hoe u gegevensverzameling op basis van OpenTelemetry inschakelt en configureert in Application Insights. De Azure Monitor OpenTelemetry Distro:
Biedt een OpenTelemetry-distributie die ondersteuning biedt voor functies die specifiek zijn voor Azure Monitor.
Hiermee kunt u automatische telemetrie inschakelen door openTelemetry-instrumentatiebibliotheken op te halen voor het verzamelen van traceringen, metrische gegevens, logboeken en uitzonderingen.
OpenTelemetry-aanbiedingen zijn beschikbaar voor .NET-, Node.js-, Python- en Java-toepassingen. Zie de veelgestelde vragen voor een functie-by-feature-releasestatus.
OpenTelemetry inschakelen met Application Insights
Volg de stappen in deze sectie om uw toepassing te instrumenteren met OpenTelemetry. Selecteer een tabblad voor langauge-specifieke instructies.
Notitie
.NET omvat meerdere scenario's, waaronder klassieke ASP.NET, console-apps, Windows Forms (WinForms) en meer.
Als u niet afhankelijk bent van eigenschappen die worden vermeld in de niet-ondersteunde tabel, is de ApplicationInsights-shim uw eenvoudigste pad na een bètaversie.
Als u afhankelijk bent van deze eigenschappen, gaat u verder met de Azure Monitor OpenTelemetry Distro. We bieden binnenkort een migratiehandleiding.
Tip
Als u migreert vanuit de klassieke Application Insights-API, raadpleegt u onze migratiedocumentatie.
Als u een upgrade uitvoert van een eerdere versie van 3.x, kan dit gevolgen hebben voor het wijzigen van de standaardinstellingen of kleine verschillen in de gegevens die we verzamelen. Zie de sectie Migratie in de opmerkingen bij de release voor meer informatie.
3.5.0, 3.4.0, 3.3.0, 3.2.0 en 3.1.0
Importeer de Azure.Monitor.OpenTelemetry.AspNetCore naamruimte, voeg OpenTelemetry toe en configureer deze om Azure Monitor in uw program.cs klasse te gebruiken:
// Import the Azure.Monitor.OpenTelemetry.AspNetCore namespace.
using Azure.Monitor.OpenTelemetry.AspNetCore;
var builder = WebApplication.CreateBuilder(args);
// Add OpenTelemetry and configure it to use Azure Monitor.
builder.Services.AddOpenTelemetry().UseAzureMonitor();
var app = builder.Build();
app.Run();
Voeg de Azure Monitor-exporteur toe aan elk OpenTelemetry-signaal in de program.cs klasse:
// Create a new tracer provider builder and add an Azure Monitor trace exporter to the tracer provider builder.
// It is important to keep the TracerProvider instance active throughout the process lifetime.
// See https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/docs/trace#tracerprovider-management
var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddAzureMonitorTraceExporter();
// Add an Azure Monitor metric exporter to the metrics provider builder.
// It is important to keep the MetricsProvider instance active throughout the process lifetime.
// See https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/docs/metrics#meterprovider-management
var metricsProvider = Sdk.CreateMeterProviderBuilder()
.AddAzureMonitorMetricExporter();
// Create a new logger factory.
// It is important to keep the LoggerFactory instance active throughout the process lifetime.
// See https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/docs/logs#logger-management
var loggerFactory = LoggerFactory.Create(builder =>
{
builder.AddOpenTelemetry(logging =>
{
logging.AddAzureMonitorLogExporter();
});
});
Automatische instrumentatie wordt ingeschakeld via configuratiewijzigingen. Er zijn geen codewijzigingen vereist.
Wijs de virtuele Java-machine (JVM) aan het JAR-bestand door deze toe te voegen aan -javaagent:"path/to/applicationinsights-agent-3.6.2.jar" de JVM-argumenten van uw toepassing.
Notitie
Steekproeven worden standaard ingeschakeld met een snelheid van 5 aanvragen per seconde, met ondersteuning voor kostenbeheer. Telemetriegegevens ontbreken mogelijk in scenario's die deze snelheid overschrijden. Zie steekproefoverschrijvingen voor meer informatie over het wijzigen van de samplingconfiguratie.
Automatische instrumentatie wordt ingeschakeld via configuratiewijzigingen. Er zijn geen codewijzigingen vereist.
// Import the `useAzureMonitor()` function from the `@azure/monitor-opentelemetry` package.
const { useAzureMonitor } = require("@azure/monitor-opentelemetry");
// Call the `useAzureMonitor()` function to configure OpenTelemetry to use Azure Monitor.
useAzureMonitor();
import logging
# Import the `configure_azure_monitor()` function from the
# `azure.monitor.opentelemetry` package.
from azure.monitor.opentelemetry import configure_azure_monitor
# Configure OpenTelemetry to use Azure Monitor with the
# APPLICATIONINSIGHTS_CONNECTION_STRING environment variable.
configure_azure_monitor(
logger_name="<your_logger_namespace>", # Set the namespace for the logger in which you would like to collect telemetry for if you are collecting logging telemetry. This is imperative so you do not collect logging telemetry from the SDK itself.
)
logger = logging.getLogger("<your_logger_namespace>") # Logging telemetry will be collected from logging calls made with this logger and all of it's children loggers.
Kopieer de verbindingsreeks uit uw Application Insights-resource
De verbindingsreeks is uniek en geeft aan waar de Azure Monitor OpenTelemetry Distro de telemetrie verzendt die wordt verzameld.
Tip
Als u nog geen Application Insights-resource hebt, maakt u er een aan de hand van deze handleiding. U wordt aangeraden een nieuwe resource te maken in plaats van een bestaande resource te gebruiken.
De verbindingsreeks kopiëren:
Ga naar het deelvenster Overzicht van uw Application Insights-resource.
Zoek uw verbindingsreeks.
Beweeg de muisaanwijzer over de verbindingsreeks en selecteer het pictogram Kopiëren naar klembord.
Plak de verbindingsreeks in uw omgeving
Als u uw verbindingsreeks wilt plakken, selecteert u een van de volgende opties:
Belangrijk
U wordt aangeraden de verbindingsreeks alleen in lokale ontwikkel- en testomgevingen in te stellen via code.
Gebruik voor productie een omgevingsvariabele of configuratiebestand (alleen Java).
Instellen via omgevingsvariabele - aanbevolen
Vervang <Your connection string> in de volgende opdracht door uw verbindingsreeks.
Maak een configuratiebestand met de naam applicationinsights.jsonen plaats het in dezelfde map als applicationinsights-agent-3.6.2.jar met de volgende inhoud:
Als u de verbindingsreeks op meerdere plaatsen instelt, krijgt de omgevingsvariabele prioriteit in de volgende volgorde:
Code
Omgevingsvariabele
Configuratiebestand
Bevestigen dat de gegevens stromen
Voer uw toepassing uit en open Application Insights in Azure Portal. Het kan enkele minuten duren voordat gegevens worden weergegeven.
Application Insights is nu ingeschakeld voor uw toepassing. De volgende stappen zijn optioneel en maken verdere aanpassingen mogelijk.
Belangrijk
Als u twee of meer services hebt die telemetrie verzenden naar dezelfde Application Insights-resource, moet u cloudrolnamen instellen om deze correct weer te geven op het toepassingsoverzicht.
Als onderdeel van het gebruik van Application Insights-instrumentatie verzamelen en verzenden we diagnostische gegevens naar Microsoft. Met deze gegevens kunnen we Application Insights uitvoeren en verbeteren. Zie Statsbeat in Azure-toepassing Insights voor meer informatie.
Voorbeeldtoepassingen
Azure Monitor OpenTelemetry-voorbeeldtoepassingen zijn beschikbaar voor alle ondersteunde talen:
Als u de broncode wilt bekijken, raadpleegt u de GitHub-opslagplaats van de Azure Monitor-exporteur.
Als u het NuGet-pakket wilt installeren, controleert u op updates of bekijkt u de releaseopmerkingen op de pagina NuGet-pakket van Azure Monitor Exporter.
Meer informatie over waarneembaarheid en het implementeren ervan in een cloudeigen toepassing. Gebruik OpenTelemetry-pakketten om logboeken, metrische gegevens en traceringsgegevens uit te voeren en de gegevens in Application Insights en toepassingen van derden te analyseren.
Build end-to-end solutions in Microsoft Azure to create Azure Functions, implement and manage web apps, develop solutions utilizing Azure storage, and more.