Partilhar via


.NET .NET Aspire telemetria

Um dos principais objetivos do .NET.NET Aspire é garantir que os aplicativos sejam simples de depurar e diagnosticar. .NET .NET Aspire integrações configuram automaticamente as configurações de Logging, Trace e Metrics, que às vezes são conhecidas como os pilares da observabilidade, usando o .NETOpenTelemetry SDK.

  • Logging: Os eventos de log descrevem o que está acontecendo quando um aplicativo é executado. Um conjunto de linha de base é habilitado para integrações .NET.NET Aspire por padrão e um registro em log mais extenso pode ser habilitado sob demanda para diagnosticar problemas específicos.

  • Rastreamento : os rastreamentos correlacionam eventos de log que fazem parte da mesma atividade lógica (por exemplo, o tratamento de uma única solicitação), mesmo que estejam espalhados por várias máquinas ou processos.

  • Metrics: As métricas expõem as características de desempenho e saúde de uma aplicação como valores numéricos simples. Como resultado, eles têm baixa sobrecarga de desempenho e muitos serviços os configuram como telemetria sempre ativa. Isso também os torna adequados para disparar alertas quando problemas potenciais são detetados.

Juntos, esses tipos de telemetria permitem que você obtenha informações sobre o comportamento e o desempenho do seu aplicativo usando várias ferramentas de monitoramento e análise. Dependendo do serviço de suporte, algumas integrações podem suportar apenas alguns desses recursos.

.NET Aspire OpenTelemetry integração

O .NETOpenTelemetry SDK inclui recursos para coletar dados de várias APIs .NET, incluindo ILogger, Activity, Metere Instrument<T>. Essas APIs correspondem a recursos de telemetria, como registro, rastreamento e métricas. .NET Aspire projetos definem configurações SDK OpenTelemetry no projeto ServiceDefaults. Para obter mais informações, consulte .NET.NET Aspire configurações padrão do serviço.

Por padrão, o método ConfigureOpenTelemetry permite o registro, o rastreamento e as métricas para o aplicativo. Ele também adiciona exportadores para esses pontos de dados para que eles possam ser coletados por outras ferramentas de monitoramento.

Exportar dados de OpenTelemetry para monitoramento

O SDK do .NETOpenTelemetry facilita a exportação desses dados de telemetria para um armazenamento de dados ou ferramenta de relatório. O mecanismo de exportação de telemetria depende do protocolo OpenTelemetry (OTLP), que serve como uma abordagem padronizada para transmitir dados de telemetria por meio de REST ou gRPC. O método ConfigureOpenTelemetry também registra exportadores para fornecer seus dados de telemetria a outras ferramentas de monitoramento, como Prometheus ou Azure Monitor. Para obter mais informações, consulte a configuração OpenTelemetry.

OpenTelemetry variáveis de ambiente

OpenTelemetry tem uma lista de variáveis de ambiente conhecidas que configuram o comportamento mais importante para coletar e exportar telemetria. OpenTelemetry SDKs, incluindo o .NET SDK, oferecem suporte à leitura dessas variáveis.

.NET Aspire projetos são lançados com variáveis de ambiente que configuram o nome e a ID do aplicativo na telemetria exportada e definem o endereço do ponto de extremidade do OTLP server para exportar dados. Por exemplo:

  • OTEL_SERVICE_NAME = MyFrontend
  • OTEL_RESOURCE_ATTRIBUTES = service.instance.id=1a5f9c1e-e5ba-451b-95ee-ced1ee89c168
  • OTEL_EXPORTER_OTLP_ENDPOINT = http://localhost:4318

As variáveis ambientais são automaticamente definidas no desenvolvimento local.

.NET .NET Aspire desenvolvimento local

Quando você cria um projeto .NET Aspire, o painel .NET Aspire fornece uma interface do usuário para exibir a telemetria do aplicativo por padrão. Os dados de telemetria são enviados para o painel usando OTLP, e o painel implementa um server OTLP para receber dados de telemetria e armazená-los na memória. O fluxo de trabalho de depuração .NET.NET Aspire é o seguinte:

  • O desenvolvedor inicia o projeto .NET.NET Aspire com depuração, pressiona F5.
  • .NET .NET Aspire painel de instrumentos e o plano de controle do desenvolvedor (DCP) são iniciados.
  • A configuração do aplicativo é executada no projeto AppHost.
    • OpenTelemetry variáveis de ambiente são adicionadas automaticamente a .NET projetos durante a configuração do aplicativo.
    • O DCP fornece o nome (OTEL_SERVICE_NAME) e o ID (OTEL_RESOURCE_ATTRIBUTES) do aplicativo na telemetria exportada.
    • O ponto de extremidade OTLP é uma porta HTTP/2 iniciada pelo painel de controlo. Esse ponto de extremidade é definido na variável de ambiente OTEL_EXPORTER_OTLP_ENDPOINT em cada projeto. Isso instrui os projetos a exportarem a telemetria novamente para o painel.
    • Pequenos intervalos de exportação (OTEL_BSP_SCHEDULE_DELAY, OTEL_BLRP_SCHEDULE_DELAY, OTEL_METRIC_EXPORT_INTERVAL) para que os dados fiquem rapidamente disponíveis no painel. Pequenos valores são usados no desenvolvimento local para priorizar a capacidade de resposta do painel em detrimento da eficiência.
  • O DCP inicia projetos, contêineres e executáveis configurados.
  • Depois de iniciados, os aplicativos enviam telemetria para o painel.
  • O painel de controlo exibe a telemetria quase em tempo real de todos os projetos .NET.NET Aspire.

Todas essas etapas acontecem internamente, então, na maioria dos casos, o desenvolvedor simplesmente precisa executar o aplicativo para ver esse processo em ação.

.NET .NET Aspire implantação

.NET Aspire ambientes de implantação devem configurar OpenTelemetry variáveis de ambiente que façam sentido para seu ambiente. Por exemplo, OTEL_EXPORTER_OTLP_ENDPOINT deve ser configurado para o coletor OTLP local do ambiente ou serviço de monitoramento.

A telemetria .NET.NET Aspire funciona melhor em ambientes que suportam OTLP. A exportação de OTLP será desativada se OTEL_EXPORTER_OTLP_ENDPOINT não estiver configurada.

Para obter mais informações, consulte .NET.NET Aspire implementações.