Contenido del curso
Planificación y Gestión del Proyecto
Desarrollo, Versionamiento y Pruebas
- 5

Crea tu primera API con .NET en GitHub
06:38 min - 6

Pruebas unitarias con xUnit en .NET
06:40 min - 7

Blindaje de rama main y gestión de commits en GitHub
07:06 min - 8

GitHub Actions para validar pruebas en pull requests
08:34 min - 9

Dockerfile para API .NET en Docker local
06:51 min - 10

CI/CD para imágenes Docker en GitHub Actions
05:58 min - 11

Publicar imagen Docker en Hub con GitHub Actions
06:21 min
CI/CD
Observabilidad, Mejora Continua
- 15

OpenTelemetry con Azure Application Insights
Viendo ahora - 16

Variables de ambiente en GitHub Actions y Azure Container App
09:49 min - 17

Creación de paneles personalizados con Azure Workbooks
09:49 min - 18

Creación de método para obtener contactos con pruebas unitarias
04:01 min - 19

Deploy automático con pull request en Azure
04:29 min - 20

Herramientas DevOps que puedes intercambiar
04:05 min - 21

Scrum y DevOps juntos en GitHub Projects
03:31 min - 22

Qué sigue después de tu primer pipeline
02:55 min
OpenTelemetry con Azure Application Insights
Resumen
La observabilidad es uno de esos temas que cambia la forma en que entiendes tus aplicaciones en producción. Aquí aprenderás a integrar OpenTelemetry en una API de .NET y enviar toda la telemetría a Azure Application Insights, ideal para desarrolladores que están construyendo prácticas DevOps reales.
¿Qué es OpenTelemetry y por qué usarlo en tu API?
OpenTelemetry es el estándar actual de la industria para registrar logs, métricas y trazabilidad de una aplicación. Antes, cada servicio de monitoreo exigía su propio SDK; hoy, con un solo estándar puedes exportar la información a la herramienta que prefieras.
En este flujo, OpenTelemetry recolecta los datos dentro de tu API y, mediante un exportador, los envía a Application Insights, que ya está desplegado con Terraform en tu nube de Azure.
¿Qué hace OpenTelemetry exactamente? Captura métricas, logs y trazas de tu aplicación de forma estandarizada, sin atarte a un proveedor específico de monitoreo.
¿Qué paquetes NuGet necesitas instalar?
Ubícate dentro de la carpeta src/contactosAPI en tu terminal y agrega los paquetes uno por uno con dotnet add package [0:55]:
OpenTelemetry.Extensions.Hosting.OpenTelemetry.Instrumentation.AspNetCore.OpenTelemetry.Instrumentation.Http.- El paquete del exportador de Azure Monitor.
Cada comando descarga e integra el paquete a tu proyecto. Una vez listos los cuatro, tu API ya tiene las dependencias para emitir telemetría.
¿Cómo configurar la Connection String de Application Insights?
El siguiente paso vive en appsettings.json, archivo que debe estar listado en tu .gitignore para no exponer credenciales en el control de versiones [2:30]. Esta es una buena práctica que muchos olvidan al inicio.
Dentro de appsettings.json agregas una sección con AzureMonitor y su ConnectionString. Para obtener ese valor, entra al portal de Azure, abre el recurso de Application Insights y copia la Connection String que aparece en la vista principal.
¿Dónde encuentro la instrumentation key en Azure? En el portal de Azure, dentro del recurso Application Insights, en la sección Connection String. Cópiala completa y pégala en tu
appsettings.json.
¿Qué cambios van en Program.cs?
En Program.cs se concentra la lógica de inicialización. Allí agregas las sentencias using correspondientes a los paquetes recién instalados y registras los servicios dentro de builder.Services [3:45].
El método clave es AddOpenTelemetry(), que se configura en dos bloques:
- Métricas: capturan el funcionamiento general de la aplicación, como peticiones por segundo y latencia.
- Trazabilidad: registra el recorrido de cada acción, desde que arranca un proceso hasta que aterriza en su punto final.
Un detalle importante es cómo se accede a la Connection String. En entorno local usas builder.Configuration["AzureMonitor:ConnectionString"], mientras que en la nube ese valor llega por medio de una variable de ambiente. Mantener ambos casos visibles te ayuda a entender la diferencia entre desarrollo y producción.
¿Cómo validar que la telemetría funciona?
Con todo configurado, vuelve a la terminal y ejecuta dotnet build. Si compila, sigue con dotnet run para levantar la API.
Si aparece un error de JSON inválido, revisa las llaves y comillas en appsettings.json. Suele pasar cuando se anidan objetos de más; basta con eliminar las llaves sobrantes y reorganizar la estructura al nivel correcto [5:55].
Una vez que el servicio corre sin errores, abre en el navegador localhost/swagger/index.html, prueba el endpoint weatherforecast y ejecuta una petición. Si responde correctamente, la telemetría ya está viajando hacia Application Insights.
¿Qué sigue después de probar en local?
El reto continúa fuera del entorno local. Estos son los pasos para cerrar el ciclo:
- Ejecuta
docker buildpara empaquetar la API con los nuevos cambios. - Corre
docker runy verifica que el comportamiento sea idéntico al local. - Sube los cambios a tu pull request y fusiona la rama de telemetría con tu proyecto principal.
Cuando ese flujo funcione, tendrás una API con observabilidad completa, lista para que cualquier evento, error o métrica quede registrado en Azure y puedas tomar decisiones basadas en datos reales.
¿Ya integraste OpenTelemetry en alguno de tus proyectos? Cuéntame en los comentarios cómo te fue y qué herramientas usas para visualizar tus métricas.