Den här guiden innehåller stegvisa instruktioner för att migrera olika .NET-program från att använda Application Insights-programutvecklingspaket (SDK:er) till Azure Monitor OpenTelemetry.
Förvänta dig en liknande upplevelse med Azure Monitor OpenTelemetry-instrumentation som med Application Insights SDK:er. Mer information och en jämförelse av funktioner finns i versionstillstånd för funktioner.
Om du kommer igång med Application Insights och inte behöver migrera från det klassiska API:et, se Aktivera Azure Monitor OpenTelemetry.
Förutsättningar
- Ett ASP.NET Core-webbprogram som redan har instrumenterats med Application Insights utan några anpassningar
- En version av .NET som stöds aktivt
- Ett konsolprogram som redan har instrumenterats med Application Insights
- En aktivt stödd version av .NET Framework eller .NET
- Ett WorkerService-program som redan har instrumenterats med Application Insights utan några anpassningar
- En version av .NET som stöds aktivt
Tips
Vår produktgrupp söker aktivt feedback om den här dokumentationen. Ge feedback till otel@microsoft.com eller se avsnittet Support .
Ta bort Application Insights SDK
Kommentar
Innan du fortsätter med de här stegen bör du bekräfta att du har en aktuell säkerhetskopia av programmet.
Ta bort NuGet-paket
Ta bort Microsoft.ApplicationInsights.AspNetCore-paketet från din csproj.
dotnet remove package Microsoft.ApplicationInsights.AspNetCore
Ta bort initieringskod och anpassningar
Ta bort alla referenser till Application Insights-typer i din kodbas.
Tips
När du har tagit bort Application Insights-paketet kan du återskapa ditt program för att hämta en lista med referenser som måste tas bort.
Ta bort Application Insights från din ServiceCollection genom att ta bort följande rad:
builder.Services.AddApplicationInsightsTelemetry();
Ta bort ApplicationInsights-avsnittet från din appsettings.json.
{
"ApplicationInsights": {
"ConnectionString": "<Your Connection String>"
}
}
Rensa och bygga
Kontrollera din bin-katalog för att verifiera att alla referenser till Microsoft.ApplicationInsights.* har tagits bort.
Testa ditt program
Kontrollera att programmet inte har några oväntade konsekvenser.
Ta bort NuGet-paket
Ta bort Microsoft.AspNet.TelemetryCorrelation-paketet och eventuella Microsoft.ApplicationInsights.*-paket från dina csproj och packages.config.
ApplicationInsights.config Ta bort filen
Ta bort avsnitt från programmets Web.config fil
Två HttpModules lades automatiskt till i din web.config när du först lade till ApplicationInsights i projektet.
Alla referenser till TelemetryCorrelationHttpModule och ApplicationInsightsWebTracking bör tas bort.
Om du har lagt till Application Insights i dina IIS-moduler (Internet Information Server) bör det också tas bort.
<configuration>
<system.web>
<httpModules>
<add name="TelemetryCorrelationHttpModule" type="Microsoft.AspNet.TelemetryCorrelation.TelemetryCorrelationHttpModule, Microsoft.AspNet.TelemetryCorrelation" />
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" />
</httpModules>
</system.web>
<system.webServer>
<modules>
<remove name="TelemetryCorrelationHttpModule" />
<add name="TelemetryCorrelationHttpModule" type="Microsoft.AspNet.TelemetryCorrelation.TelemetryCorrelationHttpModule, Microsoft.AspNet.TelemetryCorrelation" preCondition="managedHandler" />
<remove name="ApplicationInsightsWebTracking" />
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" />
</modules>
</system.webServer>
</configuration>
Granska även eventuella omdirigeringar av sammansättningsversioner som har lagts till i din web.config.
Ta bort initieringskod och anpassningar
Ta bort alla referenser till Application Insights-typer i din kodbas.
Tips
När du har tagit bort Application Insights-paketet kan du återskapa ditt program för att hämta en lista med referenser som måste tas bort.
- Ta bort referenser till
TelemetryConfiguration eller TelemetryClient. Det är en del av programstarten för att initiera Application Insights SDK.
Följande scenarier är valfria och gäller för avancerade användare.
- Om du har fler referenser till
TelemetryClient, som används för att registrera telemetri manuellt, bör de tas bort.
- Om du har lagt till någon anpassad filtrering eller berikning i form av en anpassad
TelemetryProcessor eller TelemetryInitializer, bör de tas bort. Du hittar dem som hänvisas till i din konfiguration.
- Om ditt projekt har en
FilterConfig.cs i App_Start-katalogen, kontrollera om det finns anpassade undantagshanterare som refererar till Application Insights och ta bort dem.
Ta bort JavaScript-kodfragment
Om du har lagt till JavaScript SDK för att samla in telemetri på klientsidan kan den också tas bort även om den fortsätter att fungera utan .NET SDK.
Fullständiga kodexempel på vad du vill ta bort finns i registreringsguiden för JavaScript SDK.
Ta bort alla Visual Studio-artefakter
Om du använde Visual Studio för att registrera dig för Application Insights kan du ha fler filer kvar i projektet.
ConnectedService.json kan innehålla en hänvisning till din Application Insights-resurs.
[Your project's name].csproj kan innehålla en referens till din Application Insights-resurs:
<ApplicationInsightsResourceId>/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/Default-ApplicationInsights-EastUS/providers/microsoft.insights/components/WebApplication4</ApplicationInsightsResourceId>
Rensa och bygga
Kontrollera din bin-katalog för att verifiera att alla referenser till Microsoft.ApplicationInsights. har tagits bort.
Testa ditt program
Kontrollera att programmet inte har några oväntade konsekvenser.
Ta bort NuGet-paket
Ta bort alla Microsoft.ApplicationInsights.* paket från din csproj och packages.config.
dotnet remove package Microsoft.ApplicationInsights
Ta bort initieringskod och anpassningar
Ta bort alla referenser till Application Insights-typer i din kodbas.
Tips
När du har tagit bort Application Insights-paketet kan du återskapa ditt program för att hämta en lista med referenser som måste tas bort.
Ta bort referenser till TelemetryConfiguration eller TelemetryClient. Det bör vara en del av programstarten för att initiera Application Insights SDK.
var config = TelemetryConfiguration.CreateDefault();
var client = new TelemetryClient(config);
Tips
Om du har använt AddApplicationInsightsTelemetryWorkerService() för att lägga till Application Insights i din ServiceCollection, se avsnitten WorkerService.
Rensa och bygga
Kontrollera din bin-katalog för att verifiera att alla referenser till Microsoft.ApplicationInsights. har tagits bort.
Testa ditt program
Kontrollera att programmet inte har några oväntade konsekvenser.
Ta bort NuGet-paket
Ta bort Microsoft.ApplicationInsights.WorkerService-paketet från din csproj.
dotnet remove package Microsoft.ApplicationInsights.WorkerService
Ta bort initieringskod och anpassningar
Ta bort alla referenser till Application Insights-typer i din kodbas.
Tips
När du har tagit bort Application Insights-paketet kan du återskapa ditt program för att hämta en lista med referenser som måste tas bort.
Ta bort Application Insights från din ServiceCollection genom att ta bort följande rad:
builder.Services.AddApplicationInsightsTelemetryWorkerService();
Ta bort ApplicationInsights-avsnittet från din appsettings.json.
{
"ApplicationInsights": {
"ConnectionString": "<Your Connection String>"
}
}
Rensa och bygga
Kontrollera din bin-katalog för att verifiera att alla referenser till Microsoft.ApplicationInsights.* har tagits bort.
Testa ditt program
Kontrollera att programmet inte har några oväntade konsekvenser.
Tips
Vår produktgrupp söker aktivt feedback om den här dokumentationen. Ge feedback till otel@microsoft.com eller se avsnittet Support .
Aktivera OpenTelemetry
Vi rekommenderar att du skapar en utvecklingsresurs och använder dess anslutningssträng när du följer dessa instruktioner.
Planera att uppdatera anslutningssträng för att skicka telemetri till den ursprungliga resursen när du har bekräftat att migreringen har slutförts.
Installera Azure Monitor-distributionen
Vår Azure Monitor-distribution möjliggör automatisk telemetri genom att inkludera OpenTelemetry-instrumentationsbibliotek för insamling av spårningar, mått, loggar och undantag, och tillåter insamling av anpassad telemetri.
När du installerar Azure Monitor Distro får OpenTelemetry SDK som ett beroende.
dotnet add package Azure.Monitor.OpenTelemetry.AspNetCore
Lägga till och konfigurera både OpenTelemetry och Azure Monitor
Det OpenTelemery SDK måste konfigureras vid programstart som en del av din ServiceCollection, vanligtvis i Program.cs.
OpenTelemetry har begreppet tre signaler; Spårningar, mått och loggar.
Azure Monitor Distro konfigurerar var och en av dessa signaler.
Program.cs
Följande kodexempel visar grunderna.
using Azure.Monitor.OpenTelemetry.AspNetCore;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
public class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
// Call AddOpenTelemetry() to add OpenTelemetry to your ServiceCollection.
// Call UseAzureMonitor() to fully configure OpenTelemetry.
builder.Services.AddOpenTelemetry().UseAzureMonitor();
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();
}
}
Vi rekommenderar att du ställer in anslutningssträngen i en miljövariabel:
APPLICATIONINSIGHTS_CONNECTION_STRING=<Your Connection String>
Fler alternativ för att konfigurera anslutningssträngen beskrivs här: Konfigurera Application Insights-anslutningssträngen.
Installera OpenTelemetry SDK via Azure Monitor
När du installerar Azure Monitor Exporter medför det att OpenTelemetry SDK inkluderas som ett beroende.
dotnet add package Azure.Monitor.OpenTelemetry.Exporter
Konfigurera OpenTelemetry som en del av programstarten
OpenTelemery SDK måste konfigureras vid programstart, vanligtvis i Global.asax.cs.
OpenTelemetry har begreppet tre signaler; Spårningar, mått och loggar.
Var och en av dessa signaler måste konfigureras som en del av programstarten.
TracerProvider, MeterProvider, och ILoggerFactory bör skapas en gång för ditt program och tas bort när programmet stängs av.
Global.asax.cs
Följande kodexempel visar ett enkelt exempel som endast är avsett att visa grunderna.
Ingen telemetri samlas in just nu.
using Microsoft.Extensions.Logging;
using OpenTelemetry;
using OpenTelemetry.Metrics;
using OpenTelemetry.Trace;
public class Global : System.Web.HttpApplication
{
private TracerProvider? tracerProvider;
private MeterProvider? meterProvider;
// The LoggerFactory needs to be accessible from the rest of your application.
internal static ILoggerFactory loggerFactory;
protected void Application_Start()
{
this.tracerProvider = Sdk.CreateTracerProviderBuilder()
.Build();
this.meterProvider = Sdk.CreateMeterProviderBuilder()
.Build();
loggerFactory = LoggerFactory.Create(builder =>
{
builder.AddOpenTelemetry();
});
}
protected void Application_End()
{
this.tracerProvider?.Dispose();
this.meterProvider?.Dispose();
loggerFactory?.Dispose();
}
}
Installera OpenTelemetry SDK via Azure Monitor
När du installerar Azure Monitor Exporter får du OpenTelemetry SDK som ett beroende.
dotnet add package Azure.Monitor.OpenTelemetry.Exporter
Konfigurera OpenTelemetry som en del av programstarten
OpenTelemery SDK måste konfigureras vid programstart, vanligtvis i Program.cs.
OpenTelemetry har begreppet tre signaler; Spårningar, mått och loggar.
Var och en av dessa signaler måste konfigureras som en del av programstarten.
TracerProvider, MeterProvider, och ILoggerFactory bör skapas en gång för ditt program och tas bort när programmet stängs av.
Följande kodexempel visar ett enkelt exempel som endast är avsett att visa grunderna.
Ingen telemetri samlas in just nu.
Program.cs
using Microsoft.Extensions.Logging;
using OpenTelemetry;
using OpenTelemetry.Metrics;
using OpenTelemetry.Trace;
internal class Program
{
static void Main(string[] args)
{
TracerProvider tracerProvider = Sdk.CreateTracerProviderBuilder()
.Build();
MeterProvider meterProvider = Sdk.CreateMeterProviderBuilder()
.Build();
ILoggerFactory loggerFactory = LoggerFactory.Create(builder =>
{
builder.AddOpenTelemetry();
});
Console.WriteLine("Hello, World!");
// Dispose tracer provider before the application ends.
// It will flush the remaining spans and shutdown the tracing pipeline.
tracerProvider.Dispose();
// Dispose meter provider before the application ends.
// It will flush the remaining metrics and shutdown the metrics pipeline.
meterProvider.Dispose();
// Dispose logger factory before the application ends.
// It will flush the remaining logs and shutdown the logging pipeline.
loggerFactory.Dispose();
}
}
Installera OpenTelemetry SDK via Azure Monitor
När du installerar Azure Monitor Exporter får du OpenTelemetry SDK som ett beroende.
dotnet add package Azure.Monitor.OpenTelemetry.Exporter
Du måste också installera OpenTelemetry Extensions Hosting-paketet .
dotnet add package OpenTelemetry.Extensions.Hosting
Konfigurera OpenTelemetry som en del av programstarten
OpenTelemery SDK måste konfigureras vid programstart, vanligtvis i Program.cs.
OpenTelemetry har begreppet tre signaler; Spårningar, mått och loggar.
Var och en av dessa signaler måste konfigureras som en del av programstarten.
TracerProvider, MeterProvider, och ILoggerFactory bör skapas en gång för ditt program och tas bort när programmet stängs av.
Följande kodexempel visar ett enkelt exempel som endast är avsett att visa grunderna.
Ingen telemetri samlas in just nu.
Program.cs
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
public class Program
{
public static void Main(string[] args)
{
var builder = Host.CreateApplicationBuilder(args);
builder.Services.AddHostedService<Worker>();
builder.Services.AddOpenTelemetry()
.WithTracing()
.WithMetrics();
builder.Logging.AddOpenTelemetry();
var host = builder.Build();
host.Run();
}
}
Tips
Vår produktgrupp söker aktivt feedback om den här dokumentationen. Ge feedback till otel@microsoft.com eller se avsnittet Support .
Instrumentationsbibliotek kan läggas till i projektet för automatisk insamling av telemetri om specifika komponenter eller beroenden.
Följande bibliotek ingår i distributionen.
Anpassa instrumentationsbibliotek
Azure Monitor Distro innehåller .NET OpenTelemetry-instrumentation för ASP.NET Core, HttpClient och SQLClient.
Du kan anpassa dessa inkluderade instrumentationer eller manuellt lägga till extra instrumentation på egen hand med hjälp av OpenTelemetry-API:et.
Här följer några exempel på hur du anpassar instrumentationen:
Konfigurera AspNetCoreTraceInstrumentationOptions
builder.Services.AddOpenTelemetry().UseAzureMonitor();
builder.Services.Configure<AspNetCoreTraceInstrumentationOptions>(options =>
{
options.RecordException = true;
options.Filter = (httpContext) =>
{
// only collect telemetry about HTTP GET requests
return HttpMethods.IsGet(httpContext.Request.Method);
};
});
Anpassning av HttpClientTraceInstrumentationOptions
builder.Services.AddOpenTelemetry().UseAzureMonitor();
builder.Services.Configure<HttpClientTraceInstrumentationOptions>(options =>
{
options.RecordException = true;
options.FilterHttpRequestMessage = (httpRequestMessage) =>
{
// only collect telemetry about HTTP GET requests
return HttpMethods.IsGet(httpRequestMessage.Method.Method);
};
});
Anpassa SqlClientInstrumentationOptions
Vi tillhandahåller SQLClient-instrumentationen i vårt paket medan den fortfarande är i betaversion. När den når en stabil version tar vi med den som en standardpaketreferens. Tills dess, för att anpassa SQLClient-instrumentationen, lägger du till OpenTelemetry.Instrumentation.SqlClient paketreferensen till projektet och använder dess offentliga API.
dotnet add package --prerelease OpenTelemetry.Instrumentation.SqlClient
builder.Services.AddOpenTelemetry().UseAzureMonitor().WithTracing(builder =>
{
builder.AddSqlClientInstrumentation(options =>
{
options.SetDbStatementForStoredProcedure = false;
});
});
Instrumentationsbibliotek kan läggas till i projektet för automatisk insamling av telemetri om specifika komponenter eller beroenden. Vi rekommenderar följande bibliotek:
OpenTelemetry.Instrumentation.AspNet kan användas för att samla in telemetri för inkommande begäranden. Azure Monitor mappar den till Requesttelemetri.
dotnet add package OpenTelemetry.Instrumentation.AspNet
Det kräver att du lägger till en extra HttpModule i Web.config.
<system.webServer>
<modules>
<add
name="TelemetryHttpModule"
type="OpenTelemetry.Instrumentation.AspNet.TelemetryHttpModule,
OpenTelemetry.Instrumentation.AspNet.TelemetryHttpModule"
preCondition="integratedMode,managedHandler" />
</modules>
</system.webServer>
En fullständig komma igång-guide finns här: OpenTelemetry.Instrumentation.AspNet Readme
OpenTelemetry.Instrumentation.Http kan användas för att samla in telemetri för utgående http-beroenden. Azure Monitor mappar den till beroendetelemetri.
dotnet add package OpenTelemetry.Instrumentation.Http
En fullständig komma igång-guide finns här: OpenTelemetry.Instrumentation.Http Readme
OpenTelemetry.Instrumentation.SqlClient kan användas för att samla in telemetri för MS SQL-beroenden. Azure Monitor mappar den till beroendetelemetri.
dotnet add package --prerelease OpenTelemetry.Instrumentation.SqlClient
En fullständig komma igång-guide finns här: OpenTelemetry.Instrumentation.SqlClient Readme
Global.asax.cs
Följande kodexempel expanderar i föregående exempel.
Den samlar nu in telemetri, men skickas ännu inte till Application Insights.
using Microsoft.Extensions.Logging;
using OpenTelemetry;
using OpenTelemetry.Metrics;
using OpenTelemetry.Trace;
public class Global : System.Web.HttpApplication
{
private TracerProvider? tracerProvider;
private MeterProvider? meterProvider;
internal static ILoggerFactory loggerFactory;
protected void Application_Start()
{
this.tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddAspNetInstrumentation()
.AddHttpClientInstrumentation()
.AddSqlClientInstrumentation()
.Build();
this.meterProvider = Sdk.CreateMeterProviderBuilder()
.AddAspNetInstrumentation()
.AddHttpClientInstrumentation()
.Build();
loggerFactory = LoggerFactory.Create(builder =>
{
builder.AddOpenTelemetry();
});
}
protected void Application_End()
{
this.tracerProvider?.Dispose();
this.meterProvider?.Dispose();
loggerFactory?.Dispose();
}
}
Instrumentationsbibliotek kan läggas till i projektet för automatisk insamling av telemetri om specifika komponenter eller beroenden. Vi rekommenderar följande bibliotek:
OpenTelemetry.Instrumentation.Http kan användas för att samla in telemetri för utgående http-beroenden. Azure Monitor mappar den till beroendetelemetri.
dotnet add package OpenTelemetry.Instrumentation.Http
En fullständig komma igång-guide finns här: OpenTelemetry.Instrumentation.Http Readme
OpenTelemetry.Instrumentation.SqlClient kan användas för att samla in telemetri för MS SQL-beroenden. Azure Monitor mappar den till beroendetelemetri.
dotnet add package --prerelease OpenTelemetry.Instrumentation.SqlClient
En fullständig komma igång-guide finns här: OpenTelemetry.Instrumentation.SqlClient Readme
Följande kodexempel expanderar i föregående exempel.
Den samlar nu in telemetri, men skickas ännu inte till Application Insights.
Program.cs
using Microsoft.Extensions.Logging;
using OpenTelemetry;
using OpenTelemetry.Metrics;
using OpenTelemetry.Trace;
internal class Program
{
static void Main(string[] args)
{
TracerProvider tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddHttpClientInstrumentation()
.AddSqlClientInstrumentation()
.Build();
MeterProvider meterProvider = Sdk.CreateMeterProviderBuilder()
.AddHttpClientInstrumentation()
.Build();
ILoggerFactory loggerFactory = LoggerFactory.Create(builder =>
{
builder.AddOpenTelemetry();
});
Console.WriteLine("Hello, World!");
tracerProvider.Dispose();
meterProvider.Dispose();
loggerFactory.Dispose();
}
}
Instrumentationsbibliotek kan läggas till i projektet för automatisk insamling av telemetri om specifika komponenter eller beroenden. Vi rekommenderar följande bibliotek:
OpenTelemetry.Instrumentation.Http kan användas för att samla in telemetri för utgående http-beroenden. Azure Monitor mappar den till beroendetelemetri.
dotnet add package OpenTelemetry.Instrumentation.Http
En fullständig komma igång-guide finns här: OpenTelemetry.Instrumentation.Http Readme
OpenTelemetry.Instrumentation.SqlClient kan användas för att samla in telemetri för MS SQL-beroenden. Azure Monitor mappar den till beroendetelemetri.
dotnet add package --prerelease OpenTelemetry.Instrumentation.SqlClient
En fullständig komma igång-guide finns här: OpenTelemetry.Instrumentation.SqlClient Readme
Följande kodexempel expanderar i föregående exempel.
Den samlar nu in telemetri, men skickas ännu inte till Application Insights.
Program.cs
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
public class Program
{
public static void Main(string[] args)
{
var builder = Host.CreateApplicationBuilder(args);
builder.Services.AddHostedService<Worker>();
builder.Services.AddOpenTelemetry()
.WithTracing(builder =>
{
builder.AddHttpClientInstrumentation();
builder.AddSqlClientInstrumentation();
})
.WithMetrics(builder =>
{
builder.AddHttpClientInstrumentation();
});
builder.Logging.AddOpenTelemetry();
var host = builder.Build();
host.Run();
}
}
Application Insights erbjöd många fler konfigurationsalternativ via ApplicationInsightsServiceOptions.
| Application Insights-inställning |
Alternativ till OpenTelemetry |
| LäggTillAutomatisktInsamladMetrikExtraktor |
Ej tillämpligt |
| Applikationsversion |
Ange "service.version" på Resurs |
| Anslutningssträng |
Se anvisningar om hur du konfigurerar anslutningssträngen. |
| Alternativ för Samling av Beroenden |
Saknas. Om du vill anpassa beroenden läser du de tillgängliga konfigurationsalternativen för tillämpliga instrumentationsbibliotek. |
| Utvecklarläge |
Ej tillämpligt |
| AktiveraInställningFörAktivTelemetrikonfiguration |
Ej tillämpligt |
| Aktivera adaptiv provtagning |
Saknas. Endast fast taktprovtagning stöds. |
| AktiveraAppTjänsterHjärtslagsTelemetriModul |
Ej tillämpligt |
| AktiveraAutentiseringsSpårningsJavaScript |
Ej tillämpligt |
| Aktivera Azure Instance Metadata Telemetry Module |
Ej tillämpligt |
| Aktivera beroendespårningsmodulen för telemetri |
Se instruktioner för filtrering av spårningar. |
| AktiveraDiagnostikTelemetrimodul |
Ej tillämpligt |
| AktiveraHändelseRäknarInsamlingsModul |
Ej tillämpligt |
| AktiveraHjärtslag |
Ej tillämpligt |
| AktiveraPrestationsräknarInsamlingsModul |
Ej tillämpligt |
| Aktivera snabbpulsmätarström |
AzureMonitorOptions.EnableLiveMetrics |
| Aktivera förfrågningsspårnings-telemetrimodul |
Se instruktioner för filtrering av spårningar. |
| Slutpunktsadress |
Använd ConnectionString. |
| Instrumentationsnyckel |
Använd ConnectionString. |
| BegäranOmInsamlingsalternativ |
Saknas. Se Alternativ för OpenTelemetry.Instrumentation.AspNetCore. |
Ta bort anpassade konfigurationer
Följande scenarier är valfria och gäller endast för avancerade användare.
Om du har fler referenser till TelemetryClient, som kan användas för att manuellt registrera telemetri, bör de tas bort.
Om du har lagt till någon anpassad filtrering eller berikning i form av en anpassad TelemetryProcessor eller TelemetryInitializer, bör de tas bort. De finns i din ServiceCollection.
builder.Services.AddSingleton<ITelemetryInitializer, MyCustomTelemetryInitializer>();
builder.Services.AddApplicationInsightsTelemetryProcessor<MyCustomTelemetryProcessor>();
Ta bort JavaScript-kodfragment
Om du använde kodfragmentet som tillhandahålls av Application Insights .NET SDK måste det också tas bort.
Fullständiga kodexempel på vad du vill ta bort finns i guiden aktivera telemetri på klientsidan för webbprogram.
Om du har lagt till JavaScript SDK för att samla in telemetri på klientsidan kan den också tas bort även om den fortsätter att fungera utan .NET SDK.
Fullständiga kodexempel på vad du vill ta bort finns i registreringsguiden för JavaScript SDK.
Ta bort alla Visual Studio-artefakter
Om du använde Visual Studio för att registrera dig för Application Insights kan du ha fler filer kvar i projektet.
-
Properties/ServiceDependencies-katalogen kan ha en referens till Application Insights-resursen.
Om du vill skicka telemetrin till Application Insights måste Azure Monitor-exportören läggas till i konfigurationen av alla tre signalerna.
Global.asax.cs
Följande kodexempel expanderar i föregående exempel.
Nu samlar den in telemetri och skickar till Application Insights.
public class Global : System.Web.HttpApplication
{
private TracerProvider? tracerProvider;
private MeterProvider? meterProvider;
internal static ILoggerFactory loggerFactory;
protected void Application_Start()
{
this.tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddAspNetInstrumentation()
.AddHttpClientInstrumentation()
.AddSqlClientInstrumentation()
.AddAzureMonitorTraceExporter()
.Build();
this.meterProvider = Sdk.CreateMeterProviderBuilder()
.AddAspNetInstrumentation()
.AddHttpClientInstrumentation()
.AddAzureMonitorMetricExporter()
.Build();
loggerFactory = LoggerFactory.Create(builder =>
{
builder.AddOpenTelemetry(logging => logging.AddAzureMonitorLogExporter());
});
}
protected void Application_End()
{
this.tracerProvider?.Dispose();
this.meterProvider?.Dispose();
loggerFactory?.Dispose();
}
}
Vi rekommenderar att du ställer in anslutningssträngen i en miljövariabel:
APPLICATIONINSIGHTS_CONNECTION_STRING=<Your Connection String>
Fler alternativ för att konfigurera anslutningssträngen beskrivs här: Konfigurera Application Insights-anslutningssträngen.
Om du vill skicka telemetrin till Application Insights måste Azure Monitor-exportören läggas till i konfigurationen av alla tre signalerna.
Program.cs
Följande kodexempel expanderar i föregående exempel.
Nu samlar den in telemetri och skickar till Application Insights.
using Microsoft.Extensions.Logging;
using OpenTelemetry;
using OpenTelemetry.Metrics;
using OpenTelemetry.Trace;
internal class Program
{
static void Main(string[] args)
{
TracerProvider tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddHttpClientInstrumentation()
.AddSqlClientInstrumentation()
.AddAzureMonitorTraceExporter()
.Build();
MeterProvider meterProvider = Sdk.CreateMeterProviderBuilder()
.AddHttpClientInstrumentation()
.AddAzureMonitorMetricExporter()
.Build();
ILoggerFactory loggerFactory = LoggerFactory.Create(builder =>
{
builder.AddOpenTelemetry(logging => logging.AddAzureMonitorLogExporter());
});
Console.WriteLine("Hello, World!");
tracerProvider.Dispose();
meterProvider.Dispose();
loggerFactory.Dispose();
}
}
Vi rekommenderar att du ställer in anslutningssträngen i en miljövariabel:
APPLICATIONINSIGHTS_CONNECTION_STRING=<Your Connection String>
Fler alternativ för att konfigurera anslutningssträngen beskrivs här: Konfigurera Application Insights-anslutningssträngen.
Ta bort anpassade konfigurationer
Följande scenarier är valfria och gäller för avancerade användare.
Om du har fler referenser till TelemetryClient, som används för att registrera telemetri manuellt, bör de tas bort.
Ta bort anpassad filtrering eller berikning som har lagts till som en TelemetryProcessor eller TelemetryInitializer. Konfigurationen refererar till dem.
Ta bort alla Visual Studio-artefakter
Om du använde Visual Studio för att registrera dig för Application Insights kan du ha fler filer kvar i projektet.
ConnectedService.json kan innehålla en hänvisning till din Application Insights-resurs.
[Your project's name].csproj kan innehålla en referens till din Application Insights-resurs:
<ApplicationInsightsResourceId>/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/Default-ApplicationInsights-EastUS/providers/microsoft.insights/components/WebApplication4</ApplicationInsightsResourceId>
Om du vill skicka telemetrin till Application Insights måste Azure Monitor-exportören läggas till i konfigurationen av alla tre signalerna.
Program.cs
Följande kodexempel expanderar i föregående exempel.
Nu samlar den in telemetri och skickar till Application Insights.
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
public class Program
{
public static void Main(string[] args)
{
var builder = Host.CreateApplicationBuilder(args);
builder.Services.AddHostedService<Worker>();
builder.Services.AddOpenTelemetry()
.WithTracing(builder =>
{
builder.AddHttpClientInstrumentation();
builder.AddSqlClientInstrumentation();
builder.AddAzureMonitorTraceExporter();
})
.WithMetrics(builder =>
{
builder.AddHttpClientInstrumentation();
builder.AddAzureMonitorMetricExporter();
});
builder.Logging.AddOpenTelemetry(logging => logging.AddAzureMonitorLogExporter());
var host = builder.Build();
host.Run();
}
}
Vi rekommenderar att du ställer in anslutningssträngen i en miljövariabel:
APPLICATIONINSIGHTS_CONNECTION_STRING=<Your Connection String>
Fler alternativ för att konfigurera anslutningssträngen beskrivs här: Konfigurera Application Insights-anslutningssträngen.
Fler konfigurationer
Application Insights erbjöd många fler konfigurationsalternativ via ApplicationInsightsServiceOptions.
| Application Insights-inställning |
Alternativ till OpenTelemetry |
| LäggTillAutomatisktInsamladMetrikExtraktor |
Ej tillämpligt |
| Applikationsversion |
Ange "service.version" på Resurs |
| Anslutningssträng |
Se anvisningar om hur du konfigurerar anslutningssträngen. |
| Alternativ för Samling av Beroenden |
Saknas. Om du vill anpassa beroenden läser du de tillgängliga konfigurationsalternativen för tillämpliga instrumentationsbibliotek. |
| Utvecklarläge |
Ej tillämpligt |
| Aktivera adaptiv provtagning |
Saknas. Endast fast taktprovtagning stöds. |
| AktiveraAppTjänsterHjärtslagsTelemetriModul |
Ej tillämpligt |
| Aktivera Azure Instance Metadata Telemetry Module |
Ej tillämpligt |
| Aktivera beroendespårningsmodulen för telemetri |
Se instruktioner för filtrering av spårningar. |
| AktiveraDiagnostikTelemetrimodul |
Ej tillämpligt |
| AktiveraHändelseRäknarInsamlingsModul |
Ej tillämpligt |
| AktiveraHjärtslag |
Ej tillämpligt |
| AktiveraPrestationsräknarInsamlingsModul |
Ej tillämpligt |
| Aktivera snabbpulsmätarström |
AzureMonitorOptions.EnableLiveMetrics |
| Slutpunktsadress |
Använd ConnectionString. |
| Instrumentationsnyckel |
Använd ConnectionString. |
Ta bort anpassade konfigurationer
Följande scenarier är valfria och gäller för avancerade användare.
Om du har fler referenser till TelemetryClient, som används för att registrera telemetri manuellt, bör de tas bort.
Om du har lagt till någon anpassad filtrering eller berikning i form av en anpassad TelemetryProcessor eller TelemetryInitializer, bör den tas bort. Du hittar dina referenser i ServiceCollection.
builder.Services.AddSingleton<ITelemetryInitializer, MyCustomTelemetryInitializer>();
builder.Services.AddApplicationInsightsTelemetryProcessor<MyCustomTelemetryProcessor>();
Ta bort alla Visual Studio-artefakter
Om du använde Visual Studio för att registrera dig för Application Insights kan du ha fler filer kvar i projektet.
-
Properties/ServiceDependencies-katalogen kan ha en referens till Application Insights-resursen.
Tips
Vår produktgrupp söker aktivt feedback om den här dokumentationen. Ge feedback till otel@microsoft.com eller se avsnittet Support .
Nästa steg
Tips
Vår produktgrupp söker aktivt feedback om den här dokumentationen. Ge feedback till otel@microsoft.com eller se avsnittet Support .
Stöd