Biblioteca cliente exportadora de Azure Monitor para .NET: versión 1.0.0
Los exportadores de .NET de OpenTelemetry que envían datos de telemetría a Azure Monitor siguiendo la especificación openTelemetry.
Introducción
Requisitos previos
- Suscripción de Azure: Para usar los servicios de Azure, incluido El exportador de Azure Monitor para OpenTelemetry .NET, necesitará una suscripción. Si no tiene una cuenta de Azure existente, puede registrarse para obtener una evaluación gratuita o usar las ventajas de la suscripción de Visual Studio al crear una cuenta.
- Aplicación de Azure cadena de conexión de Insights: para enviar datos de telemetría al servicio de supervisión, necesitará una cadena de conexión de Aplicación de Azure Insights. Si no está familiarizado con la creación de recursos de Azure, puede seguir la guía paso a paso para crear un recurso de Application Insights y copiar la cadena de conexión.
Instalar el paquete
Versión más reciente:
Instale el exportador de Azure Monitor para OpenTelemetry .NET con NuGet:
dotnet add package Azure.Monitor.OpenTelemetry.Exporter
Compilaciones nocturnas
Las compilaciones nocturnas están disponibles en la fuente de desarrollo de este repositorio. Estos se proporcionan sin soporte técnico y no están diseñados para cargas de trabajo de producción.
Agregar el exportador
En los ejemplos siguientes se muestra cómo agregar a la AzureMonitorExporter
configuración de OpenTelemetry.
Traces
Sdk.CreateTracerProviderBuilder() .AddAzureMonitorTraceExporter(o => o.ConnectionString = "InstrumentationKey=00000000-0000-0000-0000-000000000000") .Build();
Para obtener un ejemplo completo, vea TraceDemo.cs.
Métricas
Sdk.CreateMeterProviderBuilder() .AddAzureMonitorMetricExporter(o => o.ConnectionString = "InstrumentationKey=00000000-0000-0000-0000-000000000000") .Build();
Para obtener un ejemplo completo, consulte MetricDemo.cs.
Registros
LoggerFactory.Create(builder => { builder.AddOpenTelemetry(options => { options.AddAzureMonitorLogExporter(o => o.ConnectionString = "InstrumentationKey=00000000-0000-0000-0000-000000000000"); }); });
Para obtener un ejemplo completo, consulte LogDemo.cs.
Autenticar el cliente
La autenticación de Azure Active Directory (AAD) es una característica opcional que se puede usar con el exportador de Azure Monitor. Esto se facilita con la biblioteca de identidades de Azure, que proporciona compatibilidad con la autenticación de clientes del SDK de Azure con sus servicios de Azure correspondientes.
Hay dos opciones para habilitar la autenticación de AAD. Tenga en cuenta que si ambos se han establecido AzureMonitorExporterOptions tendrán prioridad.
Credential
Establezca en .AzureMonitorExporterOptions
var credential = new DefaultAzureCredential(); Sdk.CreateTracerProviderBuilder() .AddAzureMonitorTraceExporter(o => { o.ConnectionString = "InstrumentationKey=00000000-0000-0000-0000-000000000000"; o.Credential = credential; }) .Build();
Credential
Proporcione al método AddAzureMonitorExporter.var credential = new DefaultAzureCredential(); Sdk.CreateTracerProviderBuilder() .AddAzureMonitorTraceExporter(o => o.ConnectionString = "InstrumentationKey=00000000-0000-0000-0000-000000000000", credential) .Build();
Conceptos clave
Algunos conceptos clave para .NET son:
Información general sobre el seguimiento distribuido de .NET: el seguimiento distribuido es una técnica de diagnóstico que ayuda a los ingenieros a localizar errores y problemas de rendimiento dentro de las aplicaciones, especialmente aquellas que se pueden distribuir entre varias máquinas o procesos.
Información general sobre el registro en .NET: .NET admite una API de registro que funciona con una variedad de proveedores de registro integrados y de terceros.
Algunos conceptos clave para Azure Monitor son:
- Direcciones IP usadas por Azure Monitor: este exportador envía seguimientos al recurso de Azure Monitor configurado mediante HTTPS. Quizás deba conocer las direcciones IP si la aplicación o la infraestructura que está supervisando se hospedan detrás de un firewall.
Algunos conceptos clave para OpenTelemetry incluyen:
OpenTelemetry: OpenTelemetry es un conjunto de bibliotecas que se usan para recopilar y exportar datos de telemetría (métricas, registros y seguimientos) para el análisis con el fin de comprender el rendimiento y el comportamiento del software.
Instrumentación: la capacidad de llamar directamente a la API de OpenTelemetry mediante cualquier aplicación se facilita mediante la instrumentación. Una biblioteca que habilita la observabilidad de OpenTelemetry para otra biblioteca se denomina biblioteca de instrumentación.
Señal de seguimiento: el seguimiento hace referencia al seguimiento distribuido. Se puede considerar como un grafo acíclico dirigido (DAG) de intervalos, donde los bordes entre intervalos se definen como relación primaria/secundaria.
Muestreo: el muestreo es un mecanismo para controlar el ruido y la sobrecarga introducidos por OpenTelemetry reduciendo el número de muestras de seguimiento recopiladas y enviadas al back-end.
Señal métrica: OpenTelemetry permite registrar mediciones sin procesar o métricas con agregación predefinida y un conjunto de atributos (dimensiones).
Señal de registro: una grabación de un evento. Normalmente, el registro incluye una marca de tiempo que indica cuándo se produjo el evento, así como otros datos que describen lo que sucedió, dónde sucedió, etc.
Para obtener más información sobre el proyecto OpenTelemetry, revise las especificaciones de OpenTelemetry.
Ejemplos
Consulte para Program.cs
obtener una demostración completa.
Solución de problemas
Azure Monitor Exporter usa EventSource para su propio registro interno. Los registros del exportador están disponibles para cualquier elemento EventListener si se opta por el origen de nombre "OpenTelemetry-AzureMonitor-Exporter".
OpenTelemetry también proporciona su propia característica de autodiagnóstico para recopilar registros internos. Un ejemplo de esto está disponible en nuestro proyecto de demostración aquí.
Pasos siguientes
Para más información sobre el SDK de Azure, consulte este sitio web.
Contribuciones
Consulte CONTRIBUTING.md para obtener más información sobre el proceso de contribución.