Saltar al contenido

Monitorización web con webhooks

Uptimia comprueba tus sitios, certificados y procesos de compra desde fuera de tu red, y llama a tu endpoint con cada fallo confirmado. Tu propio código decide qué ocurre después — abrir un ticket, reiniciar un servicio, alimentar un panel — y cada comprobación envía el mismo formato, así que escribes el gestor una sola vez.

una estructura · los doce tipos · 2xx o cinco reintentos

No es un mensaje, es un contrato

Todos los demás canales terminan en una persona, y las personas son lectoras indulgentes. El código no lo es — por eso lo interesante nunca es el contenido del mensaje, sino las garantías que hay detrás.

Escrito para un lector

«Algo se ha roto» — tú averiguas el resto

Un mensaje
se lee una vez y se cierra
se lee y desaparece
Nada sobre lo que construir
sin estructura · sin reintentos

El texto puede variar entre versiones porque quien lo lee se adapta. En cuanto el software depende de él, esa informalidad se convierte en un fallo de tu integración.

Escrito para un consumidor

Once campos, cinco reintentos, una estructura

Un POST
sondas de respaldo lo confirmaron
2xx o reintentamos
Tu código decide
ticket · bot · fila

Un solo objeto para cada tipo de comprobación: escribe un gestor y ramifica según dos campos. Se reintenta cinco veces antes de descartarse, así que puede haber duplicados — documentados, no descubiertos por sorpresa.

Conserva los canales que lee una persona. Este es para la parte que no debería necesitar a nadie. Un miércoles por la noche en una API de logística:

La alerta llega directamente a tu código

Una comprobación falla y Uptimia llama a tu endpoint con los detalles, ya confirmados. Tu propia automatización decide qué ocurre después — aquí, un ticket que se abre solo y se cierra al recuperarse.

02:17 El POST llega, ya confirmadoops-bridge responde 200 primero, y trabaja después — el margen de tiempo es para la respuesta POST · 84 ms
02:18 El mismo evento llega dos vecesLa entrega es al menos una vez — el gestor usa el inicio del incidente como clave reintento · ignorado
02:18 Un ticket se abre solomonitor_unique_id elige el runbook — sin triaje, sin intervención humana ticket · runbook
02:31 ✅ El POST de recuperación lo cierraLa misma estructura, estado up — incident_duration_seconds: 843 up · 14 min
14 mindown → up
El informe que nadie escribióel día 1
Fin de mes: las cifras de disponibilidad llegaron a tres clientes directamente desde las propias tablas de ops-bridge. Cada incidente ya era una fila — nada exportado a mano desde un panel.
843 segundos, registrados1 gestor, todos los tipos de comprobación0 avisos de guardia0 líneas de scraping
La alerta se convirtió en datos — un mensaje desaparece en cuanto lo cierras; un evento que tu código aceptó sigue ahí un año después. consultable, no solo legible

Conecta un webhook en tres pasos

No hay ninguna aplicación que autorizar ni ninguna librería que instalar — Uptimia solo necesita una URL a la que llamar y, si el endpoint está protegido, una cabecera que le dé acceso.

Paso 130 segundos

Pega la URL de tu endpoint

Eso es todo el registro — una URL pública.

ops.caldmont.com/hooks Guardar integración
https público · TLS verificado · sin rangos privados
Paso 21 minuto

Añade tus cabeceras de autenticación

Opcional — las cabeceras se envían exactamente como las escribas, así un token permite que Uptimia entre por tu propia puerta.

Cabeceras personalizadas
Authorization: Bearer …X-Source: uptimia
se transmiten sin modificar · Content-Type añadido automáticamente
Paso 320 segundos

Apunta tus monitores hacia él

Elige las comprobaciones que deben llamarlo, y una entrega de prueba confirma la conexión con el formato real.

Entrega de prueba
monitor_status: test · severity: test · los mismos once campos
responde con cualquier 2xx y ya está conectado
Guía técnica de configuración

Registrar un endpoint de webhook

El Centro de ayuda cubre la implementación: añadir la URL, escribir las cabeceras personalizadas, enviar un POST de prueba e interpretar lo que te dice una entrega fallida.

Todos los tipos de comprobación. Una sola estructura.

Un certificado a punto de caducar, una tarea cron que nunca llegó a reportarse y un servidor que supera su umbral de CPU llegan todos como el mismo objeto plano. Dos campos los distinguen.

"uptime"Comprobaciones HTTP en tus páginas
"ssl"Caducidad y validez del certificado
"domain"Fechas de registro y renovación
"server"CPU, memoria, disco y carga
11 campos el mismo objeto cada vez
"heartbeat"Tareas cron que dejaron de reportarse
"transaction"Recorridos multipaso en el navegador
"dns"Registros y estado de los servidores de nombres
"blacklist"Reputación de dominio e IP
Nada cambia de nombre sin avisarte — otros cuatro tipos envían el mismo objeto, y una avalancha añade una clave de grupo junto a las existentes. toda comprobación · un gestor

Puentes de chat, filas de base de datos, acciones automatizadas

En cuanto un incidente es un objeto que tu código ha aceptado, las aplicaciones útiles dejan de parecerse a un simple sistema de alertas.

El canal que nosotros no hablamos
Zulip, Rocket.Chat, un bot que hayas escrito tú — cualquier cosa con una URL.
Reformula el texto como quieras
Enruta según monitor_type o el nombre
Entrega a la sala responsable
sin SDK, sin librería
Registros que sobreviven al incidente
Tu cola de tickets, tu almacén de datos, tu tabla de SLA.
Se abre al caer, se cierra al recuperarse
La duración llega ya calculada
Une tablas con monitor_unique_id
tu esquema, no el nuestro
Acciones, no mensajes
Anota un gráfico, vacía un nodo, activa una marca.
El fallo se confirmó primero
Filtra por severity antes de cualquier acción destructiva
La acción es tuya, nosotros solo la reportamos
deliberadamente de una sola dirección
Combínalo con un canal que lea una persona SlackMS TeamsEmailTelegramTwilio SMSPagerDutyDiscord

Los demás canales avisan a una persona.Este avisa a tu código.

Toda la plataforma en la prueba gratuita — todo tipo de comprobación, más de 171 sondas y cada incidente confirmado entregado como un objeto que es tuyo.

Empieza tu prueba gratuita de 30 días
30 días gratis sin tarjeta de crédito cancela cuando quieras

Las garantías de entrega, por escrito

Nadie puede escribir un gestor fiable a partir de «te enviaremos una notificación». Estas son las garantías reales.

Al menos una vez, con cinco reintentos

Diez segundos para responder, y cualquier 2xx cuenta como aceptado. Cualquier otra cosa vuelve a la cola y se reintenta cinco veces, cada espera un minuto más larga que la anterior, y luego se descarta — así que responde primero y haz el trabajo después.

Diez segundos para responderMARGEN Cualquier 2xx significa aceptadoÉXITO Cinco reintentos, luego se descartaESPERA

Un objeto plano, once claves

Sin anidamiento, sin envoltorio, sin un esquema que cambie según el tipo de comprobación. Dos campos distinguen los casos; los otros nueve nunca cambian de significado — incluido monitor_notes, la línea de runbook que dejó quien configuró el monitor.

once campos · una estructura

Una avalancha añade una clave

Los monitores que fallan juntos se convierten en una sola solicitud con un objeto de grupo adicional — miembros, recuentos, reconocimiento. Los gestores que lo ignoran siguen funcionando.

aditivo · nunca cambia de nombre

Tus cabeceras, tal cual

Se envían literalmente, así un token bearer o un secreto compartido funcionan. No hay firma del cuerpo — comprueba la cabecera en tu servidor y mantén la URL en secreto.

token bearer · URL secreta

Dónde se negará a enviar

Solo http(s) públicos; se rechazan los rangos de loopback y privados. La dirección se resuelve una vez y queda fijada, las redirecciones se ignoran, TLS se verifica.

sin localhost · sin rebinding

Sin enlace para reconocer — a propósito

Los canales que lee una persona llevan un enlace firmado que detiene la escalada. Las máquinas reciben los datos y nada más — un flujo de registros que puede silenciar un aviso de guardia, tarde o temprano lo hará.

Todos los campos, todos los eventosENVIADO La capacidad de silenciarloRETENIDA

Cómo funcionan los webhooks de monitorización

Uptimia comprueba tus sitios web desde más de 171 ubicaciones externas y, cuando una comprobación falla, envía una solicitud HTTP POST con un cuerpo JSON a cualquier URL que registres. El mismo objeto plano llega para cada tipo de comprobación — qué monitor, qué pasó, cuándo y durante cuánto tiempo — así que un solo gestor los cubre todos, y las entregas fallidas se reintentan.

«Cada solicitud significa que algo está caído»

El error que todo el mundo comete el primer día

monitor_status: up
severity llega vacío
se trata como una interrupción
Alguien recibió un aviso de guardia
porque el sitio volvió

Las recuperaciones, los avisos y las pruebas comparten un mismo endpoint. monitor_status es down, up o test; severity es critical o trouble, y vacío en una recuperación. Ramifica según ambos campos.

Confirmado antes de que exista

Confirmado antes de que tu código se entere

Más de 171 ubicaciones
cargando la página real
primero se vuelve a comprobar
Una solicitud
por cada incidente confirmado

Una automatización es tan fiable como el disparador que la activa. Una comprobación web nunca alerta basándose en la opinión de una sola sonda — un fallo sospechoso se vuelve a comprobar primero desde otras sondas.

El cuerpo

Once campos, en cada evento

Lo que siempre está presente, y qué contiene.

Ver todos los canales de alerta
CampoEjemploQué contiene
id4172El id numérico del monitor dentro de Uptimia
monitor_typeuptimeQué tipo de comprobación se disparó
monitor_nameDispatch APIEl nombre que le diste (el nombre del sitio en las comprobaciones de disponibilidad)
monitor_unique_iddispatch-api-euTu propio identificador — la clave para unir tablas
monitor_statusdowndown, up o test
severitycriticalcritical o trouble — vacío en una recuperación
incident_start_time2026-07-24T02:17:04+02:00ISO 8601, en la zona horaria de la cuenta
incident_end_time2026-07-24T02:31:07+02:00Vacío mientras el incidente está abierto
incident_duration_seconds843Cero hasta que el incidente se cierra
message*ALERT*: Project … is DOWNEl resumen de una línea que reciben los demás canales
monitor_notesFailover: drain eu-west-2 firstLa nota del monitor — vacía si nadie escribió ninguna

Preguntas frecuentes sobre webhooks personalizados

01¿Qué enviáis exactamente?+
Un único POST HTTP con Content-Type: application/json y un cuerpo plano de once campos — sin cadena de consulta, sin codificación de formulario, sin objeto contenedor. Todos los campos están en el nivel superior, y llegan los mismos once para cada tipo de monitor y cada estado, incluida la prueba.
02¿Cómo autentico la solicitud?+
Con cabeceras personalizadas: todo lo que escribas se envía literalmente, una por línea en formato Nombre: valor, así un token bearer o un secreto compartido funcionan. No hay firma HMAC sobre el cuerpo, así que trata también la URL como una credencial — larga, aleatoria y que sustituyas si se filtra.
03¿Qué pasa si mi endpoint va lento o está caído?+
La solicitud dispone de diez segundos. Cualquier 2xx significa aceptado; cualquier otra cosa vuelve a la cola con esperas cada vez más largas y se reintenta cinco veces, luego se descarta. Responde 200 de inmediato y haz la parte lenta después — el margen cubre la respuesta, no el trabajo.
04¿Puedo llegar a recibir el mismo evento dos veces?+
Sí, y conviene que lo tengas en cuenta. La entrega es al menos una vez: un endpoint que acepta un evento pero responde demasiado despacio igualmente recibe el reintento. Elimina duplicados combinando el monitor con incident_start_time — ambos se mantienen idénticos en todos los reintentos.
05¿Puedo apuntarlo a localhost o a una dirección interna?+
No. Solo se aceptan URLs http y https públicas, y los rangos de loopback, privados y link-local se rechazan tanto al guardar como de nuevo al enviar — un webhook capaz de alcanzar servicios internos sería una herramienta de falsificación de solicitudes disfrazada de monitorización. Usa un túnel mientras desarrollas.
06¿Seguís las redirecciones?+
No. La URL que registras es la que recibe el cuerpo; un 301 o un 302 cuenta como entrega fallida y no como un salto a seguir. El nombre de host se resuelve una vez y queda fijado para la llamada, así que no se puede redirigir entre la comprobación de seguridad y la solicitud.
07¿Qué llega cuando fallan varios monitores a la vez?+
Una sola solicitud para todo el grupo en lugar de una por monitor, con un objeto group adicional junto a los campos habituales: su id, la lista de miembros, cuántos siguen caídos y si alguien lo ha reconocido. Los once campos originales describen el monitor ancla del grupo — monitor_notes lleva la nota cuando el grupo contiene un único monitor, y queda vacío cuando resume varios.
08¿Puede mi gestor reconocer o responder?+
No, y es deliberado. Los enlaces para reconocer solo van a los canales que lee una persona; un consumidor automatizado recibe datos, nunca la capacidad de silenciar un escalado. Lo único que Uptimia lee de tu respuesta es el código de estado.
09¿Qué envía realmente «Enviar prueba»?+
La estructura real con contenido de ejemplo: monitor_status y severity muestran ambos test, el nombre dice "Test monitor", y los tres campos del incidente dicen "None" en lugar de marcas de tiempo. Sirve para comprobar que el endpoint responde — fíltrala antes de escribir en una tabla que uses de verdad.
10¿Cuántos endpoints puedo tener, y está incluido?+
Añade tantos como necesites y asigna cada uno a monitores distintos — un webhook se comporta como cualquier otro contacto. Es uno de los canales de alerta integrados, incluido en todos los planes y en la prueba gratuita de 30 días, y funciona junto a los demás: un mismo fallo puede avisar a una persona y actualizar un sistema en el mismo segundo.

Una URL, todos los incidentes confirmados

Registra un endpoint, asígnalo a los monitores que importan, y cada fallo confirmado llegará como un objeto que tus sistemas pueden archivar y sobre el que pueden actuar.

Sin SDK Once campos Prueba gratuita de 30 días Sin tarjeta de crédito
Los webhooks personalizados son un canal de alerta integrado — cada tipo de comprobación que ejecuta Uptimia envía la misma estructura.