Svetainių stebėjimas kūrėjams, įpintas į jūsų sistemą.
Uptimia vykdo tikrus jūsų API iškvietimus — prisijungia, paima žetoną, pateikia užsakymą, jį perskaito — ir patikrina kiekvieną atsaką. Kiekvienai cron užduočiai priskirkite veikimo signalo URL, stebėjimo objektus kurkite tiesiai iš diegimo scenarijaus, o įspėjimai jus pasieks per Slack, Discord ar PagerDuty.
Step breakdown
All 4 steps passedFailed at step 31.66 s · 14:251.38 s · 14:327-day averagesLast runAssertions — step 3
3 of 3 passing1 of 3 passedResponse — step 3
201 · 624 ms500 · 612 msRecent Runs
every 5 min · 12 locations
New York✗ Failed at step 31.41 s
Frankfurt✗ Failed at step 31.38 s
London✓ All 4 steps passed1.62 s
Sydney✓ All 4 steps passed1.71 s
New York✓ All 4 steps passed1.58 s
Tokyo✓ All 4 steps passed1.64 sKeturi gedimai, kurie nesukelia klaidos
Diegimo dieną visos keturios prielaidos teisingos. Nė viena jų savaime tokia neišlieka — o kai kuri nors nustoja galioti, jokios klaidos neatsiranda.
„Jei kas nors sugestų, pamatytume klaidos pranešimą.“
Klaidų sekimo įrankiai mato tik kodą, kuris vykdomas. Nepasileidusi cron eilutė, darbo viduryje užstrigęs procesas, tyliai nustojęs galioti sertifikatas — nė vienas jų nesukelia klaidos. Blogiausi gedimai palieka ne klaidos pėdsaką, o tylą.
„CI patikros žalios, vadinasi, produkcinėje aplinkoje viskas gerai.“
CI įrodo, kad kodas buvo geras diegimo metu. Nebegaliojantys žetonai, prisipildę diskai, išnaudotos kvotos ir konfigūracijos nuokrypiai atsiranda tarp diegimų — veikiančioje sistemoje, kurios jūsų testai daugiau nebemato.
„Sužinotume greitai — juk visą dieną sėdime prie kompiuterio.“
Prie klaviatūros sėdite 40 iš 168 savaitės valandų — likusių 128 nestebi niekas. O naudotojai apie sugedusį apmokėjimą praneša retai: bando dar kartą ir išeina.
„Bandomojoje aplinkoje veikė, vadinasi, veikia.“
Bandomojoje aplinkoje niekada nebūna produkcinio srauto, tokio duomenų kiekio, trečiųjų šalių kvotų ar to paties DNS. Gedimai, kurie jus pažadina 03:00, kaip tik ir yra tie, kurių bandomoji aplinka nepakartoja.
„Turime /health galinį tašką — vadinasi, esame apsidraudę“ — didžiausias iš visų. Kas minutę vykdoma būklės patikra 1 440 kartų per parą praneša, kad procesas atsako (24 × 60). O kiek iš tų patikrų įrodo, kad apmokėjimas užbaigiamas, naktinė atsarginė kopija sukurta ar eilė tuštėja? Nė viena.
„Procesas atsako“ ir „sistema veikia“ — du skirtingi teiginiai. Naudotojams rūpi tik vienas iš jų.
Štai kaip atrodo tyliai sustojusi cron užduotis, kai ją stebi veikimo signalas.↓ minutė po minutės
Kas nutinka, kai cron užduotis tyliai nustoja veikti
Diegimas perrašė crontab ir vieną eilutę praleido. Tą naktį invoice-worker nepasileido, nieko nepranešė, o visi valdymo skydeliai liko žali — eilė taip ir nepajudėjo.
Tiek apie nutrūkusią užduotį. Bet cron — tik vienas paviršius, gendantis be garso; kiekvienas aukščiau minėtas įsitikinimas turi savo paviršių.↓ kiekvienam po stebėjimo objektą
Grandinės, ping signalai ir agentai
API grandinės paslaugoms, gaunami veikimo signalai užduotims, tikros naršyklės srautai atsiskaitymams, vienos eilutės agentas serveriui. Skirtingi paviršiai, vienas incidentų srautas, viena API.
Grandinės, veikimo signalai ir eskalavimo pakopos
Iškvietimai grandinėje, tikrinami kiekvienas atskirai
/health galinis taškas įrodo, kad procesas atsako. Apie už jo esantį srautą jis neįrodo nieko. Grandinė iš eilės įvykdo tikrus iškvietimus ir patikrina kiekvieną atsaką — būsenos kodą, užtrukusį laiką, reikšmę JSON viduje — net kas minutę visuose mokamuose planuose, iš visų vietų arba tik iš tų, kurias pasirenkate.
- Iki 15 žingsnių — GET, POST, PUT, PATCH, DELETE ar HEAD, vykdomi iš eilės
- Paimkite ir panaudokite — reikšmę iš vieno atsako įstatykite į kitą per
{{token}} - Tikrinkite tai, kas svarbu — būsenos kodą, atsako laiką, JSONPath reikšmę, antraštę ar atsako turinį, kiekviename žingsnyje
/health patikra atsakinėja puikiai — ir neįrodo nė vieno iš šių keturių iškvietimų.
įrodyta 0 iš 4
Užduotis, kuri taip ir nepasileido
Nustojusi veikti užduotis netampa raudona — ji tiesiog nutyla: klaidos niekas nesukelia, tad niekas ir neįspėja. Priskirkite jai veikimo signalo URL, į kurį ji siųstų ping kaskart pasileidusi, ir įspėjimu taps neatėjęs ping: praleidus terminą kartu su leistinu vėlavimu, Uptimia atidaro incidentą. Praneškite ir apie pradžią, ir apie pabaigą — tada pagaunamos ir tos užduotys, kurios ne sustoja, o pakimba.
- Intervalas arba cron grafikas — paprastas intervalas arba 5 laukų cron išraiška jūsų paskyros laiko juostoje
- Įrašoma viena eilute — paruošti fragmentai Crontab, Bash, PowerShell, GitHub Actions ir PHP
- Pagauna ne tik praleidimus, bet ir pakibimus — atsiųskite pradžios ping, o vykdymo trukmės riba pažymės užduotį, kuri taip ir nesibaigia
Stebėjimo objektai, sukurti diegimo žingsnyje
Niekas nieko nespaudžia — stebėjimo objektą sukūrė tas pats scenarijus, kuris išleido paslaugą. Stebėjimo objektus kurkite ir tvarkykite per REST API tiesiai iš CI žingsnio, o atsidarius incidentui pasirinktinis webhook POST užklausa nusiųs jį ten, kur jau dirbate: į būsenų lentą, į botą, į ChatOps srautą.
- REST API — kurkite, skaitykite, atnaujinkite ir trinkite stebėjimo objektus visuose planuose (API stebėjimo objektai ir veikimo signalai — v2 versijoje), o paskyros API raktus tvarkote nustatymuose
- Pasirinktiniai webhook — kai stebėjimo objektas suveikia, į bet kurį galinį tašką POST užklausa siunčiamas fiksuotas JSON turinys su jūsų pačių antraštėmis
- Saugu iš karto — siunčiant webhook tikrinamas TLS, fiksuojamas DNS ir atmetami vidinio tinklo adresai
curl -X POST …/api/v2/api-monitor
-d '{"name":"Checkout API","interval":60}'
Pirmiausia Slack, tada PagerDuty, jei niekas nepatvirtina
Į kanalą, kurį jūsų komanda ir taip stebi, o ne į pašto dėžutę, kurios naktį niekas neatidaro. Neatsakytą Slack žinutę eskalavimo pakopos jūsų nustatytu laiku pakelia iki PagerDuty iškvietimo, o vienas patvirtinimas — paspaustas pačiame įspėjime, be prisijungimo — sustabdo visus laukiančius žingsnius visiems.
- Įspėjimai ten, kur dirbate — Slack, Discord, Telegram, MS Teams, Mattermost, PagerDuty, el. paštas, SMS, webhook ir kiti
- Eskalavimo pakopos — iki 10 žingsnių su nustatytais laiko tarpais vienose taisyklėse; patvirtinus tiesiai iš įspėjimo eskalavimas sustoja
- Pirmiausia patvirtinama — sutrikimą patvirtina keli regionai, o vėluojančių užduočių palaukiama iki leistino vėlavimo pabaigos, ir tik tada kas nors iškviečiamas
Įspėjimas randa jus ten, kur jau dirbate, o ne dar viename valdymo skydelyje
Sustojęs procesas, nutrūkusi grandinė, be vietos diske likęs serveris — viskas pasiekia tuos pačius kanalus ir viskas valdoma per REST API.
Vienas kontaktų sąrašas — nustatote kartą, per API arba UI.
Peržiūrėkite visą integracijų katalogą →Nepavykęs diegimas turi jus įspėti.Ne naudotojai.
30 dienų bandymas atrakina visus stebėjimo tipus ir visus įspėjimų kanalus.
Pirmąjį stebėjimo objektą sukurkite per 3 žingsnius
Nukreipkite į objektą, nustatykite įspėjimų kanalą ir palikite veikti.
Pasirinkite paviršių
API grandinė, veikimo signalo URL, naršyklės srautas ar vienos eilutės agentas — sukurkite jį naudotojo sąsajoje arba per REST API.
Nukreipkite įspėjimą
Siųskite jį į Slack, Discord ar PagerDuty, pridėkite webhook ir nuspręskite, kam pranešti toliau, jei niekas nepatvirtina.
Palikite veikti
Patikros vykdomos iš 171+ stebėjimo vietų ir, prieš jus iškviesdamos, patvirtina gedimą — įspėjime įvardijamas sugedęs žingsnis ar užduotis.
Taip pat įskaičiuota
Vienos eilutės serverio agentas
CPU, atmintis, diskas ir apkrova iš paties serverio vidaus — bash diegimas su kontroline suma, jokio savo rinkiklio rašyti nereikia. Linux, per systemd laikmatį arba cron.
Operacijų stebėjimas
Prisijungimą ar apmokėjimą atkartokite tikroje naršyklėje — srautą sudėliojate žingsnis po žingsnio rengyklėje, o kiekvieno žingsnio ekrano nuotrauka parodo, ką jis matė.
Techninės priežiūros laikotarpiai
Diegiate šįvakar? Suplanuokite laikotarpį — patikros pristabdomos, įspėjimai tyli, ir per planuotą diegimą niekas nebus iškviestas be reikalo.
Atsistatymo pranešimai
Kai paslauga atsistato, apie tai sužino visi, kas gavo įspėjimą — kanale nebelieka kabančio klausimo „ar vis dar neveikia?“.
Incidentų istorija
Kiekvienas incidentas užrašomas: kas suveikė, kada, kiek truko atsistatymas ir — jei veikė eskalavimo pakopos — kas jį patvirtino.
Vienas sąrašas grandinėms ir užduotims
API grandinės, veikimo signalai, serveriai ir veikimo patikros dalijasi vienu valdymo skydeliu, viena įspėjimų ašimi ir viena API — o ne keturios atskiros priemonės.
Kas yra svetainių stebėjimas kūrėjams?
Svetainių stebėjimas kūrėjams — tai praktika stebėti tai, ką patys išleidžiate: HTTP API, foninius procesus, serverius ir naudotojų srautus, o kuriam nors sugedus gauti įspėjimą per įrankius, kuriuos jau naudojate. Stebėjimą įpinate į savo sistemą: daugiapakopė API patikra iš išorės, veikimo signalo ping, kurį atsiunčia pati cron užduotis, agentas serverio viduje ir REST API su webhook ten, kur mieliau parašysite scenarijų.
Atsako, bet vis tiek neveikia
Paviršutiniškas ping lieka žalias, o srautas, nuo kurio priklauso naudotojai, tuo metu genda.
Grandinė tai pagauna
Neišlaikyta tikrinimo sąlyga įvardija konkretų iškvietimą — todėl iš karto imatės klaidos paieškos, o ne spėlionių.
Kuris stebėjimo objektas ką stebi
Kiekviena šeima stebi vis kitą paviršių, o valdymo skydelis, įspėjimų ašis ir REST API — bendri. Kiekviena skaičiuojama atskirai, o brangiausiai kainuoja grandinė — tikslūs skaičiai kiekvienam planui pateikti kainų puslapyje.
Visi stebėjimo tipai →| Paviršius | Ką aptinkame | Kaip tai veikia |
|---|---|---|
| API grandinė | Sugedę daugiapakopiai srautai | Iki 15 žingsnių iš eilės su tikrinimo sąlygomis kiekvienam žingsniui, tikrinama net kas minutę |
| Veikimo signalas | Tyliai sustojusios cron užduotys ir procesai | Gaunamo ping URL; praleidus terminą ir leistiną vėlavimą atidaromas incidentas |
| Veikimo laikas | Sutrikimai, serverio klaidos | Patikros iš išorės net kas 30 s nuo Professional plano; gedimą patvirtina iki 3 regionų |
| Serverio agentas | CPU, atminties, disko apkrova | Vienos eilutės Linux agentas, kas 30 s siunčiantis /proc ir df duomenis |
| Operacija | Sugedę prisijungimai ir apmokėjimai | Daugiapakopiai srautai atkartojami tikroje naršyklėje |
Stebėjimas kūrėjams ir DevOps: dažnai užduodami klausimai
01Kas yra svetainių stebėjimas kūrėjams?+
02Ar galima stebėti visą daugiapakopį API srautą, o ne vieną galinį tašką?+
{{token}} ir kiekviename žingsnyje tikrinkite būsenos kodą, atsako laiką, JSONPath reikšmę, antraštę ar atsako turinį. Jei žingsnis nepavyksta, įspėjimas jį įvardija — iš karto žinote, kuris iškvietimas sugedo.03Kaip stebėti cron užduotį ar foninį procesą?+
curl eilutę, ir ji atsiųs ping kaskart pasileidusi. Nustatykite intervalą arba cron grafiką su leistinu vėlavimu, ir jei ping neatkeliauja, atidaromas incidentas. Pradžios ping kartu su vykdymo trukmės riba pagauna ir pakibusias užduotis. Paruošti fragmentai apima Crontab, Bash, PowerShell, GitHub Actions ir PHP.04Ar yra API, per kurią galima kurti ir tvarkyti stebėjimo objektus?+
curl pavyzdį. Nėra nei Terraform provider, nei Zapier programėlės.05Ar galima kiekvienam komandos nariui išduoti atskirą API raktą?+
06Kur ateina įspėjimai ir ar galima juos nukreipti į savo įrankius?+
07Ar tvarkote budėjimo grafikus?+
08Ar serverio agentas veikia Windows sistemoje?+
/proc bei df, kad praneštų CPU, atmintį, diską ir apkrovą. Kartu pateikiami PowerShell rinkiklis Windows sistemai ir macOS variantas — jie siunčia tą patį turinį, tik be atskirų branduolių ir I/O laukimo rodiklių, kuriuos atskleidžia vien Linux, — bet vienos eilutės komandos jiems nėra. Windows serverius taip pat galima stebėti iš išorės: veikimo, API arba operacijų stebėjimo objektais.09Ar galima į API rengyklę importuoti cURL komandą ar OpenAPI aprašą?+
10Kiek grandinių, veikimo signalų ir agentų telpa į planą?+
Išleiskite. Prižiūrėsime mes.
Bandymo metu prijunkite API grandinę, veikimo signalą ir serverio agentą — įspėjimai jus pasieks ten, kur jau esate.