Configuración de OpenTelemetry en aplicaciones .NET Core

Clase 15 de 22Curso de Introducción a DevOps

Resumen

La observabilidad se ha convertido en un aspecto fundamental en las aplicaciones modernas, ayudándonos a comprender y mejorar continuamente nuestro rendimiento. OpenTelemetry representa hoy en día un estándar en la industria que permite facilitar y centralizar la telemetría mediante herramientas como Azure Application Insights.

¿Qué es OpenTelemetry y por qué usarlo?

OpenTelemetry es un estándar actual en la industria para gestionar logs y trazabilidad en aplicaciones. Su ventaja principal radica en evitar el uso de múltiples SDKs específicos de cada herramienta de monitoreo, simplificando considerablemente el proceso de observabilidad.

Utilizando OpenTelemetry, las métricas y la trazabilidad de la aplicación pueden enviarse fácilmente al servicio de monitoreo en la nube Azure Application Insights.

¿Cómo agregar OpenTelemetry en tu aplicación .NET?

Implementar OpenTelemetry en una aplicación .NET es simple y requiere seguir estos pasos prácticos:

1. Instalación de paquetes necesarios

Primero, es necesario instalar ciertos paquetes NuGet que permiten habilitar OpenTelemetry en tu proyecto. Mediante la terminal en la ubicación adecuada, debes instalar los siguientes paquetes:

  1. OpenTelemetry.Extensions.Hosting
  2. OpenTelemetry.Instrumentation.AspNetCore
  3. OpenTelemetry.Instrumentation.Http

Estos paquetes brindan la capacidad de recolectar datos críticos relacionados con peticiones y rendimiento.

2. Configuración en appsettings.json

En este archivo, debes incluir la cadena de conexión (Connection String) que proporciona Azure Monitor. Esta cadena permite la comunicación directa con Azure Application Insights, obteniendo registros precisos y en tiempo real.

Además, es recomendable mantener appsettings.json fuera del control de versiones mediante el archivo .gitignore a fin de proteger información sensible.

3. Integración en program.cs

Luego, desde el archivo program.cs, introduces la lógica para estructurar y enviar las métricas y datos de trazabilidad hacia Azure Application Insights:

builder.Services.AddOpenTelemetryMetrics();
builder.Services.Configure<OpenTelemetrySettings>(builder.Configuration.GetSection("AzureMonitor"));

La configuración actualiza tus using, añadiendo las métricas y separa claramente cómo obtener la cadena de conexión para entornos locales (desde appsettings.json) y para entornos de nube (variables de entorno).

¿Cómo verificar la implementación?

Finalmente, para asegurarte de que todo está configurado correctamente:

  • Ejecuta .net build y verifica que no haya errores.
  • Corre la aplicación localmente con .net run.
  • Revisa su funcionamiento a través del panel local usando Swagger (localhost/swagger/index.html).
  • Si todo funciona correctamente, entonces procedes con la construcción y ejecución en Docker, y posteriormente realizas tu respectivo pull request.

Implementar OpenTelemetry optimiza significativamente la forma de monitorear aplicaciones, mostrando métricas claras para su análisis y mejora eficiente. ¿Has comenzado ya a utilizar OpenTelemetry en tus aplicaciones? ¡Comparte tu experiencia o dudas en los comentarios!