Naar inhoud springen

Websitemonitoring via webhooks

Uptimia controleert uw sites, certificaten en afrekenflows van buiten uw netwerk en roept uw endpoint aan bij elke bevestigde storing. Uw eigen code bepaalt wat er daarna gebeurt — een ticket openen, een service herstarten, een dashboard voeden — en elke controle stuurt hetzelfde formaat, zodat u de handler maar één keer hoeft te schrijven.

één structuur · alle twaalf typen · 2xx of vijf pogingen

Geen bericht, een contract

Elk ander kanaal komt uiteindelijk bij een mens terecht, en mensen zijn coulante lezers. Code is dat niet — daarom zit het interessante nooit in de payload, maar in de garanties erachter.

Geschreven voor een lezer

“Er ging iets stuk” — de rest zoekt u zelf uit

Een bericht
eenmaal gelezen, dan gesloten
gelezen, dan weg
Niets om op voort te bouwen
geen structuur · geen pogingen

Bewoordingen kunnen tussen releases verschuiven, omdat de lezer zich aanpast. Zodra software ervan afhankelijk is, wordt die vrijblijvendheid een fout in uw integratie.

Geschreven voor een afnemer

Elf velden, vijf pogingen, één structuur

Eén POST
reserveprobes bevestigden het
2xx of we proberen opnieuw
Uw code beslist
ticket · bot · rij

Eén object voor elk type controle: schrijf één handler, vertak op twee velden. Er wordt tot vijf keer opnieuw geprobeerd voordat het wordt losgelaten, dus duplicaten zijn mogelijk — gedocumenteerd in plaats van bij toeval ontdekt.

Houd de kanalen aan die een mens leest. Deze is voor het deel dat helemaal niemand nodig zou moeten hebben. Een woensdagavond bij een logistieke API:

De waarschuwing komt binnen in uw eigen code

Een controle faalt en Uptimia roept uw endpoint aan met de details, al bevestigd. Uw eigen automatisering bepaalt wat er daarna gebeurt — hier, een ticket dat zichzelf opent en sluit bij herstel.

02:17 De POST komt binnen, al bevestigdops-bridge antwoordt eerst met 200, en werkt daarna verder — de tijd is bedoeld voor het antwoord POST · 84 ms
02:18 Dezelfde gebeurtenis komt twee keer binnenBezorging is at-least-once — de handler herkent op basis van de starttijd van het incident opnieuw geprobeerd · genegeerd
02:18 Een ticket opent zichzelfmonitor_unique_id kiest het runbook — geen triage, geen mens in de lus ticket · runbook
02:31 ✅ De hersteld-POST sluit het afDezelfde structuur, status up — incident_duration_seconds: 843 up · 14 min
14 mindown → up
Het rapport dat niemand schreefop de 1e
Einde van de maand: de beschikbaarheidscijfers gingen rechtstreeks vanuit de eigen tabellen van ops-bridge naar drie klanten. Elk incident was al een rij — niets geëxporteerd vanuit een dashboard.
843 seconden, vastgelegd1 handler, elk type controle0 pager-meldingen verstuurd0 regels scraping
De waarschuwing werd data — een bericht is weg zodra u het sluit; een gebeurtenis die uw code heeft geaccepteerd, staat er een jaar later nog. doorzoekbaar, niet alleen leesbaar

Een webhook koppelen in drie stappen

Geen app om te autoriseren en geen library om te installeren — Uptimia heeft alleen een URL nodig om aan te roepen en, als het endpoint beveiligd is, een header die er toegang toe geeft.

Stap 130 seconden

Plak de URL van uw endpoint

Dat is de hele registratie — één publieke URL.

ops.caldmont.com/hooks Integratie opslaan
publieke https · TLS geverifieerd · geen privéreeksen
Stap 21 minuut

Voeg uw auth-headers toe

Optioneel — headers worden exact verstuurd zoals u ze schrijft, zodat een token Uptimia door uw eigen deur laat.

Aangepaste headers
Authorization: Bearer …X-Source: uptimia
ongewijzigd doorgegeven · Content-Type wordt automatisch toegevoegd
Stap 320 seconden

Wijs uw monitors ernaar

Kies de controles die het moeten aanroepen, en een testbezorging bewijst de koppeling met het echte formaat.

Testbezorging
monitor_status: test · severity: test · dezelfde elf velden
antwoord met een 2xx en u bent gekoppeld
Technische installatiehandleiding

Een webhook-endpoint registreren

Het Helpcentrum behandelt de implementatie: de URL toevoegen, de aangepaste headers schrijven, een test-POST versturen, en begrijpen wat een mislukte bezorging u vertelt.

Elk type controle. Eén structuur.

Een verlopend certificaat, een cronjob die zich nooit meldde en een server boven zijn CPU-drempelwaarde komen allemaal binnen als hetzelfde platte object. Twee velden maken het verschil.

"uptime"HTTP-controles op uw pagina’s
"ssl"Vervaldatum en geldigheid van certificaten
"domain"Registratie- en verlengdata
"server"CPU, geheugen, schijf en load
11 velden steeds hetzelfde object
"heartbeat"Cronjobs die zich niet meer melden
"transaction"Meerstaps browserflows
"dns"Records en de status van nameservers
"blacklist"Reputatie van domein en IP
Er wordt nooit iets hernoemd onder u — vier andere typen posten hetzelfde object, en een storm voegt een group-sleutel toe naast de bestaande. elke controle · één handler

Chatbruggen, databaserijen, geautomatiseerde acties

Zodra een incident een object is dat uw code heeft geaccepteerd, gaan de nuttige toepassingen niet meer op waarschuwen lijken.

Het kanaal dat wij niet spreken
Zulip, Rocket.Chat, een bot die u zelf schreef — alles op een URL.
Herformatteer de tekst zoals u wilt
Routeer op monitor_type of naam
Bezorg in het kanaal dat ervoor verantwoordelijk is
geen SDK, geen library
Records die het incident overleven
Uw ticketqueue, uw datawarehouse, uw SLA-tabel.
Open bij down, sluit bij up
Duur komt al berekend binnen
Koppel op monitor_unique_id
uw schema, niet het onze
Acties in plaats van berichten
Annoteer een grafiek, drain een node, zet een vlag.
De storing werd eerst bevestigd
Blokkeer op severity voordat er iets destructiefs gebeurt
U bent verantwoordelijk voor de actie, wij melden alleen
bewust eenrichtingsverkeer
Combineer het met een kanaal dat iemand leest SlackMS TeamsE-mailTelegramTwilio SMSPagerDutyDiscord

Andere kanalen vertellen het aan een mens.Deze vertelt het aan uw code.

Het hele platform tijdens de proefperiode — elk type controle, 171+ probes, en elk bevestigd incident bezorgd als een object dat van u is.

Start uw gratis proefperiode van 30 dagen
30 dagen gratis geen creditcard altijd opzegbaar

De bezorggaranties, zwart-op-wit

Niemand kan een betrouwbare handler schrijven op basis van “we sturen u een melding”. Dit zijn de daadwerkelijke garanties.

At-least-once, met vijf pogingen

Tien seconden om te antwoorden, en elke 2xx telt als geaccepteerd. Al het andere wordt opnieuw in de wachtrij gezet en tot vijf keer opnieuw geprobeerd, telkens met een minuut langer wachttijd, en daarna verwijderd — dus antwoord eerst en doe het werk daarna.

Tien seconden om te antwoordenBUDGET Elke 2xx betekent geaccepteerdGESLAAGD Vijf pogingen, daarna verwijderdBACKOFF

Eén plat object, elf sleutels

Geen nesting, geen envelope, geen schema dat verandert met het type controle. Twee velden maken het verschil; de andere negen veranderen nooit van betekenis — inclusief monitor_notes, de runbookregel die degene die de monitor instelde, heeft achtergelaten.

elf velden · één structuur

Een storm voegt een sleutel toe

Monitors die samen uitvallen worden één request met een extra group-object — leden, aantallen, bevestiging. Handlers die dit negeren, blijven gewoon werken.

additief · nooit hernoemd

Uw headers, doorgegeven

Letterlijk doorgestuurd, zodat een bearer token of shared secret werkt. Er is geen handtekening over de body — controleer de header serverzijdig, en houd de URL geheim.

bearer token · geheime URL

Waar het weigert te posten

Alleen publieke http(s); loopback- en privéreeksen worden geweigerd. Het adres wordt één keer opgelost en vastgezet, redirects worden genegeerd, TLS geverifieerd.

geen localhost · geen rebinding

Geen bevestigingslink — met opzet

Kanalen die een mens leest, bevatten een ondertekende link die de escalatieketen stopzet. Machines krijgen de feiten en verder niets — een logpipeline die een pager kan stilzetten, doet dat uiteindelijk ook.

Elk veld, elke gebeurtenisVERZONDEN De mogelijkheid om het stil te zettenACHTERGEHOUDEN

Hoe monitoringwebhooks werken

Uptimia controleert uw websites vanaf 171+ externe locaties en stuurt, zodra een controle faalt, een HTTP POST met een JSON-body naar elke URL die u registreert. Voor elk type controle komt hetzelfde platte object binnen — welke monitor, wat er gebeurde, wanneer, en hoe lang — zodat één handler ze allemaal afdekt, en mislukte bezorgingen opnieuw worden geprobeerd.

“Elk request betekent dat er iets plat ligt”

De bug die iedereen op dag één schrijft

monitor_status: up
severity komt leeg binnen
behandeld als een storing
Iemand kreeg een pager-melding
omdat de site weer online kwam

Herstel, waarschuwingen en tests delen één endpoint. monitor_status is down, up of test; severity is critical of trouble, en leeg bij herstel. Vertak op beide.

Bevestigd voordat het bestaat

Bevestigd voordat uw code het hoort

171+ locaties
laadt de echte pagina
eerst opnieuw getest
Eén request
per bevestigd incident

Automatisering is nooit betrouwbaarder dan de trigger erachter. Een webcontrole wordt nooit gemeld op basis van de mening van één probe — een vermoedelijke storing wordt eerst vanaf andere probes opnieuw getest.

De body

Elf velden, elke gebeurtenis

Wat er altijd aanwezig is, en wat het bevat.

Bekijk alle waarschuwingskanalen
VeldVoorbeeldWat het bevat
id4172Het numerieke ID van de monitor binnen Uptimia
monitor_typeuptimeWelk type controle afging
monitor_nameDispatch APIDe naam die u eraan gaf (sitenaam bij uptime-controles)
monitor_unique_iddispatch-api-euUw eigen identificatie — de sleutel om op te koppelen
monitor_statusdowndown, up of test
severitycriticalcritical of trouble — leeg bij herstel
incident_start_time2026-07-24T02:17:04+02:00ISO 8601, tijdzone van het account
incident_end_time2026-07-24T02:31:07+02:00Leeg zolang het incident open staat
incident_duration_seconds843Nul totdat het incident wordt gesloten
message*ALERT*: Project … is DOWNDe eenregelige samenvatting die andere kanalen ontvangen
monitor_notesFailover: drain eu-west-2 firstDe notitie bij de monitor — leeg als niemand er een schreef

Veelgestelde vragen over aangepaste webhooks

01Wat verstuurt Uptimia precies?+
Eén enkele HTTP POST met Content-Type: application/json en een platte body van elf velden — geen query string, geen formulier-encoding, geen wrapper-object. Elk veld staat op het hoogste niveau, en dezelfde elf komen binnen voor elk monitortype en elke status, inclusief de test.
02Hoe authenticeer ik het request?+
Met aangepaste headers: alles wat u invoert wordt letterlijk verstuurd, één per regel in de vorm Naam: waarde, zodat een bearer token of shared secret werkt. Er is geen HMAC-handtekening over de body, dus behandel ook de URL als een inloggegeven — lang, willekeurig, en vervang deze zodra hij uitlekt.
03Wat gebeurt er als mijn endpoint traag of offline is?+
Het request krijgt tien seconden. Elke 2xx betekent geaccepteerd; al het andere wordt opnieuw in de wachtrij gezet met oplopende wachttijden en tot vijf keer opnieuw geprobeerd, en daarna weggegooid. Antwoord direct met 200 en doe het trage deel daarna — de tijd is bedoeld voor het antwoord, niet voor het werk.
04Kan ik dezelfde gebeurtenis ooit twee keer ontvangen?+
Ja, en daar moet u rekening mee houden. Bezorging is at-least-once: een endpoint dat een gebeurtenis accepteert maar te traag antwoordt, krijgt de nieuwe poging alsnog te zien. Deduplicate op de monitor plus incident_start_time — beide blijven identiek bij elke nieuwe poging.
05Kan ik hem naar localhost of een intern adres wijzen?+
Nee. Alleen publieke http- en https-URL’s worden geaccepteerd, en loopback-, privé- en link-local-reeksen worden geweigerd, zowel bij het opslaan als opnieuw op het moment van versturen — een webhook die interne diensten kan bereiken, zou een request-forgery-tool zijn die zich voordoet als monitoringfunctie. Gebruik tijdens het bouwen een tunnel.
06Volgt Uptimia redirects?+
Nee. De URL die u registreert is degene die de body ontvangt; een 301 of 302 telt als een mislukte bezorging, niet als een sprong om te volgen. De hostnaam wordt één keer opgelost en vastgezet voor de aanroep, zodat deze niet kan worden omgeleid tussen de veiligheidscontrole en het request.
07Wat komt er binnen als meerdere monitors tegelijk uitvallen?+
Eén request voor de hele groep in plaats van één per monitor, met een extra group-object naast de gebruikelijke velden: het id ervan, de ledenlijst, hoeveel er nog offline zijn, en of iemand het al heeft bevestigd. De oorspronkelijke elf velden beschrijven de ankermonitor van de groep — monitor_notes bevat de notitie wanneer de groep uit één monitor bestaat, en is leeg wanneer deze meerdere samenvat.
08Kan mijn handler bevestigen of antwoorden?+
Nee, en dat is met opzet. Bevestigingslinks gaan alleen naar kanalen die een mens leest; een geautomatiseerde afnemer krijgt feiten, nooit de mogelijkheid om een escalatie stil te zetten. Het enige dat Uptimia uit uw antwoord leest, is de statuscode.
09Wat post “Test versturen” precies?+
De echte structuur met tijdelijke inhoud: monitor_status en severity lezen beide test, de naam leest “Test monitor”, en de drie incidentvelden lezen “None” in plaats van tijdstempels. Het bewijst dat het endpoint antwoordt — filter dit eruit voordat u wegschrijft naar een tabel waarop u vertrouwt.
10Hoeveel endpoints kan ik hebben, en is dit inbegrepen?+
Voeg er zoveel toe als u nodig heeft en koppel elk aan verschillende monitors — een webhook gedraagt zich als elk ander contact. Het is een van de ingebouwde waarschuwingskanalen, inbegrepen bij elk pakket en in de 30 dagen durende proefperiode, en werkt naast de andere: één storing kan in dezelfde seconde een pagermelding sturen én een systeem bijwerken.

Eén URL, elk bevestigd incident

Registreer een endpoint, koppel het aan de monitors die ertoe doen, en elke bevestigde storing komt binnen als een object waarmee uw systemen kunnen archiveren en handelen.

Geen SDK Elf velden 30 dagen gratis proefperiode Geen creditcard
Aangepaste webhooks zijn een ingebouwd waarschuwingskanaal — elk type controle dat Uptimia uitvoert, post dezelfde structuur.