O que observability-edot-dotnet-instrument faz?
Instrumenta uma aplicação .NET com a Distribuição Elastic do SDK OpenTelemetry (EDOT) .NET para rastreamento, métricas e logs automáticos. Use ao adicionar observabilidade a um serviço .NET que não possui agente APM existente.
Visão Geral
Esta habilidade configura a instrumentação automática de uma aplicação .NET usando o pacote Elastic.OpenTelemetry, que faz parte da Distribuição Elastic do OpenTelemetry (EDOT). Ela fornece rastreamento distribuído, métricas e logs de forma nativa, sem a necessidade de um agente APM proprietário.
Pré-requisitos
- Aplicação .NET (recomendado .NET 6+)
- Acesso a uma instância do Elastic APM (Elastic Cloud ou auto-gerenciado)
- Variáveis de ambiente configuradas (veja abaixo)
Configuração
1. Instalar o pacote NuGet
dotnet add package Elastic.OpenTelemetry
2. Configurar o serviço de instrumentação
No Program.cs da sua aplicação, adicione:
using Elastic.OpenTelemetry;
var builder = WebApplication.CreateBuilder(args);
// Adiciona a instrumentação EDOT
builder.Services.AddElasticOpenTelemetry();
// ... resto da configuração
var app = builder.Build();
app.Run();
3. Configurar variáveis de ambiente
Defina as seguintes variáveis de ambiente para conectar ao Elastic APM:
export ELASTIC_APM_SERVER_URL="https://seu-apm-server:8200"
export ELASTIC_APM_SECRET_TOKEN="seu-token"
export ELASTIC_APM_SERVICE_NAME="sua-aplicacao"
export ELASTIC_APM_ENVIRONMENT="producao"
4. Verificar a instrumentação
Execute sua aplicação normalmente. Os dados de telemetria serão automaticamente enviados para o Elastic APM.
Exemplo completo
using Elastic.OpenTelemetry;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
builder.Services.AddElasticOpenTelemetry();
var app = builder.Build();
app.MapGet("/", () => "Hello, Elastic Observability!");
app.Run();
Comportamento
- Rastreamento: Transações HTTP, chamadas a banco de dados, mensageria e outras operações são automaticamente rastreadas.
- Métricas: Métricas de sistema e de aplicação são coletadas e exportadas.
- Logs: Logs estruturados são automaticamente correlacionados com rastreamentos.
- Suporte a plataformas: ASP.NET Core, gRPC, Entity Framework Core, HttpClient, entre outros.
Solução de problemas
Logs de diagnóstico
Ative logs detalhados definindo:
export ELASTIC_OTEL_LOG_LEVEL="debug"
Verificar conexão
Use a ferramenta curl para testar a conexão com o servidor APM:
curl -v $ELASTIC_APM_SERVER_URL