Este guia fornece instruções passo a passo para migrar vários aplicativos .NET do uso de SDKs (kits de desenvolvimento de software) do Application Insights para o Azure Monitor OpenTelemetry.
Espere ter uma experiência semelhante com a instrumentação OpenTelemetry do Azure Monitor àquela oferecida pelos SDKs do Application Insights. Para obter mais informações e uma comparação detalhada entre recursos, consulte o estado de lançamento das funcionalidades.
- ASP.NET Migração principal para a Distro OpenTelemetry do Azure Monitor.
Azure.Monitor.OpenTelemetry.AspNetCore
(pacote NuGet)
- migração de ASP.NET, de aplicações de consola e de WorkerService para o Azure Monitor OpenTelemetry Exporter.
Azure.Monitor.OpenTelemetry.Exporter
(pacote NuGet)
Se você estiver começando a usar o Application Insights e não precisar migrar da API clássica, consulte Habilitar o Azure Monitor OpenTelemetry.
Pré-requisitos
- Um aplicativo Web ASP.NET Core já instrumentado com o Application Insights sem personalizações
- Uma versão ativamente suportada do .NET
- Uma aplicação Web ASP.NET já instrumentada com o Application Insights
- Uma versão com suporte ativo do .NET Framework
- Um aplicativo de console já instrumentado com o Application Insights
- Uma versão ativamente suportada do .NET Framework ou .NET
- Um aplicativo WorkerService já instrumentado com o Application Insights sem personalizações
- Uma versão ativamente suportada do .NET
Gorjeta
O nosso grupo de produtos está ativamente à procura de feedback sobre esta documentação. Forneça feedback a otel@microsoft.com ou consulte a seção de Suporte.
Remover o SDK do Application Insights
Nota
Antes de continuar com essas etapas, você deve confirmar se tem um backup atual do seu aplicativo.
Remover pacotes NuGet
Remova o Microsoft.ApplicationInsights.AspNetCore
pacote do seu csproj
.
dotnet remove package Microsoft.ApplicationInsights.AspNetCore
Remover código de inicialização e personalizações
Remova todas as referências aos tipos do Application Insights em sua base de código.
Gorjeta
Depois de remover o pacote do Application Insights, você pode reconstruir seu aplicativo para obter uma lista de referências que precisam ser removidas.
Remova o Application Insights do seu ServiceCollection
excluindo a seguinte linha:
builder.Services.AddApplicationInsightsTelemetry();
Remova a ApplicationInsights
secção do seu appsettings.json
.
{
"ApplicationInsights": {
"ConnectionString": "<Your Connection String>"
}
}
Limpar e construir
Inspecione o diretório bin para validar se todas as referências a Microsoft.ApplicationInsights.*
foram removidas.
Teste a sua aplicação
Verifique se seu aplicativo não tem consequências inesperadas.
Remover pacotes NuGet
Remova o Microsoft.AspNet.TelemetryCorrelation
pacote e todos os Microsoft.ApplicationInsights.*
pacotes do seu csproj
e packages.config
.
Excluir o ApplicationInsights.config
arquivo
Excluir seção do arquivo Web.config
do seu aplicativo
Dois HttpModules foram adicionados automaticamente ao seu web.config quando você adicionou o ApplicationInsights ao seu projeto pela primeira vez.
Quaisquer referências ao TelemetryCorrelationHttpModule
e ao ApplicationInsightsWebTracking
devem ser removidas.
Se você adicionou o Application Insights aos módulos do Internet Information Server (IIS), ele também deverá ser removido.
<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>
Analise também todos os redirecionamentos de versão de conjuntos adicionados ao seu web.config.
Remover código de inicialização e personalizações
Remova todas as referências aos tipos do Application Insights em sua base de código.
Gorjeta
Depois de remover o pacote do Application Insights, você pode reconstruir seu aplicativo para obter uma lista de referências que precisam ser removidas.
- Remover referências a
TelemetryConfiguration
ou TelemetryClient
. É uma parte da inicialização do seu aplicativo para inicializar o SDK do Application Insights.
Os cenários a seguir são opcionais e se aplicam a usuários avançados.
- Se tiver mais referências ao
TelemetryClient
, que são usadas para gravar a telemetria manualmente, elas devem ser removidas.
- Se você adicionou qualquer filtragem ou enriquecimento personalizado na forma de um personalizado
TelemetryProcessor
ou TelemetryInitializer
, eles devem ser removidos. Você pode encontrá-los referenciados em sua configuração.
- Se o seu projeto tiver um
FilterConfig.cs
no diretório App_Start
, verifique se há manipuladores de exceção personalizados que façam referência ao Application Insights e remova-os.
Remover trecho de JavaScript
Se você adicionou o JavaScript SDK para coletar telemetria do lado do cliente, ele também pode ser removido, embora continue a funcionar sem o SDK do .NET.
Para obter exemplos de código completo do que remover, consulte o guia de integração para o JavaScript SDK.
Remova todos os artefatos do Visual Studio
Se você usou o Visual Studio para integrar ao Application Insights, poderá ter mais arquivos restantes em seu projeto.
ConnectedService.json
pode ter uma referência ao seu recurso do Application Insights.
[Your project's name].csproj
pode ter uma referência ao seu recurso do Application Insights:
<ApplicationInsightsResourceId>/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/Default-ApplicationInsights-EastUS/providers/microsoft.insights/components/WebApplication4</ApplicationInsightsResourceId>
Limpar e construir
Inspecione o diretório bin para validar se todas as referências a Microsoft.ApplicationInsights.
foram removidas.
Teste a sua aplicação
Verifique se seu aplicativo não tem consequências inesperadas.
Remover pacotes NuGet
Remova todos os Microsoft.ApplicationInsights.*
pacotes do seu csproj
e packages.config
.
dotnet remove package Microsoft.ApplicationInsights
Remover código de inicialização e personalizações
Remova todas as referências aos tipos do Application Insights em sua base de código.
Gorjeta
Depois de remover o pacote do Application Insights, você pode reconstruir seu aplicativo para obter uma lista de referências que precisam ser removidas.
Remover referências a TelemetryConfiguration
ou TelemetryClient
. Ele deve fazer parte da inicialização do aplicativo para inicializar o SDK do Application Insights.
var config = TelemetryConfiguration.CreateDefault();
var client = new TelemetryClient(config);
Gorjeta
Se utilizou AddApplicationInsightsTelemetryWorkerService()
para adicionar Application Insights ao seu ServiceCollection
, consulte as abas do WorkerService.
Limpar e construir
Inspecione o diretório bin para validar se todas as referências a Microsoft.ApplicationInsights.
foram removidas.
Teste a sua aplicação
Verifique se seu aplicativo não tem consequências inesperadas.
Remover pacotes NuGet
Remova o Microsoft.ApplicationInsights.WorkerService
pacote do seu csproj
.
dotnet remove package Microsoft.ApplicationInsights.WorkerService
Remover código de inicialização e personalizações
Remova todas as referências aos tipos do Application Insights em sua base de código.
Gorjeta
Depois de remover o pacote do Application Insights, você pode reconstruir seu aplicativo para obter uma lista de referências que precisam ser removidas.
Remova o Application Insights do seu ServiceCollection
excluindo a seguinte linha:
builder.Services.AddApplicationInsightsTelemetryWorkerService();
Remova a ApplicationInsights
secção do seu appsettings.json
.
{
"ApplicationInsights": {
"ConnectionString": "<Your Connection String>"
}
}
Limpar e construir
Inspecione o diretório bin para validar se todas as referências a Microsoft.ApplicationInsights.*
foram removidas.
Teste a sua aplicação
Verifique se seu aplicativo não tem consequências inesperadas.
Gorjeta
O nosso grupo de produtos está ativamente à procura de feedback sobre esta documentação. Forneça feedback a otel@microsoft.com ou consulte a seção de Suporte.
Ativar OpenTelemetry
Recomendamos criar um recurso de desenvolvimento e usar sua cadeia de conexão ao seguir estas instruções.
Planeje atualizar a cadeia de conexão para enviar telemetria ao recurso original depois de confirmar que a migração foi bem-sucedida.
Instalar a Distro do Azure Monitor
Nossa Distro do Azure Monitor habilita a telemetria automática incluindo bibliotecas de instrumentação OpenTelemetry para coletar rastreamentos, métricas, logs e exceções, e permite coletar telemetria personalizada.
A instalação da Distro do Azure Monitor traz o SDK do OpenTelemetry como uma dependência.
dotnet add package Azure.Monitor.OpenTelemetry.AspNetCore
Adicionar e configurar o OpenTelemetry e o Azure Monitor
O SDK do OpenTelemery deve ser configurado na inicialização do aplicativo como parte do seu ServiceCollection
, normalmente no Program.cs
.
OpenTelemetry tem um conceito de três sinais: Traços, métricas e Logs.
A Distro do Azure Monitor configura cada um desses sinais.
Program.cs
O exemplo de código a seguir demonstra o básico.
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();
}
}
Recomendamos definir sua Cadeia de Conexão em uma variável de ambiente:
APPLICATIONINSIGHTS_CONNECTION_STRING=<Your Connection String>
Mais opções para configurar a Cadeia de Conexão são detalhadas aqui: Configurar a Cadeia de Conexão do Application Insights.
Instalar o SDK do OpenTelemetry através do Azure Monitor
A instalação do Exportador do Azure Monitor traz o SDK do OpenTelemetry como dependência.
dotnet add package Azure.Monitor.OpenTelemetry.Exporter
Configurar o OpenTelemetry como parte da inicialização do aplicativo
O SDK do OpenTelemetry deve ser configurado na inicialização do aplicativo, normalmente no Global.asax.cs
.
OpenTelemetry tem um conceito de três sinais: Traços, métricas e Logs.
Cada um desses sinais precisa ser configurado como parte da inicialização do aplicativo.
TracerProvider
, MeterProvider
e ILoggerFactory
devem ser criados uma vez para a sua aplicação e descartados quando a sua aplicação for encerrada.
Global.asax.cs
O exemplo de código a seguir mostra um exemplo simples destinado apenas a mostrar o básico.
Nenhuma telemetria é coletada neste momento.
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();
}
}
Instalar o SDK do OpenTelemetry através do Azure Monitor
A instalação do Exportador Azure Monitor traz o SDK OpenTelemetry como dependência.
dotnet add package Azure.Monitor.OpenTelemetry.Exporter
Configurar o OpenTelemetry como parte da inicialização do aplicativo
O SDK do OpenTelemetry deve ser configurado na inicialização do aplicativo, normalmente no Program.cs
.
OpenTelemetry tem um conceito de três sinais: Traços, métricas e Logs.
Cada um desses sinais precisa ser configurado como parte da inicialização do aplicativo.
TracerProvider
, MeterProvider
e ILoggerFactory
devem ser criados uma vez para a sua aplicação e descartados quando a sua aplicação for encerrada.
O exemplo de código a seguir mostra um exemplo simples destinado apenas a mostrar o básico.
Nenhuma telemetria é coletada neste momento.
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();
}
}
Instalar o SDK do OpenTelemetry através do Azure Monitor
A instalação do Exportador Azure Monitor traz o SDK OpenTelemetry como dependência.
dotnet add package Azure.Monitor.OpenTelemetry.Exporter
Você também deve instalar o pacote OpenTelemetry Extensions Hosting .
dotnet add package OpenTelemetry.Extensions.Hosting
Configurar o OpenTelemetry como parte da inicialização do aplicativo
O SDK do OpenTelemetry deve ser configurado na inicialização do aplicativo, normalmente no Program.cs
.
OpenTelemetry tem um conceito de três sinais: Traços, métricas e Logs.
Cada um desses sinais precisa ser configurado como parte da inicialização do aplicativo.
TracerProvider
, MeterProvider
e ILoggerFactory
devem ser criados uma vez para a sua aplicação e descartados quando a sua aplicação for encerrada.
O exemplo de código a seguir mostra um exemplo simples destinado apenas a mostrar o básico.
Nenhuma telemetria é coletada neste momento.
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();
}
}
Gorjeta
O nosso grupo de produtos está ativamente à procura de feedback sobre esta documentação. Forneça feedback a otel@microsoft.com ou consulte a seção de Suporte.
As bibliotecas de instrumentação podem ser adicionadas ao seu projeto para coletar automaticamente telemetria sobre componentes ou dependências específicos.
As seguintes bibliotecas estão incluídas na Distro.
Personalizando bibliotecas de instrumentação
A Distro do Azure Monitor inclui instrumentação .NET OpenTelemetry para ASP.NET Core, HttpClient e SQLClient.
Você pode personalizar essas instrumentações incluídas ou adicionar manualmente instrumentação extra por conta própria usando a API OpenTelemetry .
Aqui estão alguns exemplos de como personalizar a instrumentação:
Personalização das Opções de Instrumentação AspNetCoreTrace
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);
};
});
Personalizando 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);
};
});
Personalizando SqlClientInstrumentationOptions
Nós fornecemos a instrumentação do SQLClient no nosso pacote enquanto ainda está na fase beta. Quando atingir uma versão estável, iremos incluí-lo como uma referência de pacote padrão. Entretanto, para personalizar a instrumentação do SQLClient, adicione a referência ao pacote OpenTelemetry.Instrumentation.SqlClient
ao seu projeto e utilize a sua API pública.
dotnet add package --prerelease OpenTelemetry.Instrumentation.SqlClient
builder.Services.AddOpenTelemetry().UseAzureMonitor().WithTracing(builder =>
{
builder.AddSqlClientInstrumentation(options =>
{
options.SetDbStatementForStoredProcedure = false;
});
});
As bibliotecas de instrumentação podem ser adicionadas ao seu projeto para coletar automaticamente telemetria sobre componentes ou dependências específicos. Recomendamos as seguintes bibliotecas:
OpenTelemetry.Instrumentation.AspNet pode ser usado para coletar telemetria para solicitações de entrada. O Azure Monitor mapeia-o para Solicitar Telemetria.
dotnet add package OpenTelemetry.Instrumentation.AspNet
Requer a adição de um HttpModule extra ao seu Web.config
:
<system.webServer>
<modules>
<add
name="TelemetryHttpModule"
type="OpenTelemetry.Instrumentation.AspNet.TelemetryHttpModule,
OpenTelemetry.Instrumentation.AspNet.TelemetryHttpModule"
preCondition="integratedMode,managedHandler" />
</modules>
</system.webServer>
Um guia completo de introdução está disponível aqui: OpenTelemetry.Instrumentation.AspNet Readme
OpenTelemetry.Instrumentation.Http pode ser usado para coletar telemetria para dependências http de saída. O Azure Monitor mapeia-o para a telemetria de dependências.
dotnet add package OpenTelemetry.Instrumentation.Http
Um guia completo de introdução está disponível aqui: OpenTelemetry.Instrumentation.Http Readme
OpenTelemetry.Instrumentation.SqlClient pode ser usado para coletar telemetria para dependências do MS SQL. O Azure Monitor mapeia-o para a telemetria de dependências.
dotnet add package --prerelease OpenTelemetry.Instrumentation.SqlClient
Um guia completo de introdução está disponível aqui: OpenTelemetry.Instrumentation.SqlClient Readme
Global.asax.cs
O exemplo de código a seguir expande o exemplo anterior.
Ele agora coleta telemetria, mas ainda não envia para o 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();
}
}
As bibliotecas de instrumentação podem ser adicionadas ao seu projeto para coletar automaticamente telemetria sobre componentes ou dependências específicos. Recomendamos as seguintes bibliotecas:
OpenTelemetry.Instrumentation.Http pode ser usado para coletar telemetria para dependências http de saída. O Azure Monitor mapeia-o para a telemetria de dependências.
dotnet add package OpenTelemetry.Instrumentation.Http
Um guia completo de introdução está disponível aqui: OpenTelemetry.Instrumentation.Http Readme
OpenTelemetry.Instrumentation.SqlClient pode ser usado para coletar telemetria para dependências do MS SQL. O Azure Monitor mapeia-o para a telemetria de dependências.
dotnet add package --prerelease OpenTelemetry.Instrumentation.SqlClient
Um guia completo de introdução está disponível aqui: OpenTelemetry.Instrumentation.SqlClient Readme
O exemplo de código a seguir expande o exemplo anterior.
Ele agora coleta telemetria, mas ainda não envia para o 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();
}
}
As bibliotecas de instrumentação podem ser adicionadas ao seu projeto para coletar automaticamente telemetria sobre componentes ou dependências específicos. Recomendamos as seguintes bibliotecas:
OpenTelemetry.Instrumentation.Http pode ser usado para coletar telemetria para dependências http de saída. O Azure Monitor mapeia-o para a telemetria de dependências.
dotnet add package OpenTelemetry.Instrumentation.Http
Um guia completo de introdução está disponível aqui: OpenTelemetry.Instrumentation.Http Readme
OpenTelemetry.Instrumentation.SqlClient pode ser usado para coletar telemetria para dependências do MS SQL. O Azure Monitor mapeia-o para a telemetria de dependências.
dotnet add package --prerelease OpenTelemetry.Instrumentation.SqlClient
Um guia completo de introdução está disponível aqui: OpenTelemetry.Instrumentation.SqlClient Readme
O exemplo de código a seguir expande o exemplo anterior.
Ele agora coleta telemetria, mas ainda não envia para o 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();
}
}
O Application Insights oferecia muito mais opções de configuração via ApplicationInsightsServiceOptions
.
Configuração do Application Insights |
Alternativa OpenTelemetry |
AddAutoCollectedMetricExtractor (Adicionar Extrator de Métrica Coletada Automaticamente) |
N/A |
Versão da Aplicação |
Definir "service.version" no recurso |
ConnectionString |
Consulte as instruções sobre como configurar a Cadeia de Conexão. |
Opções de Coleta de Dependências |
N/A. Para personalizar dependências, revise as opções de configuração disponíveis para bibliotecas de instrumentação aplicáveis. |
Modo de Desenvolvedor |
N/A |
AtivarConfiguraçãoDeTelemetriaAtiva |
N/A |
Ativar Amostragem Adaptativa |
N/A. Apenas a amostragem com taxa fixa é suportada. |
MóduloDeTelemetriaDeBatimentosDeServiçosDeAplicações |
N/A |
AtivarJavaScriptDeSeguimentoDeAutenticação |
N/A |
Ativar o módulo de telemetria de metadados da instância do Azure |
N/A |
ModuloDeTelemetriaDeRastreamentoDeDependenciasHabilitado |
Veja instruções sobre como filtrar registos de rastreamento. |
AtivarMóduloDeTelemetriaDeDiagnóstico |
N/A |
AtivarMóduloDeColetaDeContadoresDeEventos (EnableEventCounterCollectionModule) |
N/A |
AtivarSinalDeVida |
N/A |
HabilitarMóduloDeColeçãoDeContadoresDeDesempenho |
N/A |
AtivarFluxoMétricoPulsoRápido |
AzureMonitorOptions.EnableLiveMetrics |
MóduloDeTelemetriaDeSeguimentoDePedidosAtivado |
Veja instruções sobre como filtrar registos de rastreamento. |
Endereço do Endpoint |
Utilize ConnectionString. |
Chave de Instrumentação |
Utilize ConnectionString. |
Opções de Coleta de Pedidos |
N/A. Consulte as opções do OpenTelemetry.Instrumentation.AspNetCore. |
Remover configurações personalizadas
Os cenários a seguir são opcionais e se aplicam apenas a usuários avançados.
Se houver mais referências ao TelemetryClient
, que poderiam ser usadas para gravar manualmente a telemetria, elas devem ser removidas.
Se você adicionou qualquer filtragem ou enriquecimento personalizado na forma de um personalizado TelemetryProcessor
ou TelemetryInitializer
, eles devem ser removidos. Eles podem ser encontrados no seu ServiceCollection
.
builder.Services.AddSingleton<ITelemetryInitializer, MyCustomTelemetryInitializer>();
builder.Services.AddApplicationInsightsTelemetryProcessor<MyCustomTelemetryProcessor>();
Remover trecho de JavaScript
Se você usou o Snippet fornecido pelo SDK do .NET do Application Insights, ele também deverá ser removido.
Para obter exemplos de código completo do que remover, revise o guia habilitar telemetria do lado do cliente para aplicativos Web.
Se você adicionou o JavaScript SDK para coletar telemetria do lado do cliente, ele também pode ser removido, embora continue a funcionar sem o SDK do .NET.
Para obter exemplos de código completo do que remover, consulte o guia de integração para o JavaScript SDK.
Remova todos os artefatos do Visual Studio
Se você usou o Visual Studio para integrar ao Application Insights, poderá ter mais arquivos restantes em seu projeto.
-
Properties/ServiceDependencies
pode ter uma referência ao seu recurso do Application Insights.
Para enviar sua telemetria para o Application Insights, o Exportador do Azure Monitor deve ser adicionado à configuração dos três sinais.
Global.asax.cs
O exemplo de código a seguir expande o exemplo anterior.
Ele agora coleta telemetria e envia para o 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();
}
}
Recomendamos definir sua Cadeia de Conexão em uma variável de ambiente:
APPLICATIONINSIGHTS_CONNECTION_STRING=<Your Connection String>
Mais opções para configurar a Cadeia de Conexão são detalhadas aqui: Configurar a Cadeia de Conexão do Application Insights.
Para enviar sua telemetria para o Application Insights, o Exportador do Azure Monitor deve ser adicionado à configuração dos três sinais.
Program.cs
O exemplo de código a seguir expande o exemplo anterior.
Ele agora coleta telemetria e envia para o 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();
}
}
Recomendamos definir sua Cadeia de Conexão em uma variável de ambiente:
APPLICATIONINSIGHTS_CONNECTION_STRING=<Your Connection String>
Mais opções para configurar a Cadeia de Conexão são detalhadas aqui: Configurar a Cadeia de Conexão do Application Insights.
Remover configurações personalizadas
Os cenários a seguir são opcionais e se aplicam a usuários avançados.
Se tiver mais referências ao TelemetryClient
, que é usado para gravar manualmente telemetria, elas devem ser removidas.
Remova qualquer filtragem ou enriquecimento personalizado adicionado como ou TelemetryProcessor
. A configuração faz referência a eles.
Remova todos os artefatos do Visual Studio
Se você usou o Visual Studio para integrar ao Application Insights, poderá ter mais arquivos restantes em seu projeto.
ConnectedService.json
pode ter uma referência ao seu recurso do Application Insights.
[Your project's name].csproj
pode ter uma referência ao seu recurso do Application Insights:
<ApplicationInsightsResourceId>/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/Default-ApplicationInsights-EastUS/providers/microsoft.insights/components/WebApplication4</ApplicationInsightsResourceId>
Para enviar sua telemetria para o Application Insights, o Exportador do Azure Monitor deve ser adicionado à configuração dos três sinais.
Program.cs
O exemplo de código a seguir expande o exemplo anterior.
Ele agora coleta telemetria e envia para o 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();
}
}
Recomendamos definir sua Cadeia de Conexão em uma variável de ambiente:
APPLICATIONINSIGHTS_CONNECTION_STRING=<Your Connection String>
Mais opções para configurar a Cadeia de Conexão são detalhadas aqui: Configurar a Cadeia de Conexão do Application Insights.
Mais configurações
O Application Insights oferecia muito mais opções de configuração via ApplicationInsightsServiceOptions
.
Configuração do Application Insights |
Alternativa OpenTelemetry |
AddAutoCollectedMetricExtractor (Adicionar Extrator de Métrica Coletada Automaticamente) |
N/A |
Versão da Aplicação |
Definir "service.version" no recurso |
ConnectionString |
Consulte as instruções sobre como configurar a Cadeia de Conexão. |
Opções de Coleta de Dependências |
N/A. Para personalizar dependências, revise as opções de configuração disponíveis para bibliotecas de instrumentação aplicáveis. |
Modo de Desenvolvedor |
N/A |
Ativar Amostragem Adaptativa |
N/A. Apenas a amostragem com taxa fixa é suportada. |
MóduloDeTelemetriaDeBatimentosDeServiçosDeAplicações |
N/A |
Ativar o módulo de telemetria de metadados da instância do Azure |
N/A |
ModuloDeTelemetriaDeRastreamentoDeDependenciasHabilitado |
Veja instruções sobre como filtrar registos de rastreamento. |
AtivarMóduloDeTelemetriaDeDiagnóstico |
N/A |
AtivarMóduloDeColetaDeContadoresDeEventos (EnableEventCounterCollectionModule) |
N/A |
AtivarSinalDeVida |
N/A |
HabilitarMóduloDeColeçãoDeContadoresDeDesempenho |
N/A |
AtivarFluxoMétricoPulsoRápido |
AzureMonitorOptions.EnableLiveMetrics |
Endereço do Endpoint |
Utilize ConnectionString. |
Chave de Instrumentação |
Utilize ConnectionString. |
Remover configurações personalizadas
Os cenários a seguir são opcionais e se aplicam a usuários avançados.
Se tiver mais referências ao TelemetryClient
, que são usadas para gravar a telemetria manualmente, elas devem ser removidas.
Se você adicionou qualquer filtragem ou enriquecimento personalizado na forma de um personalizado TelemetryProcessor
ou TelemetryInitializer
, ele deve ser removido. Você pode encontrar referências no seu ServiceCollection
.
builder.Services.AddSingleton<ITelemetryInitializer, MyCustomTelemetryInitializer>();
builder.Services.AddApplicationInsightsTelemetryProcessor<MyCustomTelemetryProcessor>();
Remova todos os artefatos do Visual Studio
Se você usou o Visual Studio para integrar ao Application Insights, poderá ter mais arquivos restantes em seu projeto.
-
Properties/ServiceDependencies
pode ter uma referência ao seu recurso do Application Insights.
Gorjeta
O nosso grupo de produtos está ativamente à procura de feedback sobre esta documentação. Forneça feedback a otel@microsoft.com ou consulte a seção de Suporte.
Próximos passos
Gorjeta
O nosso grupo de produtos está ativamente à procura de feedback sobre esta documentação. Forneça feedback a otel@microsoft.com ou consulte a seção de Suporte.
Suporte
- Para problemas de suporte do Azure, abra um ticket de suporte do Azure.
- Para problemas de OpenTelemetria, entre em contato diretamente com a comunidade OpenTelemetry .NET.
- Para obter uma lista de problemas em aberto relacionados ao Azure Monitor Exporter, consulte a página Problemas do GitHub.
- Para problemas de suporte do Azure, abra um ticket de suporte do Azure.
- Para problemas de OpenTelemetria, entre em contato diretamente com a comunidade OpenTelemetry .NET.
- Para obter uma lista de problemas em aberto relacionados ao Azure Monitor Exporter, consulte a página Problemas do GitHub.
- Para problemas de suporte do Azure, abra um ticket de suporte do Azure.
- Para problemas de OpenTelemetria, entre em contato diretamente com a comunidade OpenTelemetry .NET.
- Para obter uma lista de problemas em aberto relacionados ao Azure Monitor Exporter, consulte a página Problemas do GitHub.
- Para problemas de suporte do Azure, abra um ticket de suporte do Azure.
- Para problemas de OpenTelemetria, entre em contato diretamente com a comunidade OpenTelemetry .NET.
- Para obter uma lista de problemas em aberto relacionados ao Azure Monitor Exporter, consulte a página Problemas do GitHub.