monitoring-setup

$npx mdskill add 686f6c61/alfred-dev/monitoring-setup

Configure observability with logging, metrics, and alerts.

  • Enables structured logging, error tracking, and metric definition.
  • Integrates with Sentry for error monitoring and alerting systems.
  • Decides actions based on user requests for monitoring setup.
  • Delivers configuration steps and JSON log format examples.

SKILL.md

.github/skills/monitoring-setupView on GitHub ↗
---
name: monitoring-setup
description: "Configurar observabilidad del servicio. Activar cuando el usuario quiera configurar logging, integrar Sentry, implementar error tracking, definir metricas, configurar alertas, mejorar la observabilidad o monitorizar un servicio."
---

# Configurar observabilidad

## Resumen

Este skill configura las tres patas de la observabilidad: logging estructurado, error tracking y métricas. Sin observabilidad, operar un servicio en producción es como conducir de noche sin luces: todo va bien hasta que no. El objetivo es poder responder a tres preguntas fundamentales: qué está pasando ahora, qué ha pasado antes y por qué algo falla.

## Proceso

1. **Configurar logging estructurado.** Los logs en texto plano son difíciles de buscar y analizar. Usar JSON como formato estándar:

   ```json
   {
     "timestamp": "2024-03-15T10:30:00Z",
     "level": "error",
     "message": "Fallo al procesar pago",
     "service": "payment-service",
     "requestId": "abc-123",
     "userId": "usr-456",
     "error": {
       "type": "PaymentGatewayError",
       "message": "Timeout after 30s",
       "stack": "..."
     }
   }
   ```

   Principios del logging:

   - Cada entrada tiene timestamp, nivel, mensaje y contexto.
   - Los request IDs permiten trazar un flujo a través de múltiples servicios.
   - Los datos sensibles (contraseñas, tokens, datos personales) NUNCA aparecen en logs.
   - Niveles: `debug` (desarrollo), `info` (flujo normal), `warn` (situación inusual), `error` (algo falló).

2. **Configurar error tracking.** Herramientas como Sentry, Bugsnag o Rollbar proporcionan contexto rico para cada error:

   - Instalación del SDK en la aplicación.
   - Configuración del DSN (endpoint de reporte).
   - Source maps para errores de frontend (si aplica).
   - Agrupación de errores para evitar ruido.
   - Alertas para errores nuevos o con picos de frecuencia.
   - Integración con el sistema de issues (GitHub, Jira) para seguimiento.

3. **Definir métricas de negocio y técnicas.** Las métricas cuentan la historia del sistema en números:

   - **Técnicas:** latencia de requests (p50, p95, p99), tasa de error, uso de CPU/memoria, conexiones a base de datos.
   - **Negocio:** registros por hora, transacciones completadas, tasa de conversión, usuarios activos.

   Las métricas de negocio son las que más interesan al equipo de producto; las técnicas son las que interesan a operaciones.

4. **Configurar alertas.** Las alertas deben ser accionables, no ruidosas:

   - **Crítica:** el servicio está caído o perdiendo datos. Requiere acción inmediata (pagina al ingeniero de guardia).
   - **Alta:** tasa de error elevada o degradación significativa. Requiere atención en la próxima hora.
   - **Media:** tendencia preocupante que no requiere acción inmediata. Revisar en el próximo día laborable.

   Evitar alertas que nadie mira. Si una alerta se ignora sistemáticamente, o se elimina o se ajusta su umbral.

5. **Implementar health endpoints.** La aplicación debe exponer su estado de salud:

   - `GET /health`: responde 200 si la aplicación está corriendo (liveness).
   - `GET /ready`: responde 200 si la aplicación puede procesar requests (readiness). Incluye verificación de dependencias críticas (base de datos, caché).

6. **Documentar la configuración.** Dejar claro dónde se visualizan los logs, cómo se accede al error tracking y qué dashboards están disponibles.

## Criterios de éxito

- Los logs son estructurados (JSON) con timestamp, nivel, mensaje y contexto.
- No hay datos sensibles en los logs.
- El error tracking está integrado y agrupa errores correctamente.
- Las métricas cubren al menos latencia, tasa de error y una métrica de negocio.
- Las alertas son accionables y están clasificadas por severidad.
- Los health endpoints están implementados y responden correctamente.

## Que NO hacer

- No loguear datos personales (PII). Nombres, emails, direcciones IP, tokens de sesión y cualquier dato identificable deben ser redactados o excluidos de los logs para cumplir con GDPR y buenas prácticas de seguridad.
- No configurar alertas sin definir umbrales concretos. Una alerta sin umbral genera ruido y se acaba ignorando. Cada alerta debe tener un criterio numérico que determine cuándo se dispara y cuándo se resuelve.

More from 686f6c61/alfred-dev

SkillDescription
acceptance-criteriaGenerar criterios de aceptación en formato Given/When/Then. Activar cuando el usuario quiera definir criterios de aceptacion, usar formato Given When Then, escribir en Gherkin, saber como determinar que algo esta terminado o establecer una definicion de hecho.
architecture-docsUsar para documentar la arquitectura del sistema. Activar ante: documentar arquitectura, diagrama del sistema, como funciona el proyecto, vision general tecnica
bundle-sizeAnalizar y reducir el tamaño de bundles frontend. Activar cuando el bundle sea grande, se quiera reducir tamaño, aplicar tree shaking, configurar lazy loading, usar webpack analyzer o analizar el peso de la aplicacion.
choose-stackUsar para evaluar y elegir tecnologías con matriz de decisión ponderada. Activar cuando el usuario quiera elegir tecnología, comparar frameworks, decidir entre alternativas técnicas, construir una matriz de decisión, evaluar stack, seleccionar base de datos, elegir lenguaje o comparar herramientas.
ci-cd-pipelineConfigurar pipeline CI/CD adaptado al proyecto. Activar cuando el usuario quiera configurar CI, crear GitHub Actions, configurar GitLab CI, montar un pipeline de despliegue, automatizar tests o implementar integracion continua.
code-review-responseUsar al recibir feedback de code review para responder técnicamente. Activar cuando el usuario quiera responder a comentarios de PR, gestionar feedback de code review, resolver comentarios de un revisor, o cuando el revisor pide cambios en el código.
compliance-checkUsar para verificar cumplimiento RGPD, NIS2 y CRA. También: verificar RGPD, cumplimiento normativo, NIS2, CRA, Cyber Resilience Act, protección de datos, regulación europea.
copy-reviewRevisar textos publicos: claridad, tono, ortografia y CTAs. Activar ante: revisar textos, mejorar copy, tono de comunicacion, textos de la web, landing page copy
dependency-strategyEstrategia integral de gestion de dependencias: inventario, evaluacion de riesgo, politica de actualizaciones y documentacion. Usar para auditar el estado global de las dependencias del proyecto.
dependency-updateRevisar dependencias desactualizadas, con CVEs o end-of-life, y proponer actualizaciones seguras. También: actualizar paquetes, actualizar dependencias, Dependabot, Renovate, versión desactualizada, breaking changes.