Deze handleiding bevat stapsgewijze instructies voor het migreren van verschillende .NET-toepassingen van het gebruik van Application Insights SDK's (Software Development Kits) naar Azure Monitor OpenTelemetry.
Verwacht een vergelijkbare ervaring met Azure Monitor OpenTelemetry-instrumentatie als met de Application Insights SDK's. Zie de releasestatus van functies voor meer informatie en een functie-per-functievergelijking.
Als u aan de slag gaat met Application Insights en u niet hoeft te migreren vanuit de klassieke API, bekijkt u Azure Monitor OpenTelemetry inschakelen.
Vereisten
- Een ASP.NET Core-webtoepassing die al is geïnstruineerd met Application Insights zonder aanpassingen
- Een actief ondersteunde versie van .NET
- Een ASP.NET-webtoepassing die al is geïnstrukt met Application Insights
- Een actief ondersteunde versie van .NET Framework
- Een consoletoepassing die al is geïnstrukt met Application Insights
- Een actief ondersteunde versie van .NET Framework of .NET
- Een WorkerService-toepassing die al is geïnstruineerd met Application Insights zonder aanpassingen
- Een actief ondersteunde versie van .NET
Aanbeveling
Onze productgroep zoekt actief naar feedback over deze documentatie. Geef feedback voor otel@microsoft.com of zie de sectie Ondersteuning .
De Application Insights-SDK verwijderen
Notitie
Voordat u doorgaat met deze stappen, moet u bevestigen dat u een huidige back-up van uw toepassing hebt.
NuGet-pakketten verwijderen
Verwijder het Microsoft.ApplicationInsights.AspNetCore
pakket uit uw csproj
.
dotnet remove package Microsoft.ApplicationInsights.AspNetCore
Initialisatiecode en aanpassingen verwijderen
Verwijder verwijzingen naar Application Insights-typen in uw codebasis.
Aanbeveling
Nadat u het Application Insights-pakket hebt verwijderd, kunt u uw toepassing opnieuw bouwen om een lijst met verwijzingen op te halen die moeten worden verwijderd.
Verwijder Application Insights uit uw ServiceCollection
door de volgende regel te verwijderen:
builder.Services.AddApplicationInsightsTelemetry();
Verwijder de ApplicationInsights
sectie uit uw appsettings.json
.
{
"ApplicationInsights": {
"ConnectionString": "<Your Connection String>"
}
}
Opschonen en bouwen
Inspecteer uw bin-map om te controleren of alle verwijzingen naar deze Microsoft.ApplicationInsights.*
map zijn verwijderd.
Uw toepassing testen
Controleer of uw toepassing geen onverwachte gevolgen heeft.
NuGet-pakketten verwijderen
Verwijder het Microsoft.AspNet.TelemetryCorrelation
pakket en eventuele Microsoft.ApplicationInsights.*
pakketten uit uw csproj
en packages.config
.
Het ApplicationInsights.config
bestand verwijderen
Sectie verwijderen uit het Web.config
-bestand van uw toepassing
Er zijn automatisch twee HttpModules toegevoegd aan uw web.config toen u ApplicationInsights voor het eerst aan uw project toevoegde.
Alle verwijzingen naar de TelemetryCorrelationHttpModule
en de ApplicationInsightsWebTracking
moeten worden verwijderd.
Als u Application Insights hebt toegevoegd aan uw IIS-modules (Internet Information Server), moet deze ook worden verwijderd.
<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>
Controleer ook eventuele assemblyversieomleidingen die zijn toegevoegd aan uw web.config.
Initialisatiecode en aanpassingen verwijderen
Verwijder verwijzingen naar Application Insights-typen in uw codebasis.
Aanbeveling
Nadat u het Application Insights-pakket hebt verwijderd, kunt u uw toepassing opnieuw bouwen om een lijst met verwijzingen op te halen die moeten worden verwijderd.
- Verwijzingen naar
TelemetryConfiguration
of TelemetryClient
verwijderen. Het maakt deel uit van het opstarten van uw toepassing om de Application Insights SDK te initialiseren.
De volgende scenario's zijn optioneel en van toepassing op geavanceerde gebruikers.
- Als u meer verwijzingen hebt naar de
TelemetryClient
, die worden gebruikt om telemetrie handmatig vast te leggen, moeten ze worden verwijderd.
- Als u aangepaste filters of verrijking hebt toegevoegd in de vorm van een aangepaste
TelemetryProcessor
of TelemetryInitializer
, moeten ze worden verwijderd. U kunt ze terugvinden in uw configuratie.
- Als uw project een
FilterConfig.cs
-map in de App_Start
-directory bevat, controleer dan op aangepaste uitzonderingshandlers die naar Application Insights verwijzen en verwijder deze.
JavaScript-fragment verwijderen
Als u de JavaScript SDK hebt toegevoegd voor het verzamelen van telemetrie aan de clientzijde, kan deze ook worden verwijderd, hoewel deze blijft werken zonder de .NET SDK.
Raadpleeg de onboardinghandleiding voor de JavaScript-SDK voor volledige codevoorbeelden van wat u wilt verwijderen.
Visual Studio-artefacten verwijderen
Als u Visual Studio hebt gebruikt om onboarding uit te voeren voor Application Insights, hebt u mogelijk meer bestanden over in uw project.
ConnectedService.json
kan een verwijzing naar uw Application Insights-resource hebben.
[Your project's name].csproj
kan een verwijzing naar uw Application Insights-resource hebben:
<ApplicationInsightsResourceId>/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/Default-ApplicationInsights-EastUS/providers/microsoft.insights/components/WebApplication4</ApplicationInsightsResourceId>
Opschonen en bouwen
Inspecteer uw bin-map om te controleren of alle verwijzingen naar deze Microsoft.ApplicationInsights.
map zijn verwijderd.
Uw toepassing testen
Controleer of uw toepassing geen onverwachte gevolgen heeft.
NuGet-pakketten verwijderen
Verwijder alle Microsoft.ApplicationInsights.*
pakketten uit uw csproj
en packages.config
.
dotnet remove package Microsoft.ApplicationInsights
Initialisatiecode en aanpassingen verwijderen
Verwijder verwijzingen naar Application Insights-typen in uw codebasis.
Aanbeveling
Nadat u het Application Insights-pakket hebt verwijderd, kunt u uw toepassing opnieuw bouwen om een lijst met verwijzingen op te halen die moeten worden verwijderd.
Verwijzingen naar TelemetryConfiguration
of TelemetryClient
verwijderen. Het moet deel uitmaken van het opstarten van uw toepassing om de Application Insights SDK te initialiseren.
var config = TelemetryConfiguration.CreateDefault();
var client = new TelemetryClient(config);
Aanbeveling
Als u AddApplicationInsightsTelemetryWorkerService()
hebt gebruikt om Application Insights toe te voegen aan uw ServiceCollection
, raadpleegt u de WorkerService-tabbladen.
Opschonen en bouwen
Inspecteer uw bin-map om te controleren of alle verwijzingen naar deze Microsoft.ApplicationInsights.
map zijn verwijderd.
Uw toepassing testen
Controleer of uw toepassing geen onverwachte gevolgen heeft.
NuGet-pakketten verwijderen
Verwijder het Microsoft.ApplicationInsights.WorkerService
pakket uit uw csproj
.
dotnet remove package Microsoft.ApplicationInsights.WorkerService
Initialisatiecode en aanpassingen verwijderen
Verwijder verwijzingen naar Application Insights-typen in uw codebasis.
Aanbeveling
Nadat u het Application Insights-pakket hebt verwijderd, kunt u uw toepassing opnieuw bouwen om een lijst met verwijzingen op te halen die moeten worden verwijderd.
Verwijder Application Insights uit uw ServiceCollection
door de volgende regel te verwijderen:
builder.Services.AddApplicationInsightsTelemetryWorkerService();
Verwijder de ApplicationInsights
sectie uit uw appsettings.json
.
{
"ApplicationInsights": {
"ConnectionString": "<Your Connection String>"
}
}
Opschonen en bouwen
Inspecteer uw bin-map om te controleren of alle verwijzingen naar deze Microsoft.ApplicationInsights.*
map zijn verwijderd.
Uw toepassing testen
Controleer of uw toepassing geen onverwachte gevolgen heeft.
Aanbeveling
Onze productgroep zoekt actief naar feedback over deze documentatie. Geef feedback voor otel@microsoft.com of zie de sectie Ondersteuning .
OpenTelemetry inschakelen
We raden u aan een ontwikkelingsresource te maken en de bijbehorende verbindingsreeks te gebruiken bij het volgen van deze instructies.
Plan om de connectiestring bij te werken om telemetrie naar de oorspronkelijke bron te verzenden nadat de migratie succesvol is bevestigd.
De Azure Monitor-distributie installeren
Onze Azure Monitor Distro maakt automatische telemetrie mogelijk door openTelemetry-instrumentatiebibliotheken op te halen voor het verzamelen van traceringen, metrische gegevens, logboeken en uitzonderingen en het verzamelen van aangepaste telemetrie.
Als u de Azure Monitor-distributie installeert, wordt de OpenTelemetry SDK als een afhankelijkheid gebruikt.
dotnet add package Azure.Monitor.OpenTelemetry.AspNetCore
Zowel OpenTelemetry als Azure Monitor toevoegen en configureren
De OpenTelemery SDK moet worden geconfigureerd bij het opstarten van de toepassing als onderdeel van uw ServiceCollection
, meestal in de Program.cs
.
OpenTelemetry heeft een concept van drie signalen; Traceringen, metrische gegevens en logboeken.
De Azure Monitor-distributie configureert elk van deze signalen.
Program.cs
In het volgende codevoorbeeld ziet u de basisbeginselen.
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();
}
}
U wordt aangeraden uw verbindingsreeks in te stellen in een omgevingsvariabele:
APPLICATIONINSIGHTS_CONNECTION_STRING=<Your Connection String>
Meer opties voor het configureren van de verbindingsreeks worden hier beschreven: De Application Insights-verbindingsreeks configureren.
De OpenTelemetry SDK installeren via Azure Monitor
Als u de Azure Monitor-exporteur installeert, wordt de OpenTelemetry SDK als een afhankelijkheid weergegeven.
dotnet add package Azure.Monitor.OpenTelemetry.Exporter
OpenTelemetry configureren als onderdeel van het opstarten van uw toepassing
De OpenTelemery SDK moet worden geconfigureerd bij het opstarten van de toepassing, meestal in de Global.asax.cs
.
OpenTelemetry heeft een concept van drie signalen; Traceringen, metrische gegevens en logboeken.
Elk van deze signalen moet worden geconfigureerd als onderdeel van het opstarten van uw toepassing.
TracerProvider
, MeterProvider
en ILoggerFactory
moet eenmaal worden gemaakt voor uw toepassing en verwijderd wanneer uw toepassing wordt afgesloten.
Global.asax.cs
In het volgende codevoorbeeld ziet u een eenvoudig voorbeeld dat alleen bedoeld is om de basisbeginselen weer te geven.
Er wordt op dit moment geen telemetrie verzameld.
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();
}
}
De OpenTelemetry SDK installeren via Azure Monitor
Als u de Azure Monitor-exporteur installeert, wordt de OpenTelemetry SDK als een afhankelijkheid weergegeven.
dotnet add package Azure.Monitor.OpenTelemetry.Exporter
OpenTelemetry configureren als onderdeel van het opstarten van uw toepassing
De OpenTelemery SDK moet worden geconfigureerd bij het opstarten van de toepassing, meestal in de Program.cs
.
OpenTelemetry heeft een concept van drie signalen; Traceringen, metrische gegevens en logboeken.
Elk van deze signalen moet worden geconfigureerd als onderdeel van het opstarten van uw toepassing.
TracerProvider
, MeterProvider
en ILoggerFactory
moet eenmaal worden gemaakt voor uw toepassing en verwijderd wanneer uw toepassing wordt afgesloten.
In het volgende codevoorbeeld ziet u een eenvoudig voorbeeld dat alleen bedoeld is om de basisbeginselen weer te geven.
Er wordt op dit moment geen telemetrie verzameld.
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();
}
}
De OpenTelemetry SDK installeren via Azure Monitor
Als u de Azure Monitor-exporteur installeert, wordt de OpenTelemetry SDK als een afhankelijkheid weergegeven.
dotnet add package Azure.Monitor.OpenTelemetry.Exporter
U moet ook het OpenTelemetry Extensions Hosting-pakket installeren.
dotnet add package OpenTelemetry.Extensions.Hosting
OpenTelemetry configureren als onderdeel van het opstarten van uw toepassing
De OpenTelemery SDK moet worden geconfigureerd bij het opstarten van de toepassing, meestal in de Program.cs
.
OpenTelemetry heeft een concept van drie signalen; Traceringen, metrische gegevens en logboeken.
Elk van deze signalen moet worden geconfigureerd als onderdeel van het opstarten van uw toepassing.
TracerProvider
, MeterProvider
en ILoggerFactory
moet eenmaal worden gemaakt voor uw toepassing en verwijderd wanneer uw toepassing wordt afgesloten.
In het volgende codevoorbeeld ziet u een eenvoudig voorbeeld dat alleen bedoeld is om de basisbeginselen weer te geven.
Er wordt op dit moment geen telemetrie verzameld.
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();
}
}
Aanbeveling
Onze productgroep zoekt actief naar feedback over deze documentatie. Geef feedback voor otel@microsoft.com of zie de sectie Ondersteuning .
Instrumentatiebibliotheken kunnen aan uw project worden toegevoegd om automatisch telemetrie over specifieke onderdelen of afhankelijkheden te verzamelen.
De volgende bibliotheken zijn opgenomen in de distributie.
Instrumentatiebibliotheken aanpassen
De Azure Monitor-distributie bevat .NET OpenTelemetry-instrumentatie voor ASP.NET Core, HttpClient en SQLClient.
U kunt deze opgenomen instrumentaties aanpassen of handmatig extra instrumentatie toevoegen met behulp van de OpenTelemetry-API.
Hier volgen enkele voorbeelden van het aanpassen van de instrumentatie:
Het aanpassen van 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);
};
});
HttpClientTraceInstrumentationOptions aanpassen
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);
};
});
SqlClientInstrumentationOptions aanpassen
We bieden de SQLClient-instrumentatie binnen ons pakket terwijl het nog in de bètaversie is. Wanneer het een stabiele release bereikt, nemen we deze op als standaardpakketreferentie. Tot die tijd voegt u de pakketreferentie toe aan uw project en gebruikt u de openbare API om de OpenTelemetry.Instrumentation.SqlClient
SQLClient-instrumentatie aan te passen.
dotnet add package --prerelease OpenTelemetry.Instrumentation.SqlClient
builder.Services.AddOpenTelemetry().UseAzureMonitor().WithTracing(builder =>
{
builder.AddSqlClientInstrumentation(options =>
{
options.SetDbStatementForStoredProcedure = false;
});
});
Instrumentatiebibliotheken kunnen aan uw project worden toegevoegd om automatisch telemetrie over specifieke onderdelen of afhankelijkheden te verzamelen. We raden de volgende bibliotheken aan:
OpenTelemetry.Instrumentation.AspNet kan worden gebruikt om telemetrie voor binnenkomende aanvragen te verzamelen. Azure Monitor wijst deze toe aan Aanvraagtelemetrie.
dotnet add package OpenTelemetry.Instrumentation.AspNet
Hiervoor moet u een extra HttpModule toevoegen aan uw Web.config
:
<system.webServer>
<modules>
<add
name="TelemetryHttpModule"
type="OpenTelemetry.Instrumentation.AspNet.TelemetryHttpModule,
OpenTelemetry.Instrumentation.AspNet.TelemetryHttpModule"
preCondition="integratedMode,managedHandler" />
</modules>
</system.webServer>
Hier vindt u een volledige introductiehandleiding: OpenTelemetry.Instrumentation.AspNet Readme
OpenTelemetry.Instrumentation.Http kan worden gebruikt voor het verzamelen van telemetrie voor uitgaande HTTP-afhankelijkheden. Azure Monitor wijst deze toe aan afhankelijkheidstelemetrie.
dotnet add package OpenTelemetry.Instrumentation.Http
Hier vindt u een volledige introductiehandleiding: OpenTelemetry.Instrumentation.Http Readme
OpenTelemetry.Instrumentation.SqlClient kan worden gebruikt voor het verzamelen van telemetriegegevens voor MS SQL-afhankelijkheden. Azure Monitor wijst deze toe aan afhankelijkheidstelemetrie.
dotnet add package --prerelease OpenTelemetry.Instrumentation.SqlClient
Hier vindt u een volledige introductiehandleiding: OpenTelemetry.Instrumentation.SqlClient Readme
Global.asax.cs
Het volgende codevoorbeeld breidt het vorige voorbeeld uit.
Het verzamelt nu telemetrie, maar verzendt nog niet naar 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();
}
}
Instrumentatiebibliotheken kunnen aan uw project worden toegevoegd om automatisch telemetrie over specifieke onderdelen of afhankelijkheden te verzamelen. We raden de volgende bibliotheken aan:
OpenTelemetry.Instrumentation.Http kan worden gebruikt voor het verzamelen van telemetrie voor uitgaande HTTP-afhankelijkheden. Azure Monitor wijst deze toe aan afhankelijkheidstelemetrie.
dotnet add package OpenTelemetry.Instrumentation.Http
Hier vindt u een volledige introductiehandleiding: OpenTelemetry.Instrumentation.Http Readme
OpenTelemetry.Instrumentation.SqlClient kan worden gebruikt voor het verzamelen van telemetriegegevens voor MS SQL-afhankelijkheden. Azure Monitor wijst deze toe aan afhankelijkheidstelemetrie.
dotnet add package --prerelease OpenTelemetry.Instrumentation.SqlClient
Hier vindt u een volledige introductiehandleiding: OpenTelemetry.Instrumentation.SqlClient Readme
Het volgende codevoorbeeld breidt het vorige voorbeeld uit.
Het verzamelt nu telemetrie, maar verzendt nog niet naar 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();
}
}
Instrumentatiebibliotheken kunnen aan uw project worden toegevoegd om automatisch telemetrie over specifieke onderdelen of afhankelijkheden te verzamelen. We raden de volgende bibliotheken aan:
OpenTelemetry.Instrumentation.Http kan worden gebruikt voor het verzamelen van telemetrie voor uitgaande HTTP-afhankelijkheden. Azure Monitor wijst deze toe aan afhankelijkheidstelemetrie.
dotnet add package OpenTelemetry.Instrumentation.Http
Hier vindt u een volledige introductiehandleiding: OpenTelemetry.Instrumentation.Http Readme
OpenTelemetry.Instrumentation.SqlClient kan worden gebruikt voor het verzamelen van telemetriegegevens voor MS SQL-afhankelijkheden. Azure Monitor wijst deze toe aan afhankelijkheidstelemetrie.
dotnet add package --prerelease OpenTelemetry.Instrumentation.SqlClient
Hier vindt u een volledige introductiehandleiding: OpenTelemetry.Instrumentation.SqlClient Readme
Het volgende codevoorbeeld breidt het vorige voorbeeld uit.
Het verzamelt nu telemetrie, maar verzendt nog niet naar 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 bood veel meer configuratieopties via ApplicationInsightsServiceOptions
.
Application Insights-instelling |
Alternatief voor OpenTelemetry |
Automatisch verzamelde metriekextractor toevoegen |
N.v.t. |
Applicatieversie |
Service.version instellen voor resource |
ConnectionString |
Zie de instructies voor het configureren van de verbindingsreeks. |
OptiesVoorVerzamelingVanAfhankelijkheden |
N.v.t. Als u afhankelijkheden wilt aanpassen, bekijkt u de beschikbare configuratieopties voor toepasselijke instrumentatiebibliotheken. |
Ontwikkelaarsmodus |
N.v.t. |
InschakelenActieveTelemetrieConfiguratieInstelling |
N.v.t. |
AdaptieveSteekproefinvoerInschakelen |
N.v.t. Alleen steekproeven met vaste frequentie worden ondersteund. |
InschakelenAppServicesHeartbeatTelemetryModule |
N.v.t. |
InschakelenAuthenticatieTrackingJavaScript |
N.v.t. |
EnableAzureInstanceMetadataTelemetryModule |
N.v.t. |
SchakelDependencyTrackingTelemetryModuleIn |
Zie de instructies voor het filteren van traces. |
ModuleVoorTelemetrieDiagnostiekInschakelen |
N.v.t. |
InschakelenEventtellerVerzamelModule |
N.v.t. |
InschakelenHeartbeat |
N.v.t. |
ModuleVoorPrestatiecountersInschakelen |
N.v.t. |
SchakelQuickPulseMetricStreamIn |
AzureMonitorOptions.EnableLiveMetrics |
ModuleVoorVerzoekenMonitoringTelemetrieInschakelen |
Zie de instructies voor het filteren van traces. |
Eindpuntadres |
Gebruik ConnectionString. |
InstrumentatieSleutel |
Gebruik ConnectionString. |
OptiesVoorHetVerzamelenVanVerzoeken |
N.v.t. Zie opties voor OpenTelemetry.Instrumentation.AspNetCore. |
Aangepaste configuraties verwijderen
De volgende scenario's zijn optioneel en zijn alleen van toepassing op geavanceerde gebruikers.
Als u nog verwijzingen hebt naar de TelemetryClient
, die kunnen worden gebruikt om telemetrie handmatig vast te leggen, moeten ze worden verwijderd.
Als u aangepaste filters of verrijking hebt toegevoegd in de vorm van een aangepaste TelemetryProcessor
of TelemetryInitializer
, moeten ze worden verwijderd. Ze zijn te vinden in je ServiceCollection
.
builder.Services.AddSingleton<ITelemetryInitializer, MyCustomTelemetryInitializer>();
builder.Services.AddApplicationInsightsTelemetryProcessor<MyCustomTelemetryProcessor>();
JavaScript-fragment verwijderen
Als u het fragment van de .NET SDK van Application Insights hebt gebruikt, moet dit ook worden verwijderd.
Bekijk de handleiding telemetrie aan de clientzijde inschakelen voor webapplicaties voor volledige codevoorbeelden van wat er moet worden verwijderd.
Als u de JavaScript SDK hebt toegevoegd voor het verzamelen van telemetrie aan de clientzijde, kan deze ook worden verwijderd, hoewel deze blijft werken zonder de .NET SDK.
Raadpleeg de onboardinghandleiding voor de JavaScript-SDK voor volledige codevoorbeelden van wat u wilt verwijderen.
Visual Studio-artefacten verwijderen
Als u Visual Studio hebt gebruikt om onboarding uit te voeren voor Application Insights, hebt u mogelijk meer bestanden over in uw project.
-
Properties/ServiceDependencies
directory heeft mogelijk een verwijzing naar uw Application Insights-resource.
Als u uw telemetrie naar Application Insights wilt verzenden, moet de Azure Monitor-exporteur worden toegevoegd aan de configuratie van alle drie de signalen.
Global.asax.cs
Het volgende codevoorbeeld breidt het vorige voorbeeld uit.
Het verzamelt nu telemetrie en verzendt naar 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();
}
}
U wordt aangeraden uw verbindingsreeks in te stellen in een omgevingsvariabele:
APPLICATIONINSIGHTS_CONNECTION_STRING=<Your Connection String>
Meer opties voor het configureren van de verbindingsreeks worden hier beschreven: De Application Insights-verbindingsreeks configureren.
Als u uw telemetrie naar Application Insights wilt verzenden, moet de Azure Monitor-exporteur worden toegevoegd aan de configuratie van alle drie de signalen.
Program.cs
Het volgende codevoorbeeld breidt het vorige voorbeeld uit.
Het verzamelt nu telemetrie en verzendt naar 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();
}
}
U wordt aangeraden uw verbindingsreeks in te stellen in een omgevingsvariabele:
APPLICATIONINSIGHTS_CONNECTION_STRING=<Your Connection String>
Meer opties voor het configureren van de verbindingsreeks worden hier beschreven: De Application Insights-verbindingsreeks configureren.
Aangepaste configuraties verwijderen
De volgende scenario's zijn optioneel en van toepassing op geavanceerde gebruikers.
Als u meer verwijzingen hebt naar de TelemetryClient
, die wordt gebruikt om telemetrie handmatig vast te leggen, moeten ze worden verwijderd.
Verwijder aangepaste filters of verrijking die zijn toegevoegd als een aangepast TelemetryProcessor
of TelemetryInitializer
. De configuratie verwijst ernaar.
Visual Studio-artefacten verwijderen
Als u Visual Studio hebt gebruikt om onboarding uit te voeren voor Application Insights, hebt u mogelijk meer bestanden over in uw project.
ConnectedService.json
kan een verwijzing naar uw Application Insights-resource hebben.
[Your project's name].csproj
kan een verwijzing naar uw Application Insights-resource hebben:
<ApplicationInsightsResourceId>/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/Default-ApplicationInsights-EastUS/providers/microsoft.insights/components/WebApplication4</ApplicationInsightsResourceId>
Als u uw telemetrie naar Application Insights wilt verzenden, moet de Azure Monitor-exporteur worden toegevoegd aan de configuratie van alle drie de signalen.
Program.cs
Het volgende codevoorbeeld breidt het vorige voorbeeld uit.
Het verzamelt nu telemetrie en verzendt naar 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();
}
}
U wordt aangeraden uw verbindingsreeks in te stellen in een omgevingsvariabele:
APPLICATIONINSIGHTS_CONNECTION_STRING=<Your Connection String>
Meer opties voor het configureren van de verbindingsreeks worden hier beschreven: De Application Insights-verbindingsreeks configureren.
Meer configuraties
Application Insights bood veel meer configuratieopties via ApplicationInsightsServiceOptions
.
Application Insights-instelling |
Alternatief voor OpenTelemetry |
Automatisch verzamelde metriekextractor toevoegen |
N.v.t. |
Applicatieversie |
Service.version instellen voor resource |
ConnectionString |
Zie de instructies voor het configureren van de verbindingsreeks. |
OptiesVoorVerzamelingVanAfhankelijkheden |
N.v.t. Als u afhankelijkheden wilt aanpassen, bekijkt u de beschikbare configuratieopties voor toepasselijke instrumentatiebibliotheken. |
Ontwikkelaarsmodus |
N.v.t. |
AdaptieveSteekproefinvoerInschakelen |
N.v.t. Alleen steekproeven met vaste frequentie worden ondersteund. |
InschakelenAppServicesHeartbeatTelemetryModule |
N.v.t. |
EnableAzureInstanceMetadataTelemetryModule |
N.v.t. |
SchakelDependencyTrackingTelemetryModuleIn |
Zie de instructies voor het filteren van traces. |
ModuleVoorTelemetrieDiagnostiekInschakelen |
N.v.t. |
InschakelenEventtellerVerzamelModule |
N.v.t. |
InschakelenHeartbeat |
N.v.t. |
ModuleVoorPrestatiecountersInschakelen |
N.v.t. |
SchakelQuickPulseMetricStreamIn |
AzureMonitorOptions.EnableLiveMetrics |
Eindpuntadres |
Gebruik ConnectionString. |
InstrumentatieSleutel |
Gebruik ConnectionString. |
Aangepaste configuraties verwijderen
De volgende scenario's zijn optioneel en van toepassing op geavanceerde gebruikers.
Als u meer verwijzingen hebt naar de TelemetryClient
, die worden gebruikt om telemetrie handmatig vast te leggen, moeten ze worden verwijderd.
Als u aangepaste filters of verrijking hebt toegevoegd in de vorm van een aangepaste TelemetryProcessor
of TelemetryInitializer
, moet deze worden verwijderd. U vindt verwijzingen in uw ServiceCollection
.
builder.Services.AddSingleton<ITelemetryInitializer, MyCustomTelemetryInitializer>();
builder.Services.AddApplicationInsightsTelemetryProcessor<MyCustomTelemetryProcessor>();
Visual Studio-artefacten verwijderen
Als u Visual Studio hebt gebruikt om onboarding uit te voeren voor Application Insights, hebt u mogelijk meer bestanden over in uw project.
-
Properties/ServiceDependencies
directory heeft mogelijk een verwijzing naar uw Application Insights-resource.
Aanbeveling
Onze productgroep zoekt actief naar feedback over deze documentatie. Geef feedback voor otel@microsoft.com of zie de sectie Ondersteuning .
Volgende stappen
Aanbeveling
Onze productgroep zoekt actief naar feedback over deze documentatie. Geef feedback voor otel@microsoft.com of zie de sectie Ondersteuning .
Ondersteuning