O que observability-edot-dotnet-migrate faz?
Migre uma aplicação .NET do agente clássico Elastic APM .NET para o SDK EDOT .NET. Use ao migrar de pacotes Elastic.Apm.* para Elastic.OpenTelemetry.
Visão Geral
Esta skill automatiza a migração de uma aplicação .NET do agente clássico Elastic APM .NET (pacotes Elastic.Apm.*) para o SDK EDOT .NET (Elastic.OpenTelemetry). Ela garante que a instrumentação automática, a captura de spans e transações, e a configuração sejam convertidas corretamente.
Plataformas Suportadas
- ASP.NET Core
- .NET Framework (com IIS)
- Aplicações Console/Worker
- Azure Functions (isolated process)
Pré-requisitos
- Projeto .NET com agente clássico Elastic APM .NET instalado
- SDK do .NET (dotnet CLI) disponível
- Acesso ao feed NuGet oficial do Elastic (ou feed privado)
Processo de Migração
- Remover pacotes antigos: Desinstale
Elastic.Apm.NetCoreAll,Elastic.Apm.AspNetCore,Elastic.Apm.EntityFrameworkCore, etc. - Adicionar pacotes EDOT: Instale
Elastic.OpenTelemetrye provedores OpenTelemetry adicionais necessários (ex.:OpenTelemetry.Instrumentation.AspNetCore). - Atualizar configuração: Substitua
Agent.Start(new AgentComponents())porOpenTelemetrySdk.Create(builder => builder.UseElasticDefaultExporter()). - Ajustar instrumentação manual: Troque
IApmAgenteITransactionporTracerProvidereActivity. - Testar: Execute a aplicação e verifique se os traços aparecem no Kibana.
Exemplo de Código
Antes (Clássico APM):
using Elastic.Apm;
public void Configure(IApplicationBuilder app)
{
app.UseElasticApm();
}
Depois (EDOT):
using OpenTelemetry;
public void Configure(IApplicationBuilder app)
{
// Nenhuma chamada UseElasticApm necessária
}
Variáveis de Ambiente
ELASTIC_OTEL_*: Variáveis de configuração do EDOT (substituemELASTIC_APM_*).OTEL_EXPORTER_OTLP_ENDPOINT: Endpoint OTLP para exportação de dados.OTEL_SERVICE_NAME: Nome do serviço (substituiELASTIC_APM_SERVICE_NAME).
Notas Importantes
- A migração é irreversível após a remoção dos pacotes antigos; faça backup do código.
- Algumas funcionalidades do APM clássico podem não ter equivalentes diretos no OpenTelemetry (ex.: correlação de logs automática).
- Consulte a documentação oficial do Elastic para detalhes finos.