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.
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.