Vai al contenuto

Monitoraggio dei siti web: webhook

Uptimia controlla i tuoi siti, certificati e flussi di checkout dall’esterno della tua rete e chiama il tuo endpoint a ogni guasto confermato. Il tuo codice decide cosa fare dopo — aprire un ticket, riavviare un servizio, alimentare una dashboard — e ogni controllo invia lo stesso formato, così scrivi l’handler una volta sola.

una struttura · tutti e dodici i tipi · 2xx o cinque tentativi

Non un messaggio, un contratto

Ogni altro canale finisce da una persona, e le persone sono lettori indulgenti. Il codice no — ed è per questo che la parte interessante non è mai il payload, ma le garanzie che ci sono dietro.

Scritto per un lettore

“Qualcosa si è rotto” — al resto ci pensi tu

Un messaggio
letto una volta, poi chiuso
letto, poi sparito
Niente su cui costruire
nessuna struttura · nessun tentativo

Il testo può cambiare da una versione all’altra perché il lettore si adatta. Nel momento in cui un software ne dipende, quell’informalità diventa un difetto nella tua integrazione.

Scritto per una macchina

Undici campi, cinque tentativi, una struttura

Una POST
sonde di backup concordi
2xx o riproviamo
Il tuo codice decide
ticket · bot · riga

Un solo oggetto per ogni tipo di controllo: scrivi un handler, dirama la logica su due campi. Viene riprovato cinque volte prima di essere scartato, quindi i duplicati sono possibili — documentati, non scoperti per caso.

Tieniti pure i canali che legge una persona. Questo è per la parte che non dovrebbe aver bisogno di nessuno. Una notte di mercoledì, in un’API logistica:

L’avviso arriva dentro il tuo codice

Un controllo fallisce e Uptimia chiama il tuo endpoint con i dettagli, già confermati. La tua automazione decide cosa fare dopo — qui, un ticket che si apre da solo e si chiude al ripristino.

02:17 La POST arriva, già confermataops-bridge risponde 200 prima, poi lavora — il tempo a disposizione è per la risposta POST · 84 ms
02:18 Lo stesso evento arriva due volteLa consegna è at-least-once — l’handler usa l’inizio dell’incidente come chiave tentativo · ignorato
02:18 Un ticket si apre da solomonitor_unique_id sceglie il runbook — nessun triage, nessun essere umano coinvolto ticket · runbook
02:31 ✅ La POST di ripristino lo chiudeStessa struttura, stato up — incident_duration_seconds: 843 up · 14 min
14 mindown → up
Il report che nessuno ha scrittoil giorno 1
Fine mese: i dati di disponibilità sono arrivati a tre clienti direttamente dalle tabelle di ops-bridge. Ogni incidente era già una riga — nulla esportato da una dashboard.
843 secondi, registrati1 handler, ogni tipo di controllo0 pager inviati0 righe di scraping
L’avviso è diventato un dato — un messaggio sparisce quando lo chiudi; un evento che il tuo codice ha accettato è ancora lì un anno dopo. interrogabile, non solo leggibile

Collega un webhook in tre passi

Nessuna app da autorizzare e nessuna libreria da installare — Uptimia ha bisogno solo di un URL da chiamare e, se l’endpoint è protetto, di un header che gli permetta di entrare.

Passo 130 secondi

Incolla l’URL del tuo endpoint

Ecco fatta tutta la registrazione — un solo URL pubblico.

ops.caldmont.com/hooks Salva integrazione
https pubblico · TLS verificato · nessun intervallo privato
Passo 21 minuto

Aggiungi i tuoi header di autenticazione

Facoltativo — gli header vengono inviati esattamente come li scrivi, così un token fa passare Uptimia dalla tua porta.

Header personalizzati
Authorization: Bearer …X-Source: uptimia
trasmessi senza modifiche · Content-Type aggiunto automaticamente
Passo 320 secondi

Punta i tuoi Monitor su di esso

Scegli i controlli che devono chiamarlo, e una consegna di prova verifica il collegamento con il formato reale.

Consegna di prova
monitor_status: test · severity: test · gli stessi undici campi
rispondi con un 2xx qualsiasi e sei collegato
Guida tecnica alla configurazione

Registra un endpoint webhook

Il Centro assistenza copre l’implementazione: aggiungere l’URL, scrivere gli header personalizzati, inviare una POST di prova e interpretare cosa ti sta dicendo una consegna fallita.

Ogni tipo di controllo. Una sola struttura.

Un certificato in scadenza, un cron job che non si è mai fatto sentire e un server oltre la sua soglia di CPU arrivano tutti come lo stesso oggetto piatto. Due campi li distinguono.

"uptime"Controlli HTTP sulle tue pagine
"ssl"Scadenza e validità del certificato
"domain"Date di registrazione e rinnovo
"server"CPU, memoria, disco e carico
11 campi sempre lo stesso oggetto
"heartbeat"Cron job che hanno smesso di rispondere
"transaction"Percorsi browser multi-step
"dns"Stato dei record e dei nameserver
"blacklist"Reputazione di dominio e IP
Niente cambia nome sotto di te — altri quattro tipi inviano lo stesso oggetto, e un’ondata aggiunge una chiave di gruppo accanto a quelle già esistenti. ogni controllo · un solo handler

Ponti verso la chat, righe di database, azioni automatiche

Una volta che un incidente è un oggetto che il tuo codice ha accettato, gli usi utili smettono di somigliare a un semplice avviso.

Il canale che non parliamo
Zulip, Rocket.Chat, un bot che hai scritto tu — qualsiasi cosa raggiungibile con un URL.
Riformula il testo come preferisci
Instrada in base a monitor_type o al nome
Consegna alla stanza responsabile
nessun SDK, nessuna libreria
Registrazioni che sopravvivono all’incidente
La tua coda di ticket, il tuo data warehouse, la tua tabella SLA.
Apri al down, chiudi all’up
La durata arriva già calcolata
Fai il join su monitor_unique_id
il tuo schema, non il nostro
Azioni, non messaggi
Annota un grafico, svuota un nodo, alza una bandiera.
Il guasto è stato confermato per primo
Blocca in base a severity prima di qualsiasi azione distruttiva
L’azione è tua, noi la segnaliamo soltanto
volutamente a senso unico
Abbinalo a un canale che qualcuno legge SlackMS TeamsEmailTelegramTwilio SMSPagerDutyDiscord

Gli altri canali lo dicono a una persona.Questo lo dice al tuo codice.

Tutta la piattaforma nella prova gratuita — ogni tipo di controllo, oltre 171 sonde, e ogni incidente confermato consegnato come un oggetto che possiedi tu.

Inizia la tua prova gratuita di 30 giorni
30 giorni gratis senza carta di credito annulla quando vuoi

Le garanzie di consegna, messe per iscritto

Nessuno può scrivere un handler affidabile basandosi su “ti invieremo una notifica”. Queste sono le garanzie reali.

At-least-once, con cinque tentativi

Dieci secondi per rispondere, e qualsiasi 2xx conta come accettato. Tutto il resto viene rimesso in coda e riprovato cinque volte, con un’attesa che cresce di un minuto ogni volta, poi scartato — quindi rispondi prima e fai il lavoro dopo.

Dieci secondi per rispondereBUDGET Qualsiasi 2xx significa accettatoSUCCESS Cinque tentativi, poi scartataBACKOFF

Un oggetto piatto, undici chiavi

Nessun annidamento, nessuna busta, nessuno schema che cambia in base al tipo di controllo. Due campi distinguono i casi; gli altri nove non cambiano mai significato — incluso monitor_notes, la riga da runbook che chi ha configurato il Monitor ha lasciato.

undici campi · una struttura

Un’ondata aggiunge una chiave

I Monitor che falliscono insieme diventano un’unica richiesta con un oggetto group aggiuntivo — membri, conteggi, presa in carico. Gli handler che lo ignorano continuano a funzionare.

additivo · mai rinominato

I tuoi header, trasmessi senza modifiche

Inviati parola per parola, così un bearer token o un segreto condiviso funzionano. Non c’è nessuna firma del corpo — verifica l’header lato server, e mantieni segreto l’URL.

bearer token · URL segreto

Dove si rifiuterà di inviare

Solo http(s) pubblico; loopback e intervalli privati vengono rifiutati. L’indirizzo viene risolto una sola volta e bloccato, i redirect vengono ignorati, il TLS viene verificato.

niente localhost · nessun rebinding

Nessun link per prendere in carico — di proposito

I canali che legge una persona portano un link firmato che ferma la scaletta. Le macchine ricevono i fatti e nient’altro — una pipeline di log che può silenziare un pager, prima o poi lo farà.

Ogni campo, ogni eventoSENT La possibilità di silenziarloWITHHELD

Come funzionano i webhook di monitoraggio

Uptimia controlla i tuoi siti web da oltre 171 sonde esterne e, quando un controllo fallisce, invia una richiesta HTTP POST con un corpo JSON a qualsiasi URL tu abbia registrato. Lo stesso oggetto piatto arriva per ogni tipo di controllo — quale Monitor, cosa è successo, quando e per quanto tempo — così un solo handler li copre tutti, e le consegne fallite vengono riprovate.

“Ogni richiesta significa che qualcosa è down”

Il bug che tutti scrivono il primo giorno

monitor_status: up
severity arriva vuoto
trattato come un’interruzione
Qualcuno è stato allertato
perché il sito è tornato online

Ripristini, avvisi di anomalia e test condividono un unico endpoint. monitor_status vale down, up o test; severity vale critical o trouble, ed è vuoto al ripristino. Dirama la logica su entrambi.

Confermato prima ancora di esistere

Confermato prima che il tuo codice lo sappia

171+ località
caricando la pagina reale
riverificato per primo
Una richiesta
per ogni incidente confermato

Un’automazione vale quanto il segnale che la fa scattare. Un controllo web non genera mai un avviso sul giudizio di una sola sonda — un sospetto guasto viene prima riverificato da altre sonde.

Il corpo

Undici campi, ogni evento

Cosa è sempre presente, e cosa contiene.

Guarda tutti i canali di avviso
CampoEsempioCosa contiene
id4172L’id numerico del Monitor all’interno di Uptimia
monitor_typeuptimeQuale tipo di controllo si è attivato
monitor_nameDispatch APIIl nome che gli hai dato (il nome del sito per i controlli uptime)
monitor_unique_iddispatch-api-euIl tuo identificatore — la chiave su cui fare il join
monitor_statusdowndown, up o test
severitycriticalcritical o trouble — vuoto al ripristino
incident_start_time2026-07-24T02:17:04+02:00ISO 8601, fuso orario dell’account
incident_end_time2026-07-24T02:31:07+02:00Vuoto finché l’incidente è aperto
incident_duration_seconds843Zero finché l’incidente non si chiude
message*ALERT*: Project … is DOWNIl riepilogo in una riga che ricevono anche gli altri canali
monitor_notesFailover: drain eu-west-2 firstLa nota del Monitor — vuota se nessuno l’ha scritta

FAQ sui webhook personalizzati

01Cosa inviate esattamente?+
Un’unica richiesta HTTP POST con Content-Type: application/json e un corpo piatto di undici campi — nessuna query string, nessuna codifica a form, nessun oggetto contenitore. Ogni campo si trova al livello principale, e gli stessi undici arrivano per ogni tipo di Monitor e ogni stato, incluso il test.
02Come autentico la richiesta?+
Con header personalizzati: qualsiasi cosa inserisci viene inviata parola per parola, uno per riga nella forma Nome: valore, così un bearer token o un segreto condiviso funzionano. Non c’è nessuna firma HMAC sul corpo, quindi tratta anche l’URL come una credenziale — lungo, casuale, e da sostituire se trapela.
03Cosa succede se il mio endpoint è lento o down?+
Alla richiesta vengono concessi dieci secondi. Qualsiasi 2xx significa accettato; tutto il resto viene rimesso in coda con un backoff crescente e riprovato cinque volte, poi scartato. Rispondi 200 subito e fai la parte lenta dopo — il tempo a disposizione copre la risposta, non il lavoro.
04Riceverò mai lo stesso evento due volte?+
Sì, e devi tenerne conto. La consegna è at-least-once: un endpoint che accetta un evento ma risponde troppo lentamente vede comunque il tentativo successivo. Deduplica sul Monitor più incident_start_time — entrambi restano identici a ogni tentativo.
05Posso puntarlo su localhost o su un indirizzo interno?+
No. Sono accettati solo URL http e https pubblici, e gli intervalli loopback, privati e link-local vengono rifiutati sia al salvataggio sia di nuovo al momento dell’invio — un webhook in grado di raggiungere servizi interni sarebbe uno strumento di request forgery travestito da monitoraggio. Usa un tunnel durante lo sviluppo.
06Seguite i redirect?+
No. L’URL che registri è quello che riceve il corpo; un 301 o un 302 conta come consegna fallita, non come un salto da seguire. L’hostname viene risolto una sola volta e bloccato per la chiamata, quindi non può essere ripuntato tra il controllo di sicurezza e la richiesta.
07Cosa arriva quando più Monitor falliscono insieme?+
Una sola richiesta per l’intero gruppo invece di una per Monitor, con un oggetto group aggiuntivo accanto ai campi consueti: il suo id, l’elenco dei membri, quanti sono ancora down, e se qualcuno l’ha preso in carico. Gli undici campi originali descrivono il Monitor di ancoraggio del gruppo — monitor_notes porta la nota quando il gruppo contiene un solo Monitor ed è vuoto quando ne riassume diversi.
08Il mio handler può prendere in carico, o rispondere?+
No, ed è voluto. I link per prendere in carico vanno solo ai canali che legge una persona; un sistema automatico riceve i fatti, mai la possibilità di silenziare un’escalation. L’unica cosa che Uptimia legge dalla tua risposta è il codice di stato.
09Cosa invia esattamente “Invia test”?+
La struttura reale con contenuti segnaposto: monitor_status e severity valgono entrambi test, il nome è “Test monitor”, e i tre campi dell’incidente riportano “None” invece dei timestamp. Serve a verificare che l’endpoint risponda — filtralo prima di scrivere in una tabella su cui fai affidamento.
10Quanti endpoint posso avere, ed è incluso?+
Aggiungine quanti ne servono e collega ciascuno a Monitor diversi — un webhook si comporta come qualsiasi altro contatto. È uno dei canali di avviso integrati, incluso in tutti i piani e nella prova gratuita di 30 giorni, e funziona insieme agli altri: un guasto può allertare una persona e aggiornare un sistema nello stesso secondo.

Un solo URL, ogni incidente confermato

Registra un endpoint, collegalo ai Monitor che contano, e ogni guasto confermato arriverà come un oggetto che i tuoi sistemi possono archiviare e su cui possono agire.

Nessun SDK Undici campi Prova gratuita di 30 giorni Senza carta di credito
I webhook personalizzati sono un canale di avviso integrato — ogni tipo di controllo eseguito da Uptimia invia la stessa struttura.