Distribiye trase: nou te fè li tout mal

Remak. trad.: Otè materyèl sa a se Cindy Sridharan, yon enjenyè nan imgix ki espesyalize nan devlopman API ak, an patikilye, tès mikwosèvis. Nan materyèl sa a, li pataje vizyon detaye li sou pwoblèm aktyèl yo nan domèn trase distribiye, kote, nan opinyon li, gen yon mank de zouti vrèman efikas pou rezoud pwoblèm ijan.

Distribiye trase: nou te fè li tout mal
[Ilustrasyon te pran nan lòt materyèl sou trase distribiye.]

Yo kwè ke distribiye trase difisil pou aplike, ak retounen sou li ézitan nan pi bon. Gen anpil rezon ki fè trase se pwoblèm, souvan site travay ki enplike nan konfigirasyon chak eleman sistèm transmèt headers ki apwopriye yo ak chak demann. Malgre ke pwoblèm sa a egziste, li pa gen okenn fason enfranchisabl. By wout la, li pa eksplike poukisa devlopè pa reyèlman renmen trase (menm lè li deja fonksyone).

Defi prensipal la ak trase distribiye se pa kolekte done, estandadize fòma pou distribye ak prezante rezilta yo, oswa detèmine ki lè, ki kote, ak ki jan yo pran echantiyon. Mwen pa eseye imajine trivial "pwoblèm konpreyansib" sa yo se, an reyalite, byen enpòtan teknik ak (si nou ap konsidere vrèman Open Source) estanda ak pwotokòl) defi politik ki bezwen simonte pou yo ka konsidere pwoblèm sa yo rezoud.

Sepandan, si nou imajine ke tout pwoblèm sa yo rezoud, gen yon gwo pwobabilite pou anyen pa chanje anpil an tèm de eksperyans itilizatè fen. Trase ka toujou pa itil nan pratik nan senaryo debogaj ki pi komen-menm apre li te deplwaye.

Tankou yon tras diferan

Trase distribiye gen ladan plizyè eleman diferan:

  • ekipe aplikasyon ak middleware ak zouti kontwòl;
  • transfè kontèks distribiye;
  • koleksyon tras;
  • depo tras;
  • ekstraksyon ak vizyalizasyon yo.

Anpil pale sou trase distribiye gen tandans trete li kòm yon kalite operasyon inèr ki gen sèl objektif se ede konplètman dyagnostike sistèm nan. Sa a se lajman akòz fason ide sou trase distribiye yo te fòme istorikman. NAN antre blog, te fè lè sous Zipkin yo te louvri, li te mansyone ke li [Zipkin] fè Twitter pi vit. Premye òf komèsyal pou trase yo te ankouraje tou kòm Zouti APM.

Remak. trad.: Pou fè plis tèks pi fasil pou konprann, se pou nou defini de tèm debaz dapre Dokimantasyon pwojè OpenTracing:

  • Span — eleman debaz nan trase distribiye. Li se yon deskripsyon nan yon workflow sèten (pa egzanp, yon rechèch baz done) ak yon non, kòmansman ak fen fwa, tags, mòso bwa ak kontèks.
  • Plas yo tipikman gen lyen ki mennen nan lòt span, ki pèmèt plizyè span yo dwe konbine nan Trace — vizyalizasyon lavi yon demann pandan l ap deplase atravè yon sistèm distribiye.

Tras yo gen done ekstrèmman enpòtan ki ka ede ak travay tankou tès pwodiksyon, tès rekiperasyon dezas, tès piki erè, elatriye. An reyalite, kèk konpayi deja itilize trase pou rezon menm jan an. Ann kòmanse ak transfè kontèks inivèsèl gen lòt itilizasyon anplis tou senpleman deplase span nan sistèm depo a:

  • Pou egzanp, Uber itilizasyon trase rezilta yo fè diferans ant trafik tès ak trafik pwodiksyon an.
  • Facebook itilizasyon tras done pou analiz chemen kritik ak pou chanje trafik pandan tès rekiperasyon dezas regilye yo.
  • Epitou rezo sosyal aplike Kaye Jupyter ki pèmèt devlopè yo kouri demann abitrè sou rezilta tras.
  • Patizan LDFI (Enjeksyon Echèk Kondwi Lineage) itilize distribiye tras pou tès ak piki erè.

Okenn nan opsyon ki nan lis pi wo a pa aplike totalman nan senaryo a debogaj, pandan ki enjenyè a eseye rezoud pwoblèm nan pa gade tras la.

Lè li rive ankò rive nan script debogaj la, koòdone prensipal la rete dyagram nan traceview (byenke gen kèk rele li tou "Tablo Gantt" oswa "dyagram kaskad"). Anba traceview я Mwen vle di tout span yo ak metadata ki akonpaye yo ki ansanm fè tras la. Chak sistèm trase sous louvri, osi byen ke chak solisyon trase komèsyal, ofri yon traceview koòdone itilizatè pou vizyalize, detaye ak filtre tras.

Pwoblèm nan ak tout sistèm trase mwen te wè byen lwen tèlman se ke rezilta a vizyalizasyon (traceview) prèske konplètman reflete karakteristik yo nan pwosesis la jenerasyon tras. Menm lè yo pwopoze vizyalizasyon altènatif: kat chalè, topoloji sèvis, istogram latansi, yo toujou finalman desann nan traceview.

Nan tan lontan mwen plenyen ke pifò "inovasyon" nan trase UI/UX sanble yo limite a sa sèlman vire sou metadata adisyonèl nan tras, envesti nan yo enfòmasyon ak kardinalite segondè (wo kardinalite) oswa bay kapasite nan fè egzèsis desann nan span espesifik oswa kouri demann entè- ak intra-trace... Ki kote traceview rete zouti prensipal vizyalizasyon an. Osi lontan ke eta sa a nan zafè ap kontinye, distribiye trase pral (nan pi bon) pran 4yèm plas kòm yon zouti debogaj, apre mezi, mòso bwa ak tras pile, ak nan pi move li pral tounen yon fatra nan lajan ak tan.

Pwoblèm ak traceview

Objektif traceview — bay yon foto konplè sou mouvman yon sèl demann atravè tout eleman nan sistèm distribiye a ki gen rapò ak li. Gen kèk sistèm trase ki pi avanse pèmèt ou fè egzèsis desann nan span endividyèl epi wè yon pann sou tan andedan yon pwosesis (lè span gen limit fonksyonèl).

Premis debaz nan achitekti mikwosèvis yo se lide ke estrikti òganizasyonèl la ap grandi ak bezwen konpayi an. Patizan mikwosèvis yo diskite ke distribye travay divès kalite biznis nan sèvis endividyèl pèmèt ti ekip devlopman otonòm kontwole tout sik lavi sèvis sa yo, ba yo kapasite pou yo konstwi, teste ak deplwaye sèvis sa yo poukont yo. Sepandan, dezavantaj nan distribisyon sa a se pèt enfòmasyon sou fason chak sèvis reyaji ak lòt moun. Nan kondisyon sa yo, distribye tras reklamasyon yo dwe yon zouti endispansab pou debogaj entèraksyon konplèks ant sèvis yo.

Si ou reyèlman sistèm distribye ki trè konplèks, Lè sa a, pa gen yon sèl moun ki kapab kenbe l 'nan tèt li konplè foto. An reyalite, devlope yon zouti ki baze sou sipozisyon ke li se menm posib se yon bagay nan yon anti-modèl (yon apwòch inefikas ak enproduktiv). Idealman, debogaj mande pou yon zouti ki ede etwat zòn rechèch ou a, pou enjenyè yo ka konsantre sou yon sou-ansanm nan dimansyon (sèvis/itilizatè/lame, elatriye) ki gen rapò ak senaryo pwoblèm nan konsidere yo. Lè yo detèmine kòz yon echèk, enjenyè yo pa oblije konprann sa ki te pase pandan la tout sèvis an menm tan, piske yon egzijans konsa ta kontredi lide a nan achitekti mikwosèvis.

Sepandan, traceview se savwa Sa a. Wi, kèk sistèm trase ofri traceviews konprese lè kantite span nan tras la tèlman gwo ke yo pa ka parèt nan yon sèl vizyalizasyon. Sepandan, akòz gwo kantite enfòmasyon ki genyen menm nan tankou yon vizyalizasyon dezabiye, enjenyè toujou fòse "Separe" li, manyèlman redui seleksyon an nan yon seri sèvis ki se sous pwoblèm. Malerezman, nan jaden sa a, machin yo pi vit pase moun, mwens tandans fè erè, ak rezilta yo pi repete.

Yon lòt rezon mwen panse ke traceview pa bon se paske li pa bon pou ipotèz-kondwi debogaj. Nan nwayo li yo, debogaj se iteratif yon pwosesis ki kòmanse ak yon ipotèz, ki te swiv pa verifikasyon divès obsèvasyon ak reyalite yo jwenn nan sistèm nan ansanm ak diferan vektè, konklizyon/jeneralizasyon ak plis evalyasyon verite a nan ipotèz la.

Posibilite vit ak bon mache tès ipotèz ak amelyore modèl mantal la kòmsadwa se wòch kwen debogaj Nenpòt zouti debogaj ta dwe entèaktif ak etwat espas rechèch la oswa, nan ka yon fo plon, pèmèt itilizatè a tounen epi konsantre sou yon zòn diferan nan sistèm nan. Zouti pafè a pral fè sa proaktivman, imedyatman atire atansyon itilizatè a nan zòn pwoblèm potansyèl yo.

Ay, traceview pa ka rele yon zouti ki gen yon koòdone entèaktif. Pi bon an ou ka espere pou lè w ap itilize li se jwenn kèk sous latansi ogmante epi gade nan tout tags yo posib ak mòso bwa ki asosye ak li. Sa a pa ede enjenyè a idantifye modèl nan trafik, tankou spesifik distribisyon an reta, oswa detekte korelasyon ant mezi diferan. Analiz tras jeneralize ka ede evite kèk nan pwoblèm sa yo. Vrèman, gen egzanp analiz siksè lè l sèvi avèk aprantisaj machin pou idantifye span anòmal epi idantifye yon sous-ansanm etikèt ki ka asosye ak konpòtman anòmal. Sepandan, mwen poko wè vizyalizasyon konvenkan nan aprantisaj machin oswa rezilta min done aplike nan span ki siyifikativman diferan de yon traceview oswa yon DAG (dirije graf acyclic).

Spans yo twò ba nivo

Pwoblèm fondamantal ak traceview se sa span yo twò ba-nivo primitif pou tou de analiz latansi ak analiz kòz rasin. Se tankou analize kòmandman processeur endividyèl yo pou eseye rezoud yon eksepsyon, konnen ke gen anpil zouti ki pi wo tankou backtrace ki pi pratik pou travay avèk yo.

Anplis, mwen pral pran libète pou afime sa ki annapre yo: depreferans, nou pa bezwen foto konplè te fèt pandan sik lavi demann lan, ki reprezante pa zouti trase modèn. Olye de sa, gen kèk fòm abstrè pi wo nivo ki nesesè ki gen enfòmasyon sou sa ale mal (menm jan ak backtrace), ansanm ak kèk kontèks. Olye pou m gade tout tras la, mwen pito wè li часть, kote yon bagay enteresan oswa etranj rive. Kounye a, rechèch la te pote soti manyèlman: enjenyè a resevwa tras la ak poukont analize span yo nan rechèch nan yon bagay ki enteresan. Apwòch moun k ap gade nan tras endividyèl yo ak espwa pou yo detekte aktivite sispèk yo pa echèl ditou (sitou lè yo gen pou yo fè sans nan tout metadata yo kode nan diferan span, tankou ID span, non metòd RPC, dire span. 'a, mòso bwa, tags, elatriye).

Altènativ pou traceview

Rezilta tras yo pi itil lè yo ka vizyalize yo nan yon fason ki bay insight ki pa trivial sou sa k ap pase nan pati ki konekte nan sistèm nan. Jiskaske sa rive, pwosesis debogaj la rete lajman inaktif epi li depann de kapasite itilizatè a pou remake bon korelasyon yo, tcheke pati dwat yo nan sistèm nan, oswa mete moso yo nan devinèt la ansanm - kòm opoze a enstriman, ede itilizatè a fòmile ipotèz sa yo.

Mwen pa yon designer vizyèl oswa espesyalis UX, men nan pwochen seksyon an mwen vle pataje kèk ide sou ki sa vizyalizasyon sa yo ta ka sanble.

Konsantre sou sèvis espesifik

Nan yon moman kote endistri a ap konsolide alantou lide SLO (objektif nivo sèvis) ak SLI (endikatè nivo sèvis), li sanble rezonab ke ekip endividyèl yo ta dwe priyorite asire sèvis yo yo aliyen ak objektif sa yo. Li swiv sa sèvis oryante vizyalizasyon pi byen adapte pou ekip sa yo.

Tras, espesyalman san echantiyon, se yon trezò enfòmasyon sou chak eleman nan yon sistèm distribye. Enfòmasyon sa a ka bay yon processeur malen ki pral bay itilizatè yo sèvis oryante rezilta yo ka idantifye davans - menm anvan itilizatè a gade tras yo:

  1. Dyagram distribisyon latansi sèlman pou demann trè enpòtan (demann ki abitye);
  2. Dyagram distribisyon reta pou ka lè objektif SLO sèvis yo pa reyalize;
  3. Ki pi "komen", "enteresan" ak "etranj" Tags nan demann ki pi souvan yo repete;
  4. Pann latansi pou ka kote depandans sèvis yo pa atenn objektif SLO yo;
  5. Pann latansi pou divès sèvis en.

Gen kèk nan kesyon sa yo tou senpleman pa reponn pa bati-an metrik, fòse itilizatè yo egzamine spans. Kòm yon rezilta, nou gen yon mekanis trè itilizatè-ostil.

Sa a soulve kesyon an: e entèraksyon konplèks ant divès sèvis kontwole pa ekip diferan? Èske li pa? traceview pa konsidere kòm zouti ki pi apwopriye pou mete aksan sou yon sitiyasyon konsa?

Devlopè mobil, pwopriyetè sèvis apatrid, pwopriyetè sèvis jere eta (tankou baz done) ak pwopriyetè platfòm yo ka enterese nan yon lòt bagay. prezantasyon sistèm distribiye; traceview se yon solisyon twò jenerik pou bezwen fondamantalman diferan sa yo. Menm nan yon achitekti mikwosèvis trè konplèks, pwopriyetè sèvis yo pa bezwen konesans pwofon nan plis pase de oswa twa sèvis en ak en. Esansyèlman, nan pifò senaryo, itilizatè sèlman bezwen reponn kesyon konsènan yon seri sèvis limite.

Se tankou gade yon ti sous-ansanm nan sèvis nan yon loup pou dedomajman pou yo egzamine li. Sa a pral pèmèt itilizatè a poze kesyon plis ijan konsènan entèraksyon konplèks ant sèvis sa yo ak depandans imedya yo. Sa a se menm jan ak backtrace nan mond sèvis yo, kote enjenyè a konnen ki mal, epi tou li gen kèk konpreyansyon sou sa k ap pase nan sèvis ki antoure yo konprann poukisa.

Apwòch m ap pwomouvwa a se egzak opoze a apwòch ki baze sou tèt-desann, ki baze sou traceview, kote analiz la kòmanse ak tras la tout antye ak Lè sa a, piti piti travay desann nan span endividyèl. Kontrèman, yon apwòch anba a kòmanse nan analize yon ti zòn ki toupre kòz potansyèl ensidan an, epi answit elaji espas rechèch la jan sa nesesè (ak potansyèl pou pote nan lòt ekip yo analize yon seri pi laj nan sèvis). Dezyèm apwòch la pi byen adapte pou byen vit teste premye ipotèz yo. Yon fwa yo jwenn rezilta konkrè yo, li pral posib pou ale nan yon analiz ki pi vize ak detaye.

Bati yon topoloji

Opinyon sèvis espesifik yo ka ekstrèmman itil si itilizatè a konnen ki youn yon sèvis oswa yon gwoup sèvis responsab pou ogmante latansi oswa lakòz erè. Sepandan, nan yon sistèm konplèks, idantifye sèvis ofanse a ka yon travay ki pa trivial pandan yon echèk, espesyalman si pa gen okenn mesaj erè rapòte nan sèvis yo.

Bati yon topoloji sèvis ka yon gwo èd pou konnen ki sèvis ki gen yon ogmantasyon nan pousantaj erè oswa yon ogmantasyon nan latansi ki lakòz sèvis la degrade. Lè mwen pale sou bati yon topoloji, mwen pa vle di sèvis kat jeyografik, montre tout sèvis ki disponib nan sistèm nan ak li te ye pou li yo kat achitekti nan fòm yon etwal lanmò. View sa a pa pi bon pase traceview ki baze sou yon graf acyclic dirije. Olye de sa mwen ta renmen wè topoloji sèvis ki te pwodwi dinamik, ki baze sou sèten atribi tankou pousantaj erè, tan repons, oswa nenpòt paramèt itilizatè-defini ki ede klarifye sitiyasyon an ak sèvis espesifik sispèk.

Ann pran yon egzanp. Ann imajine yon sit nouvèl ipotetik. Sèvis paj lakay (devan paj) echanj done ak Redis, ak yon sèvis rekòmandasyon, ak yon sèvis piblisite ak yon sèvis videyo. Sèvis videyo a pran videyo ki soti nan S3 ak metadata ki soti nan DynamoDB. Sèvis rekòmandasyon an resevwa metadata nan DynamoDB, chaje done ki soti nan Redis ak MySQL, epi ekri mesaj bay Kafka. Sèvis piblisite a resevwa done ki soti nan MySQL epi ekri mesaj bay Kafka.

Anba a se yon reprezantasyon chema topoloji sa a (anpil pwogram routage komèsyal yo bati topoloji a). Li kapab itil si ou bezwen konprann depandans sèvis yo. Sepandan, pandan debogaj, lè yon sèten sèvis (di, yon sèvis videyo) montre ogmante tan repons, tankou yon topoloji pa trè itil.

Distribiye trase: nou te fè li tout mal
Dyagram sèvis yon sit nouvèl ipotetik

Dyagram ki anba a ta pi byen adapte. Gen yon pwoblèm ak sèvis la (Videyo) dekri dwa nan sant la. Itilizatè a remake li imedyatman. Soti nan vizyalizasyon sa a, li vin klè ke sèvis videyo a ap travay anòmal akòz yon ogmantasyon nan tan repons S3, ki afekte vitès la chaj nan yon pati nan paj prensipal la.

Distribiye trase: nou te fè li tout mal
Topoloji dinamik ki montre sèlman sèvis "enteresan".

Topoloji ki pwodui dinamik ka pi efikas pase kat sèvis estatik, espesyalman nan enfrastrikti elastik, oto-echèl. Kapasite nan konpare ak kontras topoloji sèvis pèmèt itilizatè a poze kesyon ki pi enpòtan. Kesyon ki pi egzak sou sistèm nan gen plis chans mennen nan yon pi bon konpreyansyon sou fason sistèm nan fonksyone.

Ekspozisyon konparatif

Yon lòt vizyalizasyon itil ta dwe yon ekspozisyon konparatif. Kounye a tras yo pa trè apwopriye pou konparezon kòt a kòt, kidonk konparezon yo anjeneral span. Ak lide prensipal la nan atik sa a se jisteman ke span yo twò ba-nivo yo ekstrè enfòmasyon ki pi enpòtan nan rezilta tras yo.

Konparezon de tras pa mande pou vizyalizasyon fondamantalman nouvo. An reyalite, yon bagay tankou yon istogram ki reprezante menm enfòmasyon ak yon traceview ase. Surprenante, menm metòd senp sa a ka pote pi plis fwi pase tou senpleman etidye de tras separeman. Menm plis pouvwa anpil ta posiblite a visualiser konparezon nan tras Antou. Li ta trè itil pou wè ki jan yon chanjman konfigirasyon baz done deplwaye dènyèman pou pèmèt GC (koleksyon fatra) afekte tan repons yon sèvis en sou yon echèl plizyè èdtan. Si sa m ap dekri isit la son tankou yon analiz A/B sou enpak chanjman enfrastrikti yo nan anpil sèvis lè l sèvi avèk rezilta tras yo, Lè sa a, ou pa twò lwen verite a.

Konklizyon

Mwen pa kesyone itilite trase li menm. Mwen sensèman kwè ke pa gen okenn lòt metòd pou kolekte done ki rich, kozatif ak kontèks ke sa ki genyen nan yon tras. Sepandan, mwen kwè tou ke tout solisyon trase itilize done sa yo trè efikas. Osi lontan ke zouti trase yo rete kole sou reprezantasyon traceview yo, yo pral limite nan kapasite yo pou yo fè pi plis nan enfòmasyon ki gen anpil valè ki ka ekstrè nan done ki genyen nan tras yo. Anplis de sa, gen yon risk pou devlope plis yon koòdone vizyèl ki pa zanmitay ak entwisyon ki pral limite anpil kapasite itilizatè a pou rezoud erè nan aplikasyon an.

Debogaj sistèm konplèks, menm ak dènye zouti yo, se ekstrèmman difisil. Zouti yo ta dwe ede pwomotè a fòme ak teste yon ipotèz, bay aktivman enfòmasyon ki enpòtan, idantifye outliers ak nòt karakteristik nan distribisyon an nan reta. Pou trase vin zouti chwa pou devlopè yo lè yo rezoud pwoblèm pwodiksyon echèk oswa rezoud pwoblèm ki kouvri plizyè sèvis, yo bezwen entèfas itilizatè orijinal ak vizyalizasyon ki pi konsistan avèk modèl mantal devlopè yo ki kreye ak opere sèvis sa yo.

Li pral pran gwo efò mantal pou konsepsyon yon sistèm ki pral reprezante divès siyal ki disponib nan rezilta tras yo nan yon fason ki optimize pou fasilite analiz ak enferans. Ou bezwen reflechi sou fason pou abstrè topoloji sistèm lan pandan debogaj nan yon fason ki ede itilizatè a simonte tach avèg san yo pa gade tras endividyèl oswa span.

Nou bezwen bon abstraksyon ak kapasite stratifikasyon (espesyalman nan UI a). Moun ki ta byen anfòm nan yon pwosesis debogaj ki baze sou ipotèz kote ou ka poze kesyon epi teste ipotèz yo. Yo pa pral otomatikman rezoud tout pwoblèm obsèvabilite, men yo pral ede itilizatè yo file entwisyon yo ak fòmile kesyon pi entelijan. Mwen mande pou yon apwòch plis reflechi ak inovatè nan vizyalizasyon. Gen yon pwospè reyèl isit la yo elaji orizon.

PS soti nan tradiktè

Li tou sou blog nou an:

Sous: www.habr.com

Add nouvo kòmantè