Configuración de Open Telemetry con Azure Application Insights
Clase 15 de 22 • Curso de Introducción a DevOps
Resumen
La observabilidad en aplicaciones es crucial para obtener información valiosa sobre su rendimiento y comportamiento. Una solución eficaz que facilita esta tarea es Open Telemetry, una herramienta estandarizada capaz de registrar logs y trazar acciones dentro de aplicaciones, conectándose fácilmente con servicios en la nube como Azure Application Insights.
¿Qué es Open Telemetry y para qué sirve?
Open Telemetry es un estándar cada vez más adoptado en la industria que permite monitorear aplicaciones sin depender de distintos SDKs. Su utilidad radica en que puede registrar datos de rendimiento, errores y trazabilidad desde un mismo punto centralizado, facilitando su análisis e interpretación.
Ventajas principales de implementar Open Telemetry:
- Proporciona métricas y trazabilidad detallada.
- No es necesario integrar múltiples SDKs de monitoreo.
- Fácil conexión con servicios en la nube como Azure Application Insights.
- Implementación sencilla sigue aumentando con el tiempo.
¿Cómo instalar Open Telemetry en una aplicación .NET?
Para integrar Open Telemetry, debes agregar algunos paquetes específicos en tu aplicación .NET desde Nuget a través de la terminal:
.net app package opentelemetry.extensions.hosting
.net app package opentelemetry.instrumentation.asp.netcore
.net app package opentelemetry.instrumentation.http
Una vez instalados estos paquetes, edita el archivo appsettings.json
(asegurado dentro del .gitignore
) para incluir la siguiente configuración, usando tu connection string proporcionada por Application Insights desde el portal de Azure:
"AzureMonitor": {
"ConnectionString": "[Tu instrumentation key aquí]"
}
¿De qué manera configurar Open Telemetry en Program.cs?
Una vez agregados los paquetes necesarios, modifica el archivo program.cs
agregando sentencias using
para invocar estos paquetes y configurar adecuadamente la colecta de métricas y trazabilidad:
- Colecta de métricas:
builder.Services.AddOpenTelemetryMetrics(options =>
{
options.AddAspNetCoreInstrumentation();
options.AddHttpClientInstrumentation();
options.AddAzureMonitorExporter(o =>
o.ConnectionString = builder.Configuration["AzureMonitor:ConnectionString"]);
});
- Colecta de trazabilidad:
builder.Services.AddOpenTelemetryTracing(tracing =>
{
tracing.AddAspNetCoreInstrumentation();
tracing.AddHttpClientInstrumentation();
tracing.AddAzureMonitorExporter(o =>
o.ConnectionString = builder.Configuration["AzureMonitor:ConnectionString"]);
});
Con estas configuraciones, toda la información de telemetría generada por tu aplicación se almacenará directamente en tu instancia de Application Insights en Azure.
¿Cómo verificar que la integración funciona correctamente?
Después de realizar estas configuraciones, construye y ejecuta tu aplicación para validar que todo esté en orden:
.net build
.net run
Verifica que no hayan errores compilando y ejecutando la aplicación, y prueba desde la UI generada (por ejemplo, utilizando Swagger) para asegurarte de que la aplicación responda correctamente y registre adecuadamente en Application Insights.
Finalmente, se recomienda realizar un despliegue en Docker, probando el funcionamiento consistente, antes de integrar los cambios en el repositorio principal de tu proyecto.
¿Tienes algún comentario o pregunta sobre el proceso de integración o quieres compartir cómo ha sido tu experiencia implementando observabilidad en tu aplicación? ¡Cuéntanos!