En esta página
Qué verifica
Un monitor HTTP(S) pide la URL en su intervalo desde cada una de sus regiones. Comprueba el código de estado y, si lo defines, una palabra clave o una expresión regular en el cuerpo, y registra el tiempo de respuesta. Los subchecks opcionales de certificado, cabeceras de seguridad e higiene DNS se ejecutan en el mismo monitor, así que un host que falla abre un incidente, no cuatro.
Úsalo cuando
- Un servicio tiene un endpoint HTTP que responde cuando el servicio está sano: una ruta de health, una página de inicio o una ruta de API.
- La respuesta necesita una comprobación del contenido, no solo de que el endpoint responda: un código de estado, una cadena en el cuerpo o un patrón.
- El certificado, la postura de cabeceras y los registros SPF, DMARC y CAA del dominio deben comprobarse en el mismo monitor, no en 3 monitores más.
No ejecuta recorridos de navegador, no inicia sesión y sigue como máximo 5 redirecciones. Para un puerto sin HTTP, usa el check de puerto TCP. Para un certificado que merece su propio incidente, usa el check de certificado TLS.

Configuración
Objetivo. Una URL completa con esquema (https:// o http://). La sonda resuelve y valida la URL y cada salto de redirección antes de pedirlos. Rechaza las direcciones de loopback, privadas, link-local y de metadatos de nube, así que el monitor no puede apuntar a una red interna.
| Campo | Obligatorio | Valores y valor por defecto | Significado |
|---|---|---|---|
urlURL | sí | URL completa con esquema | La dirección que pide la sonda. Sigue hasta 5 saltos de redirección, y cada salto pasa la misma validación de objetivo. |
expected_statusEstado esperado | opcional | Código de estado exacto, por defecto: cualquier 2xx | La respuesta debe llevar exactamente este código de estado. Déjalo vacío para aceptar cualquier 2xx. |
keywordEl cuerpo contiene (texto) | opcional | Cadena | El cuerpo de la respuesta debe contener este texto. Se distinguen mayúsculas y minúsculas. Todas las aserciones se combinan con AND. |
expected_regexEl cuerpo coincide con la regex | opcional | Expresión regular | El cuerpo de la respuesta debe coincidir con este patrón. |
method | opcional | Método HTTP, por defecto GET | El método de la petición, que se fija por API o MCP. El formulario siempre envía GET. |
headers | opcional | Mapa de nombre de cabecera a valor | Las cabeceras de petición que envía la sonda, por ejemplo Accept, que se fijan por API o MCP. Host se ignora, y las cabeceras solo siguen una redirección dentro del mismo origen. |
interval_secondsIntervalo del check | opcional | Segundos, por defecto 300, máximo 24 h, mínimo según el plan | Cada cuánto ejecuta el check cada región. Un valor por debajo del mínimo del plan se eleva a ese mínimo, no se rechaza. |
regionsRegiones | opcional | Subconjunto de na, eu, as, sa, af, oce. Por defecto: las regiones del plan | Qué continentes ejecutan el check. Si lo omites, el plan aplica su conjunto por defecto. |
address_familiesFamilias IP | opcional | ["ipv4"] (por defecto) o ["ipv4", "ipv6"] | La sonda comprueba por separado cada dirección resuelta de cada familia seleccionada. Con las dos familias, family_fail_severity (degraded por defecto, o failed) fija el estado cuando falla una familia. |
Certificado TLS
En una URL https, el mismo monitor evalúa el certificado que le entrega el servidor: el handshake, la cadena, el emisor y el sujeto. El formulario activa este subcheck para cada URL https.
| Campo | Obligatorio | Valores y valor por defecto | Significado |
|---|---|---|---|
tls_cert.enabled | sí | true | Activa el subcheck. |
tls_cert.port | opcional | Puerto, por defecto: el puerto de la URL o 443 | El puerto del handshake TLS. |
tls_cert.warn_days | opcional | Días, por defecto 14 | Por debajo de esta vida restante, el check lleva un aviso de certificado, y propietarios y administradores reciben cada hora un correo y un aviso en la app. El aviso nunca cambia el estado, pero un certificado caducado hace fallar el check. |
tls_cert.issuer_regex | opcional | Expresión regular | El emisor debe coincidir, por ejemplo Let's Encrypt. |
tls_cert.subject_regex | opcional | Expresión regular | El nombre común del sujeto debe coincidir. |
tls_cert.allow_self_signed | opcional | false (por defecto) o true | Omite las comprobaciones de confianza, nombre de host y fecha en el handshake. Úsalo solo para servicios internos con CA propia. La caducidad y las aserciones regex siguen aplicándose. |
Cabeceras de seguridad
La sonda envía una segunda petición y busca en su respuesta las cabeceras seleccionadas. Solo cuenta su presencia. Una cabecera ausente es un hallazgo de postura, no una caída, así que la gravedad por defecto es degraded.
| Campo | Obligatorio | Valores y valor por defecto | Significado |
|---|---|---|---|
security_headers.enabled | sí | true | Activa el subcheck. |
security_headers.headers | sí | Una o varias de strict-transport-security, content-security-policy, x-content-type-options, x-frame-options o referrer-policy | Las cabeceras que deben estar presentes. |
security_headers.missing_severity | opcional | degraded (por defecto) o failed | Qué hace una cabecera ausente con el estado del monitor. |
Higiene DNS
La sonda lee SPF, DMARC y CAA del dominio como configuración. Estos registros deciden si el correo del dominio se entrega y quién puede emitir certificados para él. El hallazgo aparece con el resultado y nunca cambia el estado del monitor.
| Campo | Obligatorio | Valores y valor por defecto | Significado |
|---|---|---|---|
dns_hygiene.enabled | sí | true | Activa el subcheck. |
dns_hygiene.domain | opcional | Dominio, por defecto: el host de la URL | El dominio cuyos registros lee la sonda. |
Cómo se ejecuta un check
- Cuando toca un check, cada región compila primero la regex. Una regex inválida termina el check como error. Cada check expira a los 10 s.
- El nodo resuelve el host con su propio resolver y valida cada dirección de la familia seleccionada contra los rangos bloqueados. Después, cada dirección recibe su propia petición, con la conexión fijada a esa dirección.
- La propia sonda sigue las redirecciones, como máximo 5 saltos. Resuelve y valida de nuevo cada salto antes de pedirlo.
- La sonda evalúa primero el código de estado y después la palabra clave y la regex. Solo lee el cuerpo cuando una de las dos está definida, y todas las aserciones se combinan con AND.
- Solo un check https superado con el subcheck de certificado TLS activado ejecuta la política de certificado, una vez por check. Un check superado o degradado añade la calificación de cabeceras y el hallazgo de higiene DNS como subresultados separados.
- La región envía su resultado al control plane. La política de alertas decide si un resultado fallido abre un incidente cuando el quórum lo confirma. Un resultado degradado queda fuera de la evaluación de incidentes.

Qué contiene un resultado
- Código de estado
- El estado final tras las redirecciones, evaluado frente a
expected_status. - Tiempo de respuesta
- Tiempo hasta la respuesta, cuerpo incluido cuando se lee, por región y por dirección (
latency_ms). - Línea de detalle
- Una línea que dice qué ha pasado, por ejemplo
HTTP 200,keyword not foundoregex did not match. También nombra un estado inesperado o el error de transporte. - Capa de causa
- Si el fallo está en el DNS del objetivo (nombre no encontrado) o, tras una resolución correcta, en el propio objetivo. Cualquier otra causa se registra como unknown.
- Certificado
- Nombre común y nombres alternativos, emisor, fechas de validez con los días restantes y estado de confianza.
- Cabeceras de seguridad
- Cuáles de las cabeceras pedidas estaban presentes y cuáles faltaban.
- Higiene DNS
- Los hallazgos de SPF, DMARC y CAA, por ejemplo una política DMARC en none o un registro CAA ausente.
- Región, familia, dirección
- Cada resultado lleva la región que lo midió, y un subresultado por familia IP y por dirección.
Estados y gravedad
- okEl código de estado coincide y todas las aserciones se cumplen. Un certificado dentro de su ventana de aviso mantiene este estado.
- degradadoFalta una cabecera de seguridad con la gravedad por defecto, o falla una familia IP mientras la otra responde.
- caídoLa petición falla, expira o se bloquea, o no coinciden el código de estado o una aserción. También cuentan una política de certificado fallida (caducado, handshake rechazado, emisor o sujeto no coincidente) y una cabecera ausente con gravedad
failed. - errorLa configuración no se puede ejecutar, por ejemplo por una regex inválida. Cuenta como caída con gravedad critical.
Confirmado por quórum: por defecto, 2 regiones deben informar del fallo antes de que se abra un incidente. El valor por defecto de la organización pide 2 regiones y 2 checks consecutivos. Un monitor puede llevar su propia regla con número o porcentaje, checks consecutivos y una duración mínima.
Planes y límites
- Intervalo mínimo
- 300 s en Free, 60 s en Pulse, 30 s en Sentinel, 15 s en Command y 10 s en Enterprise. El formulario web ofrece 30 s, 1 min, 5 min, 15 min y 1 h. Los mínimos de 15 s y 10 s solo se alcanzan por MCP.
- Regiones
- 2 de 6 en Free, 3 de 6 en Pulse y las 6 desde Sentinel.
- Monitores
- 10 en Free, 50 en Pulse, 150 en Sentinel, 500 en Command y un cupo a medida en Enterprise. Once tipos de check de sonda comparten este cupo, mientras que los agentes de host y los heartbeats tienen la suya. Un paquete de 50 monitores más cuesta 39 €.
Desde la pipeline o un agente
La misma config sirve en el paso de despliegue, en un cliente MCP como Claude Code y en el formulario de arriba. create_monitor necesita una clave de API válida para toda la organización. Si omites regions, el plan aplica su valor por defecto.
{
"name": "Order API",
"type": "http",
"interval_seconds": 60,
"config": {
"url": "https://orders.example.com/health",
"expected_status": 200,
"keyword": "ok",
"tls_cert": { "enabled": true, "warn_days": 21 },
"security_headers": {
"enabled": true,
"headers": ["strict-transport-security", "content-security-policy"],
"missing_severity": "degraded"
},
"dns_hygiene": { "enabled": true }
}
}
Límites
- La sonda no ejecuta recorridos de navegador ni JavaScript, y no sigue flujos de inicio de sesión. No envía cuerpo de petición ni cookies.
- El método y las cabeceras de petición se fijan por API o MCP, no en el formulario.
- La sonda sigue como máximo 5 saltos de redirección, y una cadena más larga hace fallar el check.
- La calificación de cabeceras de seguridad comprueba la presencia, no los valores.
- La sonda rechaza los objetivos en direcciones privadas, de loopback, link-local y de metadatos de nube.
- No todas las regiones sondean IPv6, así que seleccionar
ipv6restringe las regiones utilizables.