elastic/observability-edot-dotnet-instrument

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.

O que é observability-edot-dotnet-instrument?

Esta skill permite a instrumentação automática de aplicações .NET utilizando a Distribuição Elastic do SDK OpenTelemetry (EDOT) .NET. Ela configura o rastreamento distribuído, coleta de métricas e logs sem a necessidade de um agente APM pré-existente. Ideal para desenvolvedores que desejam adicionar observabilidade a serviços .NET de forma nativa e integrada com o ecossistema Elastic. A skill funciona injetando automaticamente o pacote `Elastic.OpenTelemetry` e configurando os exporters para o Elastic APM, suportando tanto aplicações ASP.NET Core quanto outros tipos de projetos .NET.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/elastic/agent-skills/tree/main/skills/observability-edot-dotnet-instrument

Installed? Explore more Produtividade e Colaboração skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

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

Referências

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

elastic/cloud-access-management

Manage Elastic Cloud organization access: invite users, assign roles to Serverless projects, and create or revoke Cloud API keys. Use when granting, modifying, or auditing user access.

elastic/cloud-create-project

Creates Elastic Cloud Serverless projects (Elasticsearch, Observability, or Security) via the REST API, saves credentials to file, and bootstraps a scoped Elasticsearch API key. Use when creating a new serverless project, provisioning a search or observability environment, or spinning up a new Elastic Cloud project.

elastic/cloud-manage-project

Manages existing Elastic Cloud Serverless projects: list, get, update, delete, reset credentials, resume, and load saved credentials. Connects to existing projects by resolving endpoints and acquiring scoped Elasticsearch API keys. Use when performing day-2 operations on serverless projects, connecting to an existing project, loading or resetting project credentials, or looking up project details.

elastic/cloud-network-security

Manage Serverless network security (traffic filters): create, update, and delete IP filters and AWS PrivateLink VPC filters. Use when restricting network access or configuring private connectivity.

elastic/cloud-setup

Configures Elastic Cloud authentication and environment defaults. Use when setting up EC_API_KEY, configuring Cloud API access, or when another cloud skill requires credentials.

elastic/elasticsearch-audit

Enable, configure, and query Elasticsearch security audit logs. Use when the task involves audit logging setup, event filtering, or investigating security incidents like failed logins.

elastic/elasticsearch-authn

Authenticate to Elasticsearch using native, file-based, LDAP/AD, SAML, OIDC, Kerberos, JWT, or certificate realms. Use when connecting with credentials, choosing a realm, or managing API keys. Assumes the target realms are already configured.

elastic/elasticsearch-authz

Manage Elasticsearch RBAC: native users, roles, role mappings, document- and field-level security. Use when creating users or roles, assigning privileges, or mapping external realms like LDAP/SAML.

elastic/elasticsearch-esql

Execute ES|QL (Elasticsearch Query Language) queries, use when the user wants to query Elasticsearch data, analyze logs, aggregate metrics, explore data, or create charts and dashboards from ES|QL results.

elastic/elasticsearch-file-ingest

Ingest and transform data files (CSV/JSON/Parquet/Arrow IPC) into Elasticsearch with stream processing and custom transforms. Use when loading files or batch importing data — not for reindexing, general ingest pipeline design, or bulk API patterns.

elastic/elasticsearch-onboarding

Help developers new to Elasticsearch get from zero to a working search experience. Guide them through understanding their intent, mapping their data, and building a search experience with best practices baked in. Use this when the user shows intent to build search-related functionality, asks about Elasticsearch-related concepts for their use case, or expresses the need for help getting started with Elasticsearch.

elastic/elasticsearch-security-troubleshooting

Diagnose and resolve Elasticsearch security errors: 401/403 failures, TLS problems, expired API keys, role mapping mismatches, and Kibana login issues. Use when the user reports a security error.

elastic/kibana-agent-builder

Create and manage Agent Builder agents and custom tools in Kibana. Use when asked to create, update, delete, test, or inspect agents or tools in Agent Builder.

elastic/kibana-alerting-rules

Create and manage Kibana alerting rules via REST API or Terraform. Use when creating, updating, or managing rule lifecycle (enable, disable, mute, snooze) or rules-as-code workflows.

elastic/kibana-audit

Enable and configure Kibana audit logging for saved object access, logins, and space operations. Use when setting up Kibana audit, filtering events, or correlating Kibana and ES audit logs.

elastic/kibana-connectors

Create and manage Kibana connectors for Slack, PagerDuty, Jira, webhooks, and more via REST API or Terraform. Use when configuring third-party integrations or managing connectors as code.

elastic/kibana-dashboards

Create and manage Kibana Dashboards and visualizations. Use when you need to define dashboards and visualizations declaratively, version control them, or automate their deployment.

elastic/kibana-streams

List, inspect, enable, disable, and resync Kibana Streams via the REST API. Use when the user needs stream details, ingest/query settings, queries, significant events, or attachments.

elastic/kibana-vega

Create Vega and Vega-Lite visualizations with ES|QL data sources in Kibana. Use when building custom charts, dashboards, or programmatic panel layouts beyond standard Lens charts.

elastic/observability-edot-dotnet-migrate

Migrate a .NET application from the classic Elastic APM .NET agent to the EDOT .NET SDK. Use when switching from Elastic.Apm.* packages to Elastic.OpenTelemetry.

Habilidades Relacionadas