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

Instalar el paquete

Versión más reciente: Nuget

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.

  1. Credential Establezca en .AzureMonitorExporterOptions

    var credential = new DefaultAzureCredential();
    
    Sdk.CreateTracerProviderBuilder()
        .AddAzureMonitorTraceExporter(o =>
        {
            o.ConnectionString = "InstrumentationKey=00000000-0000-0000-0000-000000000000";
            o.Credential = credential;
        })
        .Build();
    
  2. 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:

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.