Distributed Systems Monitoring - Google Experience (kumasulira kwa mutu wa bukhu la Google SRE)
SRE (Site Reliability Engineering) ndi njira yopangira mawebusayiti kuti apezeke. Imatengedwa ngati chimango cha DevOps ndikuwuza momwe mungapambanire kugwiritsa ntchito machitidwe a DevOps. Nkhaniyi ikumasulira Mitu 6 Monitoring Distributed Systems mabuku Site Reliability Engineering kuchokera ku Google. Ndinakonza ndekha zomasulirazi ndikudalira luso langa pakumvetsetsa njira zowunikira. Mu njira ya telegraph @monitorim_izo ΠΈ blog pa Medium Ndinatumizanso ulalo womasulira Chaputala 4 cha buku lomwelo pa Zolinga za Utumiki wa Utumiki.
Kumasulira kwa mphaka. Sangalalani kuwerenga!
Magulu a Google SRE ali ndi mfundo zoyambira ndi njira zabwino zopangira njira zowunikira komanso zidziwitso. Mutuwu umapereka malingaliro pazovuta zomwe mlendo patsamba angakumane nazo komanso momwe angathetsere zovuta zomwe zimapangitsa kuti zikhale zovuta kuwonetsa masamba.
Malingaliro
Palibe mawu amodzi omwe amagwiritsidwa ntchito pokambirana mitu yokhudzana ndi kuyang'anira. Ngakhale pa Google, mawu omwe ali pansipa sagwiritsidwa ntchito mofanana, koma tidzalemba matanthauzidwe ambiri.
Kuwunikira
Kusonkhanitsa, kukonza, kusonkhanitsa ndi kuwonetsa zenizeni zenizeni zenizeni zokhudzana ndi dongosolo: chiwerengero cha zopempha ndi mitundu ya zopempha, chiwerengero cha zolakwika ndi mitundu ya zolakwika, kupempha nthawi yokonza ndi nthawi ya seva.
White box monitoring
Kuyang'anira motengera ma metric omwe amawonetsedwa ndi omwe ali mkati mwadongosolo, kuphatikiza logi, ma JVM kapena ma metric owongolera ma HTTP omwe amapanga ziwerengero zamkati.
Kuwunika kwa bokosi lakuda
Kuyesa machitidwe a pulogalamuyo malinga ndi momwe wogwiritsa ntchito amawonera.
Dashboard (ma dashboards)
Mawonekedwe (kawirikawiri mawonekedwe a intaneti) omwe amapereka chithunzithunzi cha zizindikiro zazikulu za umoyo wa mautumiki. Dashboard ikhoza kukhala ndi zosefera, kuthekera kosankha ma metric oti muwonetse, ndi zina. Dashboard imathanso kuwonetsa zidziwitso za ogwira ntchito zaukadaulo: mzere wopempha, mndandanda wa zolakwika zofunika kwambiri, mainjiniya omwe adapatsidwa gawo laudindo.
Chidziwitso (chidziwitso)
Zidziwitso zomwe zimayenera kulandiridwa ndi munthu kudzera pa imelo kapena ayi, zomwe zingayambike chifukwa cha zolakwika kapena kuwonjezeka kwa mzere wopempha. Zidziwitso zili m'magulu monga: matikiti, zidziwitso za imelo ndi mauthenga a messenger.
Choyambitsa (choyambitsa)
Vuto la pulogalamu kapena zolakwika zamunthu zomwe, zikakonzedwa, siziyenera kuchitikanso. Vutoli likhoza kukhala ndi zifukwa zingapo zazikulu: kusakwanira makina opangira, vuto la mapulogalamu, kuphunzira kosakwanira kwa malingaliro ogwiritsira ntchito. Chilichonse mwazinthu izi chikhoza kukhala chomwe chimayambitsa, ndipo chilichonse chiyenera kuthetsedwa.
Node ndi makina (mfundo ndi makina)
Mawu osinthika otanthauza nthawi imodzi ya pulogalamu yomwe ikuyenda pa seva yeniyeni, makina enieni, kapena chidebe. Pakhoza kukhala mautumiki angapo pa makina amodzi. Services akhoza kukhala:
zokhudzana wina ndi mzake: mwachitsanzo, seva ya cache ndi seva ya intaneti;
mautumiki osagwirizana pa hardware yomweyo: mwachitsanzo, code repository ndi wizard ya kasinthidwe kachitidwe, monga Chidole kapena mutu.
Kankhani
Kusintha kulikonse kwa kasinthidwe ka mapulogalamu.
Madashibodi akuyenera kuyankha mafunso ofunikira ndikuphatikiza china chake "4 zizindikiro zagolide" - kuchedwa (latency), traffic (magalimoto), zolakwika (zolakwika) ndi mtengo wa katundu (machulukitsidwe).
Kupanga kusanthula kwa retrospective (kuchotsa zolakwika)
Pemphani kuchedwa kwa ntchito kwawonjezeka, ndi chiyani chinanso chinachitika nthawi yomweyo?
Machitidwe owunikira ndi othandiza ngati gwero la data pamakina anzeru zamabizinesi ndikuwongolera kuwunikira zochitika zachitetezo. Popeza bukhuli likuyang'ana kwambiri zaumisiri momwe ma SRE ali ndi ukadaulo, sitikambirana za njira zowunikira pano.
Gulu la Google SRE lagwira ntchito mopambana mosiyanasiyana ndi magulu ovuta kudalira. Sitimagwiritsa ntchito malamulo monga "ndikapeza kuti database yayamba pang'onopang'ono, ndimalandira chenjezo la kuchepa kwa database, apo ayi ndimakhala tcheru pang'onopang'ono." Malamulo otengera kudalira nthawi zambiri amatanthawuza magawo osasinthika a dongosolo lathu, monga dongosolo losefera kuchuluka kwa anthu omwe amapita ku data center. Mwachitsanzo, "ngati zosefera zapakati pa data zakonzedwa, osandichenjeza za kuchedwa pokonza zopempha za ogwiritsa ntchito" ndi lamulo limodzi lodziwika bwino pazidziwitso zapa data. Magulu owerengeka a Google amathandizira magulu odalirana chifukwa cha zomangamanga zathu zimakhala ndi kusinthasintha kosalekeza.
Mfundo zina zomwe zafotokozedwa m'mutu uno zikugwirabe ntchito: nthawi zonse pali njira yopitira mofulumira kuchoka ku chizindikiro kupita ku mizu, makamaka mu machitidwe omwe amasintha nthawi zonse. Choncho, ngakhale mutuwu ukufotokoza zolinga za kalondolondo ndi momwe angakwaniritsire zolingazo, nkofunika kuti kalondolondo akhale wosavuta komanso womveka kwa aliyense pagulu.
"Chiyani" ndi "chifukwa" ndi chimodzi mwazomangamanga zofunika kwambiri popanga dongosolo labwino loyang'anira ndi chizindikiro chachikulu komanso phokoso lochepa.
Bokosi lakuda vs. White-box
Timaphatikiza kuyang'anira kwakukulu kwa bokosi loyera ndi kuyang'anira pang'onopang'ono kwa bokosi lakuda kwa ma metric ovuta. Njira yosavuta yofananizira Black-box ndi White-box ndikuti Black-box imayang'ana pazizindikiro ndipo imagwira ntchito m'malo moyang'anitsitsa: "dongosolo silikuyenda bwino pakali pano." Bokosi loyera limatengera kuthekera kwamkati kwamakina: zipika za zochitika kapena maseva apaintaneti. Chifukwa chake, White-box imakupatsani mwayi wozindikira zovuta zomwe zikubwera, zosokoneza zomwe zimawoneka ngati kubwezanso kwa pempho, ndi zina zambiri.
Zindikirani kuti mumitundu yambiri, chizindikiro m'dera laudindo wa injiniya m'modzi ndi chizindikiro m'dera laudindo wa injiniya wina. Mwachitsanzo, ntchito ya database yatsika. Kuwerengera pang'onopang'ono kwa database ndi chizindikiro cha database ya SRE yomwe imawazindikira. Komabe, kwa SRE yakutsogolo kuwonera tsamba lapang'onopang'ono, chifukwa chowerengera pang'onopang'ono database ndikuti databaseyo imachedwa. Chifukwa chake, kuyang'anira bokosi loyera nthawi zina kumangoyang'ana pazizindikiro ndipo nthawi zina pazifukwa, kutengera kukula kwake.
Mukasonkhanitsa telemetry kuti muchotse zolakwika, kuwunika kwa White-box ndikofunikira. Ngati ma seva a intaneti akuchedwa kuyankha mafunso a database, muyenera kudziwa momwe seva yapaintaneti imalumikizirana mwachangu ndi database komanso momwe ikuyankhira. Apo ayi, simungathe kusiyanitsa pakati pa seva yapang'onopang'ono ya database ndi vuto la intaneti pakati pa seva ya intaneti ndi database.
Kuwunika kwa bokosi lakuda kuli ndi mwayi waukulu potumiza zidziwitso: mumayambitsa chidziwitso kwa wolandira pamene vuto lidayambitsa kale zizindikiro zenizeni. Kumbali inayi, chifukwa cha vuto la Black-box lomwe silinayambepo, koma lomwe likubwera, kuyang'anira sikuthandiza.
Zizindikiro zinayi zagolide
Zizindikiro zinayi zowunikira zagolide ndi latency, traffic, zolakwika, ndi machulukitsidwe. Ngati mutha kuyeza ma metrics anayi okha, yang'anani pa anayiwo.
Kuchedwa
Nthawi yofunikira kuti tichite pempho. Ndikofunika kusiyanitsa pakati pa latency ya zopempha zopambana ndi zosapambana. Mwachitsanzo, cholakwika cha HTTP 500 chifukwa cha kulumikizidwa kotayika ku database kapena backend ina imatha kupezeka mwachangu kwambiri, komabe, cholakwika cha HTTP 500 chingasonyeze pempho lolephera. Kupeza zotsatira za cholakwika cha 500 pa latency yonse kumatha kubweretsa malingaliro olakwika. Kumbali ina, kulakwitsa pang'onopang'ono ndi kulakwitsa kwachangu! Chifukwa chake, ndikofunikira kuyang'anira zolakwika za latency m'malo mongosefa zolakwika.
magalimoto
Chiwerengero cha zopempha ku chipangizo chanu, choyezedwa ndi ma metrics apamwamba kwambiri. Pa ntchito yapaintaneti, muyeso uwu umayimira kuchuluka kwa zopempha za HTTP pa sekondi iliyonse yogawidwa ndi mtundu wa zopemphazo (mwachitsanzo, zokhazikika kapena zosunthika). Pa makina omvera, muyeso uwu ukhoza kukhazikika pa mlingo wa I/O wa netiweki kapena kuchuluka kwa magawo omwe amachitika nthawi imodzi. Pamakina osungira amtengo wapatali, muyeso uwu ukhoza kukhala wochitika kapena kuyang'ana pa sekondi imodzi.
Zolakwika
Uwu ndiye kuchuluka kwa zopempha zomwe zidalephera, mwina momveka bwino (mwachitsanzo, HTTP 500), mosabisa (mwachitsanzo, HTTP 200 koma kuphatikiza ndi zoyipa), kapena ndi mfundo (mwachitsanzo, "Ngati mutenga yankho mphindi imodzi, chilichonse mphindi imodzi ndi cholakwika"). Ngati palibe zizindikiro zokwanira za HTTP zowonetsera kulephera konse, ma protocol achiwiri (zamkati) angafunike kuti azindikire kulephera pang'ono. Kuwunika zopempha zolakwika zotere kumatha kukhala kopanda chidziwitso, pomwe kuyesa komaliza mpaka kumapeto kungakuthandizeni kuzindikira kuti mukukonza zolakwika.
Machulukidwe
Metric ikuwonetsa momwe ntchito yanu ikugwiritsidwira ntchito kwambiri. Uwu ndi muyeso wowunikira dongosolo womwe umazindikiritsa zinthu zomwe ndizochepa kwambiri (mwachitsanzo, m'dongosolo lokhala ndi kukumbukira pang'ono, zikuwonetsa kukumbukira, pamakina omwe ali ndi I / O ochepa, amawonetsa kuchuluka kwa I / O). Dziwani kuti machitidwe ambiri amatsika asanafike 100% kugwiritsidwa ntchito, kotero kukhala ndi cholinga chogwiritsa ntchito ndikofunikira.
Kuda nkhawa ndi mchira (kapena zida ndi magwiridwe antchito)
Mukamanga kachipangizo koyang'anira kuyambira pachiyambi, ndikuyesa kupanga dongosolo lokhazikika: pafupifupi latency, ma CPU ogwiritsira ntchito ma node, kapena kuchuluka kwa database. Kuopsa kwa zitsanzo ziwiri zomaliza ndizodziwikiratu: mapurosesa ndi ma database amatayidwa m'njira yosadziwika bwino. Zomwezo zimagwiranso ntchito kuchedwa. Ngati mukugwiritsa ntchito intaneti yokhala ndi latency ya 100ms pa zopempha 1000 pamphindikati, 1% ya zopempha zimatha kutenga masekondi asanu. Ngati ogwiritsa ntchito amadalira mautumiki angapo amtunduwu, 5th percentile ya backend imodzi imatha kukhala nthawi yoyankha yapakatikati.
Njira yosavuta yosiyanitsira pakati pa kuchedwa kwapang'onopang'ono ndi mchira wodekha kwambiri wa zopempha ndikusonkhanitsa miyeso ya zopempha zomwe zafotokozedwa mu ziwerengero (ma histogram ndi chida choyenera kuwonetsera), osati kuchedwa kwenikweni: ndi zopempha zingati zomwe zinaperekedwa ndi ntchito yomwe idatenga. pakati pa 0 ms ndi 10ms, pakati pa 10ms ndi 30ms, pakati pa 30ms ndi 100ms, pakati pa 100ms ndi 300ms, ndi zina zotero. Kukulitsa malire a histogram pafupifupi exponentially (ndi chinthu cha pafupifupi 3) nthawi zambiri ndi njira yosavuta yowonera kugawidwa kwa zopempha.
Kusankha granularity yoyenera yoyezera
Zinthu zosiyanasiyana zadongosolo ziyenera kuyesedwa ndi tsatanetsatane watsatanetsatane. Mwachitsanzo:
Kuwona kugwiritsidwa ntchito kwa CPU pakapita nthawi sikudzawonetsa ma spikes aatali omwe amabweretsa kuchedwa kwambiri.
Mofananamo, kuyang'ana malo aulere pa hard drive kuti 99,9% ipezeke kangapo kamodzi pa mphindi 1-2 mwina sikofunikira.
Samalani momwe mumapangira kukula kwa miyeso. Kugwiritsa ntchito kwa CPU kwa 1 pa sekondi iliyonse kumatha kupereka zambiri zosangalatsa, koma kuyeza kotereku kumatha kukhala kokwera mtengo kwambiri kusonkhanitsa, kusunga, ndi kusanthula. Ngati cholinga chanu chowunikira chimafuna kuchuluka kwakukulu ndipo sichikufuna kulabadira kwambiri, mutha kuchepetsa ndalamazi pokhazikitsa zosonkhanitsira ma metrics pa seva ndikusintha makina akunja kuti asonkhanitse ndikuphatikiza ma metricswo. Mungathe ku:
Yesani kugwiritsa ntchito CPU sekondi iliyonse.
Chepetsani zambiri mpaka 5%.
Aggregate metrics miniti iliyonse.
Njirayi ikuthandizani kuti musonkhane zambiri za granular popanda kukumana ndi mitu yayikulu kuti muwunike ndikusunga.
Zosavuta momwe zingathere, koma osati zosavuta
Kuyika zofunikira zosiyanasiyana pamwamba pa wina ndi mzake kungayambitse dongosolo lowunikira kwambiri. Mwachitsanzo, makina anu akhoza kukhala ndi zinthu zotsatirazi:
Kusintha kwa kusonkhanitsa deta, kusonkhanitsa, ndi kuchenjeza komwe kumachitika kawirikawiri (mwachitsanzo, kuchepera kotala kwamagulu ena a SRE) kuyenera kuchotsedwa.
Ma metric omwe amasonkhanitsidwa koma osawonetsedwa pachiwonetsero chilichonse kapena ogwiritsidwa ntchito ndi zidziwitso zilizonse ndizomwe zikuyenera kufufutidwa.
Ku Google, kusonkhanitsa kofunikira ndikuphatikiza ma metrics, kuphatikiza zidziwitso ndi ma dashboards, zimagwira ntchito bwino ngati njira yodziyimira yokha (dongosolo loyang'anira la Google limasweka m'magawo angapo, koma nthawi zambiri anthu amadziwa mbali zonse za subsystems). Zitha kukhala zokopa kuphatikiza kuwunika ndi njira zina zoyesera makina ovuta: kufotokoza mwatsatanetsatane kachitidwe, kukonza zolakwika, kutsatiridwa kapena kulephera, kuyezetsa katundu, kusonkhanitsa zipika ndi kusanthula, kapena kuyang'anira magalimoto. Ngakhale kuti zambiri mwazinthuzi zimagawana zofanana ndi kuyang'anitsitsa koyambirira, kuzisakaniza kumabweretsa zotsatira zambiri ndikupanga dongosolo lovuta komanso losasunthika. Monga momwe zilili ndi mbali zina zambiri za chitukuko cha mapulogalamu, kuthandizira machitidwe osiyanasiyana okhala ndi mfundo zomveka bwino, zosavuta, zosakanikirana zosakanikirana ndi njira yabwino kwambiri (mwachitsanzo, kugwiritsa ntchito intaneti API kuti mutengere chidule cha deta mumtundu womwe ukhoza kukhala wokhazikika kwa nthawi yaitali. ).
Kugwirizanitsa mfundo pamodzi
Mfundo zomwe zafotokozedwa m'mutuwu zitha kuphatikizidwa kukhala filosofi yowunikira ndi kuchenjeza yomwe imavomerezedwa ndikutsatiridwa ndi magulu a Google SRE. Kutsatira mfundo yowunikirayi ndikofunika, ndi poyambira bwino popanga kapena kukonzanso njira yochenjeza, ndipo kungakuthandizeni kufunsa mafunso oyenerera pazantchito posatengera kukula kwa bungwe lanu kapena zovuta zantchito kapena dongosolo.
Popanga malamulo owunikira ndi kuchenjeza, kufunsa mafunso otsatirawa kungakuthandizeni kupewa zabwinoza zabodza ndi zidziwitso zosafunikira:
Zomangamanga zamkati za Google nthawi zambiri zimaperekedwa ndikuyesedwa ndi Service Level (SLO). Zaka zapitazo, SLO ya ntchito ya Bigtable idakhazikitsidwa pakuchita pafupifupi kachitidwe kopanga kofanana ndi kasitomala wothamanga. Chifukwa cha zovuta za Bigtable komanso zotsika zosungirako, magwiridwe antchito ambiri adayendetsedwa ndi mchira "wamkulu": mafunso oyipa kwambiri 5% nthawi zambiri amachedwa kwambiri kuposa ena onse.