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

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:
- Navega a Dashboard > Componentes
- Haz clic en "Añadir Componente"
- Selecciona Tipo: ENDPOINT
- Configura ajustes de monitoreo:
Configuración Básica
| Campo | Descripción | Ejemplo |
|---|---|---|
| URL | Endpoint a verificar | https://api.example.com/health |
| Método | Método HTTP | GET, POST, PUT, HEAD |
| Intervalo de Check | Con qué frecuencia verificar | 15s a 24h |
| Timeout | Timeout de solicitud | 5000ms |
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:
| Comparador | Descripción | Ejemplo |
|---|---|---|
| Igual a | Coincidencia exacta | Estado = 200 |
| No Igual a | No coincide | Estado != 500 |
| Mayor Que | Sobre valor | Estado > 199 |
| Menor Que | Bajo valor | Estado < 400 |
| Entre | En rango | Estado 200-299 |
Tiempo de Respuesta
Verifica latencia de respuesta:
| Comparador | Descripción | Ejemplo |
|---|---|---|
| Menor Que | Más rápido que | < 1000ms |
| Mayor Que | Má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:
| Comparador | Descripción | Ejemplo |
|---|---|---|
| Igual a | Coincidencia exacta de valor | $.status = "ok" |
| Contiene | Coincidencia de subcadena | $.message contiene "success" |
| Existe | Campo presente | $.data existe |
| No Existe | Campo 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 anidadoHeaders
Verifica headers de respuesta:
| Comparador | Descripción | Ejemplo |
|---|---|---|
| Igual a | Coincidencia exacta | Content-Type = "application/json" |
| Contiene | Subcadena | Content-Type contiene "json" |
| Existe | Header presente | X-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
| Intervalo | Caso de Uso | Notas |
|---|---|---|
| 15 segundos | Servicios críticos | Alto uso de recursos |
| 30 segundos | Servicios importantes | Recomendado para APIs |
| 1 minuto | Monitoreo estándar | Buen balance |
| 5 minutos | Menos crítico | Menor uso de recursos |
| 15 minutos | Servicios en segundo plano | Overhead 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:
- El estado del componente cambia (ej., a Interrupción Mayor)
- Si auto-incidente está habilitado, se crea un incidente
- Se envían notificaciones a canales configurados
- Se disparan alertas on-call (si están configuradas)
Auto-Incidentes
Habilita creación automática de incidentes:
- Edita el componente ENDPOINT
- Habilita "Auto Crear Incidente"
- Configura:
- Plantilla de título: ej.,
"{{component}} está caído" - Nivel de impacto: Menor, Mayor, Crítico
- Estado inicial: Usualmente "Investigando"
- Plantilla de título: ej.,
Auto-Resolución
Cuando los checks se recuperan:
- Habilita "Auto Resolver"
- Establece "Umbral de Recuperación": éxitos consecutivos necesarios
- 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:
- Edita el componente
- Habilita "Silenciado"
- 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:
- En el editor del componente, haz clic en "Probar Solicitud"
- Ve la respuesta:
- Código de estado
- Tiempo de respuesta
- Headers
- Body
- Verifica resultados de condiciones
- 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étrica | Descripción |
|---|---|
| Actual | Último check |
| Promedio | Media en rango de tiempo |
| P95 | Percentil 95 |
| Min/Max | Rango |
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:
- Aumenta umbral de fallos
- Aumenta intervalo de check
- Añade buffer de timeout
- Verifica conectividad de red
Interrupciones No Detectadas
Si los monitores no detectan problemas:
- Disminuye umbral de fallos
- Añade condiciones más específicas
- Verifica que el endpoint refleje el estado real del servicio
Checks Lentos
Si los checks toman demasiado tiempo:
- Reduce timeout
- Verifica rendimiento del endpoint monitoreado
- Asegura que la ruta de red sea óptima
Documentación Relacionada
- Componentes - Configurar tipo ENDPOINT
- Incidentes - Comportamiento de auto-incidentes
- On-Call - Escalamiento de alertas