Español
Guía de Usuario
Monitores

Monitores

Health checks HTTP automatizados para detectar problemas antes que tus usuarios.

Lista de Monitores

Vista General

Los monitores están integrados en componentes tipo ENDPOINT. Ellos:

  • Ejecutan health checks HTTP a intervalos configurados
  • Evalúan condiciones de respuesta (código de estado, tiempo de respuesta, JSON path)
  • Actualizan el estado del componente automáticamente
  • Crean incidentes cuando los checks fallan
  • Envían alertas a equipos on-call

Crear un Monitor

Los monitores son parte de componentes ENDPOINT:

  1. Navega a Dashboard > Componentes
  2. Haz clic en "Añadir Componente"
  3. Selecciona Tipo: ENDPOINT
  4. Configura ajustes de monitoreo:

Configuración Básica

CampoDescripciónEjemplo
URLEndpoint a verificarhttps://api.example.com/health
MétodoMétodo HTTPGET, POST, PUT, HEAD
Intervalo de CheckCon qué frecuencia verificar15s a 24h
TimeoutTimeout de solicitud5000ms

Configuración de Solicitud

Headers:

{
  "Authorization": "Bearer token123",
  "X-Custom-Header": "valor"
}

Body (para POST/PUT):

{
  "test": true
}

Autenticación:

  • Basic Auth (usuario/contraseña)
  • Bearer Token
  • API Key (header o parámetro query)

Condiciones de Check

Define qué constituye un check exitoso:

Código de Estado

Verifica el código de respuesta HTTP:

ComparadorDescripciónEjemplo
Igual aCoincidencia exactaEstado = 200
No Igual aNo coincideEstado != 500
Mayor QueSobre valorEstado > 199
Menor QueBajo valorEstado < 400
EntreEn rangoEstado 200-299

Tiempo de Respuesta

Verifica latencia de respuesta:

ComparadorDescripciónEjemplo
Menor QueMás rápido que< 1000ms
Mayor QueMás lento que> 100ms

Usa verificaciones de tiempo de respuesta para detectar rendimiento degradado antes de que se vuelva crítico.

JSON Path

Afirma valores en respuestas JSON:

ComparadorDescripciónEjemplo
Igual aCoincidencia exacta de valor$.status = "ok"
ContieneCoincidencia de subcadena$.message contiene "success"
ExisteCampo presente$.data existe
No ExisteCampo ausente$.error no existe

Ejemplos de expresiones JSON Path:

$.status              → Campo raíz "status"
$.data.items[0].id    → ID del primer item
$.users[*].email      → Todos los emails de usuarios
$.config.enabled      → Campo anidado

Headers

Verifica headers de respuesta:

ComparadorDescripciónEjemplo
Igual aCoincidencia exactaContent-Type = "application/json"
ContieneSubcadenaContent-Type contiene "json"
ExisteHeader presenteX-Request-Id existe

Body Contiene

Verifica si el cuerpo de respuesta contiene texto:

El cuerpo de respuesta contiene "healthy"
El cuerpo de respuesta contiene "version"

Lógica de Condiciones

Múltiples condiciones se combinan con lógica AND:

✓ Código de estado = 200
AND
✓ Tiempo de respuesta < 1000ms
AND
✓ JSON $.status = "ok"

Todas las condiciones deben pasar para que el check sea exitoso.

Intervalos de Check

IntervaloCaso de UsoNotas
15 segundosServicios críticosAlto uso de recursos
30 segundosServicios importantesRecomendado para APIs
1 minutoMonitoreo estándarBuen balance
5 minutosMenos críticoMenor uso de recursos
15 minutosServicios en segundo planoOverhead mínimo
⚠️

Intervalos muy cortos (15-30s) aumentan la carga tanto en tu infraestructura como en el endpoint monitoreado.

Manejo de Fallos

Umbral de Fallos

Establece cuántos fallos consecutivos antes de tomar acción:

  • 1 fallo: Acción inmediata (puede causar falsos positivos)
  • 2-3 fallos: Recomendado (filtra problemas transitorios)
  • 5+ fallos: Conservador (retrasa detección)

En Fallo

Cuando se alcanza el umbral:

  1. El estado del componente cambia (ej., a Interrupción Mayor)
  2. Si auto-incidente está habilitado, se crea un incidente
  3. Se envían notificaciones a canales configurados
  4. Se disparan alertas on-call (si están configuradas)

Auto-Incidentes

Habilita creación automática de incidentes:

  1. Edita el componente ENDPOINT
  2. Habilita "Auto Crear Incidente"
  3. Configura:
    • Plantilla de título: ej., "{{component}} está caído"
    • Nivel de impacto: Menor, Mayor, Crítico
    • Estado inicial: Usualmente "Investigando"

Auto-Resolución

Cuando los checks se recuperan:

  1. Habilita "Auto Resolver"
  2. Establece "Umbral de Recuperación": éxitos consecutivos necesarios
  3. Cuando se recupera:
    • El incidente se resuelve automáticamente
    • El componente vuelve a Operacional
    • Se envía notificación de recuperación

Silenciar Monitores

Suprime alertas temporalmente:

  1. Edita el componente
  2. Habilita "Silenciado"
  3. Guarda

Cuando está silenciado:

  • Los checks continúan ejecutándose ✓
  • El estado se actualiza ✓
  • Los incidentes aún se crean (si está habilitado) ✓
  • No se envían notificaciones
  • No hay alertas on-call

Usa el silenciado durante mantenimiento conocido o cuando investigas problemas.

Vista Previa de Solicitud

Prueba tu configuración de monitor:

  1. En el editor del componente, haz clic en "Probar Solicitud"
  2. Ve la respuesta:
    • Código de estado
    • Tiempo de respuesta
    • Headers
    • Body
  3. Verifica resultados de condiciones
  4. Copia comando cURL para depuración

Dashboard de Monitores

Ve todos los monitores en un solo lugar:

  • Dashboard > Monitores muestra todos los componentes ENDPOINT
  • Filtros rápidos por estado, tipo
  • Acciones en lote (habilitar, deshabilitar, silenciar)

Tarjetas de Monitor

Cada tarjeta muestra:

  • Estado actual
  • Porcentaje de uptime
  • Resultado del último check
  • Tendencia de tiempo de respuesta

Acciones

  • Editar: Modificar configuración
  • Clonar: Crear una copia
  • Silenciar/Activar: Alternar alertas
  • Eliminar: Remover el monitor

Métricas de Tiempo de Respuesta

Los monitores rastrean tiempos de respuesta:

MétricaDescripción
ActualÚltimo check
PromedioMedia en rango de tiempo
P95Percentil 95
Min/MaxRango

Ve en la página de detalle del componente o widgets de página de estado.

Acceso API

Listar Monitores

curl http://localhost:3000/api/v1/components?type=ENDPOINT \
  -H "Authorization: Bearer sk_live_xxx"

Crear Monitor

curl -X POST http://localhost:3000/api/v1/components \
  -H "Authorization: Bearer sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Health de API",
    "type": "ENDPOINT",
    "url": "https://api.example.com/health",
    "method": "GET",
    "checkInterval": 60,
    "conditions": [
      {
        "type": "STATUS_CODE",
        "comparator": "EQUALS",
        "target": "200"
      },
      {
        "type": "RESPONSE_TIME",
        "comparator": "LESS_THAN",
        "target": "1000"
      }
    ],
    "autoCreateIncident": true,
    "failureThreshold": 3
  }'

Check Manual

curl -X POST http://localhost:3000/api/v1/components/{id}/check \
  -H "Authorization: Bearer sk_live_xxx"

Mejores Prácticas

Selección de Endpoint

  • Usa endpoints de health dedicados
  • Incluye verificaciones de dependencias en respuesta de health
  • Evita checks de health del balanceador de carga (puede no reflejar estado real)

Diseño de Condiciones

  • Comienza con checks básicos (código de estado)
  • Añade tiempo de respuesta como check secundario
  • Usa JSON path para validación profunda de health

Umbrales

  • Usa umbral de 2-3 fallos para la mayoría de casos
  • Menor para servicios críticos
  • Mayor para endpoints inestables

Intervalos

  • 1 minuto es un buen valor por defecto
  • Más corto para servicios críticos orientados al usuario
  • Más largo para servicios en segundo plano

Solución de Problemas

Falsos Positivos

Si los monitores se disparan incorrectamente:

  1. Aumenta umbral de fallos
  2. Aumenta intervalo de check
  3. Añade buffer de timeout
  4. Verifica conectividad de red

Interrupciones No Detectadas

Si los monitores no detectan problemas:

  1. Disminuye umbral de fallos
  2. Añade condiciones más específicas
  3. Verifica que el endpoint refleje el estado real del servicio

Checks Lentos

Si los checks toman demasiado tiempo:

  1. Reduce timeout
  2. Verifica rendimiento del endpoint monitoreado
  3. Asegura que la ruta de red sea óptima

Documentación Relacionada