Käytettävyystarkistus vetää: valvontapalvelu lähettää aikataulun mukaan pyynnön verkkosivustollesi tai API:llesi ja hälyttää, kun vastaus on väärä tai sitä ei tule. Heartbeat työntää: työsi tai palvelusi lähettää pyynnön valvontapalveluun aina, kun se ajetaan, ja hälytys laukeaa, kun pyyntöä ei kuulu. Käytä käytettävyystarkistuksia kaikkeen, mitä ihmiset käyttävät verkon yli, ja heartbeatia töihin, jotka ajetaan aikataulun mukaan tai joilla ei ole julkista osoitetta. Useimmat ympäristöt tarvitsevat molempia.
Nämä on helppo sekoittaa, koska kumpikin päättyy samaan: ”hälytä, kun jokin on vialla”. Ne kuitenkin näkevät eri vikoja, ja jos käytät toista siellä, missä tarvitset toista, jäljelle jää katvealue, joka paljastuu vasta, kun jokin hajoaa.
Näin käytettävyystarkistus toimii
Valvontapalvelu on asiakas. Joka minuutti tai valitsemasi välein se pyytää URL-osoitetta, pingaa palvelinta tai avaa portin ja arvioi vastauksen: tilakoodin, vasteajan, sivulla olevan avainsanan ja varmenteen. Jos tarkistus epäonnistuu ja toinen tarkistus vahvistaa sen, saat hälytyksen. Tämä on synteettistä valvontaa: robotti tekee saman kuin kävijä.
Se havaitsee: sivuston tai API:n, joka on alhaalla, hidas, vastaa virheillä, näyttää väärää sisältöä tai on rikki vanhentuneen varmenteen tai DNS-muutoksen takia. Kaiken, mihin kävijä törmäisi.
Siltä jää huomaamatta: kaikki, mikä ei vastaa pyyntöihin. Varmuuskopio, joka jäi ajamatta, jumiin jäänyt jonotyöntekijä tai kello 02.00 epäonnistunut tuonti. Sivusto pysyy pystyssä, joten jokainen tarkistus menee läpi.
Näin heartbeat toimii
Työsi on asiakas. Kerrot valvontapalvelulle, milloin työn pitäisi ajautua, ja työ kutsuu valmistuttuaan yksilöllistä ping-URL-osoitetta. Jos ping myöhästyy valitsemaasi armonaikaa enemmän, saat hälytyksen. Ajatus on sama kuin kuolleen miehen kytkimessä: hiljaisuus on itse signaali. Siksi heartbeat-valvontaa kutsutaan myös push-valvonnaksi tai dead man’s switch -valvonnaksi.
0 3 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 –retry 3 -o /dev/null https://app.uptimecheck.com/api/hb/your-token
Se havaitsee: työt, jotka eivät käynnistyneet, kaatuivat ennen loppua, ajettiin väärällä aikataululla tai aloitus-pingin kanssa kestivät aivan liian kauan. Kun pingiin liitetään paluukoodi, se havaitsee myös työt, jotka ajettiin mutta epäonnistuivat.
Siltä jää huomaamatta: se, pääseekö kukaan palveluusi. Palvelimella ajettava työ voi pingata iloisesti, vaikka samalla palvelimella oleva sivusto vastaa jokaiselle kävijälle 502.
Rinnakkain
KäytettävyystarkistusHeartbeatKuka lähettää pyynnönValvontapalveluTyösi tai palvelusiHälytys, kunVastaus on väärä, hidas tai puuttuuPing myöhästyy tai ilmoittaa virheestäTarvitsee julkisen osoitteenKylläEi, vain lähtevän HTTPS-yhteydenKäyttöönottoURL-osoite, palvelin tai porttiAikataulu, armonaika ja yksi pyyntö työssäNäkeeMitä kävijät ja API-asiakkaat kokevatAjettiinko taustatyö ja miten se päättyiEi näeTyötä, joka ei vastaa pyyntöihinPääseekö kukaan palveluun
Milloin käyttää käytettävyystarkistusta
Etusivullesi ja sivuille, jotka tuovat rahaa: kassa, rekisteröityminen ja kirjautuminen.
Julkisille API:lle ja webhookien vastaanottajille, niin että tarkistat tilakoodin ja palautuvan JSONin.
Health check -päätepisteelle, joka testaa tietokannan ja muut riippuvuudet jokaisella pyynnöllä.
Muissa porteissa toimiville palveluille, kuten sähköpostipalvelimelle, porttitarkistuksella.
Nyrkkisääntö: jos ihminen tai toinen järjestelmä kutsuu sitä, tarkista se ulkopuolelta samalla tavalla kuin he.
Milloin käyttää heartbeatia
Cron-töihin: tietokantojen ja tiedostojen varmuuskopiot, yölliset tuonnit ja viennit, raporttien luonti ja laskutusajot.
Muunlaisiin ajastettuihin tehtäviin: Windowsin ajoitettu tehtävä, Kubernetes CronJob, ajastettu GitHub Actions -työnkulku tai ajastimella käynnistyvä serverless-funktio.
Varmenteiden uusintaskripteihin ja järjestelmien välisiin tietojen synkronointeihin.
Kaikkeen palomuurin tai NATin takana olevaan, mihin ei pääse ulkopuolelta mutta mistä voi lähettää lähtevän HTTPS-pyynnön.
Pitkään käyvät työntekijäprosessit
Jonotyöntekijä tai daemon ei toimi aikataulun mukaan, mutta sekin voi lähettää heartbeatin. Pingaa pääsilmukasta muutaman minuutin välein ja anna valvonnalle cron-lausekkeen sijaan aikaväli. Jos silmukka jumittuu, prosessi tapetaan tai palvelin käynnistyy uudelleen käynnistämättä sitä, pingit loppuvat ja saat tiedon. Pingaa siitä silmukasta, joka tekee varsinaisen työn, älä erillisestä säikeestä, tai jumiin jäänyt työntekijä ilmoittaa yhä, että kaikki on kunnossa.
Milloin tarvitset molempia
Useimmissa oikeissa palveluissa on etuovi ja takahuone. Valvo kumpaakin työkalulla, joka näkee sen:
Verkkokauppa: käytettävyystarkistukset etusivulle ja kassalle sekä heartbeatit yölliselle tilausviennille ja tietokannan varmuuskopiolle.
SaaS-tuote: käytettävyystarkistus API:n health-päätepisteelle sekä heartbeatit jonotyöntekijälle ja laskut lähettävälle työlle.
Sisäinen palvelu: ei julkista osoitetta, joten heartbeat itse palvelusta sekä käytettävyystarkistukset julkisille sivuille, jotka ovat riippuvaisia sen datasta.
Yksi vaihtoehto on näyttää töiden tila health-päätepisteen kautta, esimerkiksi niin, että tarkistus epäonnistuu, kun viimeisin varmuuskopio on yli 25 tuntia vanha. Se toimii, mutta sitoo sivustosi käytettävyyden varmuuskopioihin, joten myöhästynyt varmuuskopio näkyy raporteissa sivuston katkona. Erillinen heartbeat pitää kaksi signaalia, ja kummankin hälytyksen saavat ihmiset, erillään.
Ajoitukset kohdalleen
Käytettävyystarkistuksen väli: joka minuutti sivuille, jotka tuovat rahaa, koska väli on pisin aika, jonka katko voi jäädä sinulta huomaamatta. Vähemmän kriittiset sivut voivat käyttää pidempää väliä.
Heartbeatin armonaika: pidempi kuin normaali vaihtelu siinä, milloin työ valmistuu. Varmuuskopio, joka alkaa kello 03.00, kestää 5–20 minuuttia ja pingaa lopuksi, tarvitsee vähintään 20 minuutin armonajan; 30 jättää varaa hitaalle yölle.
Enimmäisajoaika: aloitus-pingin kanssa voit hälyttää, kun ajo kestää selvästi tavallista pidempään. Jumiin jäänyt työ ei koskaan lähetä lopetus-pingiäkään, mutta tämä hälytys tulee heti, kun raja ylittyy.
Aikavyöhyke: cron-aikataulu toimii palvelimen aikavyöhykkeellä, usein UTC:ssä. Anna valvonnalle sama aikavyöhyke, tai kesäaika saa sen odottamaan työtä tuntia liian aikaisin tai myöhään kahdesti vuodessa. Cron-lausekkeen työkalu näyttää, milloin aikataulu oikeasti ajetaan.
Yleisiä virheitä
Pingi vain alussa. Työ, joka käynnistyy ja kaatuu, ilmoittautuu silti. Pingaa lopussa tai lähetä molemmat.
Pingi silloinkin, kun työ epäonnistuu. backup.sh; curl … pingaa tapahtui mitä tahansa. Käytä &&-merkintää tai lähetä paluukoodi, jotta virhe raportoidaan virheenä.
Pingi, joka voi jumittaa työn. Anna curlille aikakatkaisu ja uudelleenyritykset (-m 10 –retry 3), jotta hidas verkko ei pysäytä työtä eikä ping katoa.
Heartbeat julkiselle sivustolle. Ulospäin pingaava palvelin todistaa vain, että se pääsee internetiin, ei sitä, että kävijät pääsevät sille.
Cron-daemonin valvonta työn sijaan. Daemon voi toimia moitteetta, vaikka yksi työ epäonnistuu joka yö. Jokainen tärkeä työ saa oman heartbeatinsa.
Lisää heartbeateista oppaissa näin valvot cron-töitä ja näin estät väliin jääneet cron-tehtävät.
Molemmat samassa paikassa Uptimecheckillä
Uptimecheck ajaa molempia valvontatyyppejä samalla tilillä, samoilla hälytyskanavilla ja samalla häiriöhistorialla.
Käytettävyyden valvonta: HTTP(S)-, ping- ja porttitarkistukset jopa minuutin välein Tukholmasta, Lontoosta ja New Yorkista, ja jokainen virhe vahvistetaan toisesta sijainnista ennen hälytystä. HTTP-tarkistukset voivat testata tilakoodin, avainsanan, JSON-kentät ja otsakkeet.
Cron-töiden valvonta: crontab-lauseke omalla aikavyöhykkeelläsi kesäaika mukaan lukien tai yksinkertainen aikaväli; armonaika 1 minuutista 6 tuntiin; /start-pingit ja enimmäisajoaika 1 minuutista 24 tuntiin; /fail tai paluukoodi kertomaan, miten ajo päättyi; sekä pingin mukana lähetetty työn tuloste näkyvissä hälytyksessä.
Rajat: Start sisältää 15 käytettävyysvalvontaa ja 10 cron-työtä, Professional 100 ja 50, Business 250 ja 150. Katso hinnoittelu.
Käyttöönottoon katso näin valvot cron-työtä heartbeatilla ja cron-töiden ping-esimerkit Laravelille, Kubernetesille, GitHub Actionsille, systemd:lle ja Windowsille. Alla olevan palvelimen levyjen ja muistin seurantaan lisää palvelinvalvonta.
Pidä silmällä sekä etuovea että takahuonetta. Kokeile Uptimecheckiä ilmaiseksi 14 päivää, luottokorttia ei tarvita.