Compartir a través de


.NET .NET Aspire telemetría

Uno de los objetivos principales de .NET.NET Aspire es garantizar que las aplicaciones sean sencillas de depurar y diagnosticar. .NET .NET Aspire integraciones configuran automáticamente las configuraciones de registro, seguimiento y métricas, que a veces se conocen como los pilares de observabilidad, mediante el SDK de .NETOpenTelemetry.

  • registro: los eventos de registro describen lo que sucede cuando se ejecuta una aplicación. Un conjunto de línea de base está habilitado para las integraciones de .NET.NET Aspire de forma predeterminada y se puede habilitar un registro más extenso a petición para diagnosticar problemas concretos.

  • seguimiento: los seguimientos correlacionan los eventos de registro que forman parte de la misma actividad lógica (por ejemplo, el control de una sola solicitud), incluso si se distribuyen entre varias máquinas o procesos.

  • Métricas: las métricas exponen las características de rendimiento y estado de una aplicación como valores numéricos simples. Como resultado, tienen un bajo impacto en el rendimiento y muchos servicios los configuran como telemetría siempre activada. Esto también hace que sean adecuados para desencadenar alertas cuando se detectan posibles problemas.

Juntos, estos tipos de telemetría permiten obtener información sobre el comportamiento y el rendimiento de la aplicación mediante diversas herramientas de supervisión y análisis. En función del servicio de respaldo, algunas integraciones solo pueden admitir algunas de estas características.

integración de .NET AspireOpenTelemetry

El SDK .NETOpenTelemetry incluye características para recopilar datos de varias interfaces de API de .NET, como ILogger, Activity, Metery Instrument<T>. Estas API corresponden a características de telemetría como el registro, el seguimiento y las métricas. proyectos definen configuraciones del SDK de en el proyecto serviceDefaults de . Para obtener más información, consulte .NET.NET Aspire valores predeterminados del servicio.

De forma predeterminada, el método ConfigureOpenTelemetry habilita el registro, el seguimiento y las métricas de la aplicación. También agrega exportadores para estos puntos de datos para que puedan recopilarlos otras herramientas de supervisión.

Exportar datos de OpenTelemetry para monitoreo

El SDK de .NETOpenTelemetry facilita la exportación de estos datos de telemetría a un almacén de datos o a una herramienta de informes. El mecanismo de exportación de telemetría se basa en el protocolo de OpenTelemetry (OTLP), que actúa como un enfoque estandarizado para transmitir datos de telemetría a través de REST o gRPC. El método ConfigureOpenTelemetry también registra exportadores para proporcionar los datos de telemetría a otras herramientas de supervisión, como Prometheus o Azure Monitor. Para obtener más información, consulte OpenTelemetry configuración.

OpenTelemetry variables de entorno

OpenTelemetry tiene una lista de variables de entorno conocidas que configuran el comportamiento más importante para recopilar y exportar telemetría. OpenTelemetry SDK, incluido el SDK de .NET, admite la lectura de estas variables.

.NET Aspire proyectos se inician con variables de entorno que configuran el nombre y el identificador de la aplicación en la telemetría exportada y establecen el punto de conexión de la dirección del OTLP server para exportar datos. Por ejemplo:

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

Las variables de entorno se establecen automáticamente en el desarrollo local.

.NET .NET Aspire desarrollo local

Al crear un proyecto de .NET Aspire, el panel de .NET Aspire proporciona una interfaz de usuario para ver la telemetría de la aplicación de forma predeterminada. Los datos de telemetría se envían al panel mediante OTLP y el panel implementa un server de OTLP para recibir datos de telemetría y almacenarlos en memoria. El flujo de trabajo de depuración de .NET.NET Aspire es el siguiente:

  • El desarrollador inicia el proyecto de .NET.NET Aspire iniciando el modo de depuración, presiona F5.
  • Inicio del tablero .NET.NET Aspire y del plano de control del desarrollador (DCP).
  • La configuración de la aplicación se ejecuta en el proyecto AppHost.
    • OpenTelemetry variables de entorno se agregan automáticamente a .NET proyectos durante la configuración de la aplicación.
    • DCP proporciona el nombre (OTEL_SERVICE_NAME) y el identificador (OTEL_RESOURCE_ATTRIBUTES) de la aplicación en la telemetría exportada.
    • El punto de conexión de OTLP es un puerto HTTP/2 activado por el panel de control. Este punto de conexión se establece en la variable de entorno OTEL_EXPORTER_OTLP_ENDPOINT en cada proyecto. Esto indica a los proyectos que vuelvan a exportar la telemetría al panel.
    • Intervalos de exportación pequeños (OTEL_BSP_SCHEDULE_DELAY, OTEL_BLRP_SCHEDULE_DELAY, OTEL_METRIC_EXPORT_INTERVAL) para que los datos estén disponibles rápidamente en el panel. Los valores pequeños se usan en el desarrollo local para priorizar la capacidad de respuesta del panel sobre la eficacia.
  • El DCP inicia proyectos, contenedores y ejecutables configurados.
  • Una vez iniciada, las aplicaciones envían telemetría al panel.
  • El panel muestra datos de telemetría casi en tiempo real de todos los proyectos de .NET.NET Aspire.

Todos estos pasos se realizan internamente, por lo que, en la mayoría de los casos, el desarrollador simplemente necesita ejecutar la aplicación para ver este proceso en acción.

despliegue de .NET.NET Aspire

.NET Aspire Los entornos de implementación deben configurar OpenTelemetry las variables de entorno que sean adecuadas para su entorno. Por ejemplo, OTEL_EXPORTER_OTLP_ENDPOINT debe configurarse en el recopilador OTLP local del entorno o en el servicio de supervisión.

.NET .NET Aspire la telemetría funciona mejor en entornos que son compatibles con OTLP. La exportación de OTLP está deshabilitada si OTEL_EXPORTER_OTLP_ENDPOINT no está configurado.

Para obtener más información, consulte .NET.NET Aspire despliegues.