Compartir a través de


Ejemplo: Uso de OpenTelemetry con Azure Monitor y Application Insights

Hay muchos sistemas comerciales de Administración de rendimiento de aplicaciones (APM) disponibles para elegir. En Azure, el producto principal de supervisión de aplicaciones es Application Insights, que forma parte de Azure Monitor. Una de las ventajas de un producto APM integrado es que puede correlacionar los diferentes orígenes de datos de observabilidad. Application Insights tiene vistas enriquecidas y funcionalidades de análisis.

1. Adición de la distribución de Application Insights

Para facilitar la experiencia de ASP.NET con Azure Monitor, se proporciona un paquete contenedor (denominado Distro en la parlance de OTel) que realiza la mayor parte del trabajo pesado de configuración de OpenTelemetry.

Este ejemplo se basa en el tutorial de OTLP. Siga los pasos del 1 al 5 para crear el código de aplicación mediante el exportador de OTLP. En este ejemplo, extenderemos el código para enviar datos a Application Insights.

Tome el mismo proyecto del paso 5 y agregue el siguiente paquete NuGet:

<ItemGroup>
  <PackageReference Include="Azure.Monitor.OpenTelemetry.AspNetCore" Version="1.3.0-beta.1" />
</ItemGroup>

Nota:

Reemplace la versión por la más reciente disponible.

2. Configuración del exportador

Agregue el siguiente código de inicialización de OTel antes de builder.Build();:

if (!string.IsNullOrEmpty(builder.Configuration["APPLICATIONINSIGHTS_CONNECTION_STRING"]))
{
    otel.UseAzureMonitor();
}

UseAzureMonitor() es la magia que agregará las bibliotecas de instrumentación comunes y los exportadores de Application Insights. Sólo tiene que añadir sus nombres Meter y ActivitySource personalizados al registro.

La misma inicialización de OTel funciona para OTLP que para Application Insights, la diferencia es qué exportadores selecciona. Puede usar ambas en la misma aplicación y seleccionar entre ellas definiendo las variables de entorno adecuadas.

3. Especifique el cadena de conexión

Si aún no es un cliente de Azure, puede crear una cuenta gratuita en https://azure.microsoft.com/free/. Inicie sesión en Azure Portal y seleccione un recurso de Application Insights existente o cree uno con https://ms.portal.azure.com/#create/Microsoft.AppInsights.

Application Insights identifica la instancia que se va a usar para almacenar y procesar datos a través de una clave de instrumentación y una cadena de conexión que se encuentran en la parte superior derecha de la interfaz de usuario del portal.

Cadena de conexión en Azure Portal

Si usa Azure App Service, esta cadena de conexión se pasa automáticamente a la aplicación como una variable de entorno. Para otros servicios o cuando se ejecuta localmente, debe pasarlo mediante la APPLICATIONINSIGHTS_CONNECTION_STRING variable de entorno o en appsettings.json. Para ejecutarse localmente, es más fácil agregar el valor a appsettings.development.json:

"AzureMonitor": {
    "ConnectionString": "InstrumentationKey=12345678-abcd-abcd-abcd-12345678..."
}

Nota:

Reemplace el valor por el de la instancia.

4. Examen de la aplicación en Application Insights

Al ejecutar la aplicación, la telemetría se enviará a Application Insights. Ahora debería obtener registros, métricas y seguimientos distribuidos para la aplicación. Abra el recurso de Application Insights en Azure Portal.

Registros

Vista de registros de App Insights

Métricas

Vista de métricas de App Insights

Seguimiento distribuido

Vista de transacciones de App Insights