Giapod-apod nga pagsubay: gibuhat namon kini tanan nga sayup

Nota. transl.: Ang tagsulat niini nga materyal mao si Cindy Sridharan, usa ka inhenyero sa imgix nga nag-espesyalisar sa pagpalambo sa API ug, ilabina, pagsulay sa microservice. Sa kini nga materyal, gipaambit niya ang iyang detalyado nga panan-awon sa karon nga mga problema sa natad sa giapod-apod nga pagsubay, diin, sa iyang opinyon, adunay kakulang sa tinuud nga epektibo nga mga himan alang sa pagsulbad sa dinalian nga mga problema.

Giapod-apod nga pagsubay: gibuhat namon kini tanan nga sayup
[Ilustrasyon nga gikuha gikan sa ubang materyal mahitungod sa gipang-apod-apod nga pagsubay.]

Gituohan nga giapod-apod nga pagsubay lisud ipatuman, ug ang pagbalik niini kadudahan sa labing maayo. Adunay daghang mga hinungdan ngano nga ang pagsubay usa ka problema, kanunay nga gikutlo ang pagtrabaho nga nahilambigit sa pag-configure sa matag sangkap sa sistema aron ipadala ang angay nga mga ulohan sa matag hangyo. Bisan tuod kini nga problema anaa, kini dili gayud mabuntog. Pinaagi sa dalan, wala kini nagpatin-aw ngano nga ang mga nag-develop dili gyud ganahan sa pagsubay (bisan kung kini naglihok na).

Ang panguna nga hagit sa gipang-apod-apod nga pagsubay mao ang dili pagkolekta sa datos, pag-standardize sa mga pormat para sa pag-apod-apod ug pagpresentar sa mga resulta, o pagtino kung kanus-a, asa, ug unsaon pag-sampol. Wala ko maghuna-huna walay hinungdan kini nga mga "problema sa pagkasabut" sa tinuud, hinungdanon kaayo nga teknikal ug (kung gikonsiderar namon ang tinuud nga Open Source) mga sumbanan ug mga protocol) mga hagit sa politika nga kinahanglang buntogon aron kini nga mga problema makonsiderar nga masulbad.

Bisan pa, kung atong mahanduraw nga kining tanan nga mga problema masulbad, adunay usa ka taas nga posibilidad nga wala’y daghang pagbag-o sa mga termino sa end user nga kasinatian. Ang pagsubay mahimong dili gihapon praktikal nga gamit sa labing kasagarang mga senaryo sa pag-debug—bisan human kini na-deploy.

Lahi kaayo nga trace

Ang gipang-apod-apod nga pagsubay naglakip sa daghang lainlain nga mga sangkap:

  • pagsangkap sa mga aplikasyon ug middleware nga adunay mga himan sa pagkontrol;
  • giapod-apod nga pagbalhin sa konteksto;
  • koleksyon sa mga timailhan;
  • pagsubay sa pagtipig;
  • ilang pagkuha ug paghanduraw.

Daghang mga paghisgot bahin sa giapod-apod nga pagsubay lagmit nga pagtratar kini ingon usa ka klase sa unary nga operasyon nga ang bugtong katuyoan mao ang pagtabang sa hingpit nga pagdayagnos sa sistema. Kini tungod sa kadaghanan kung giunsa ang mga ideya bahin sa giapod-apod nga pagsubay sa kasaysayan naporma. SA mga entry sa blog, nga gihimo sa dihang giablihan ang mga tinubdan sa Zipkin, gihisgotan nga kini [Zipkin] naghimo sa Twitter nga mas paspas. Ang una nga komersyal nga mga tanyag alang sa pagsubay gipasiugda usab ingon Mga gamit sa APM.

Nota. transl.: Aron mas sayon ​​sabton ang dugang nga teksto, atong ipasabot ang duha ka batakang termino sumala sa Dokumentasyon sa proyekto sa OpenTracing:

  • gitas-on sa - ang sukaranan nga elemento sa giapod-apod nga pagsubay. Kini usa ka paghulagway sa usa ka piho nga dagan sa trabaho (pananglitan, usa ka pangutana sa database) nga adunay usa ka ngalan, mga oras sa pagsugod ug katapusan, mga tag, mga log ug konteksto.
  • Ang mga span kasagarang adunay mga link sa ubang mga span, nga nagtugot sa daghang mga span nga mahiusa Pagsubay — paghanduraw sa kinabuhi sa usa ka hangyo samtang kini naglihok pinaagi sa usa ka giapod-apod nga sistema.

Ang mga pagsubay adunay daghang bililhon nga datos nga makatabang sa mga buluhaton sama sa pagsulay sa produksiyon, pagsulay sa pagbawi sa katalagman, pagsulay sa pag-injection sa sayup, ug uban pa. Sa tinuud, ang ubang mga kompanya naggamit na sa pagsubay alang sa parehas nga katuyoan. Magsugod ta sa unibersal nga pagbalhin sa konteksto adunay uban pang mga gamit gawas sa pagbalhin sa mga span sa sistema sa pagtipig:

  • Pananglitan, Uber naggamit pagsubay sa mga resulta aron magkalahi tali sa trapiko sa pagsulay ug trapiko sa produksiyon.
  • Facebook naggamit trace data para sa critical path analysis ug para sa traffic switching atol sa regular disaster recovery tests.
  • Usab sa social network magamit Mga notebook sa Jupyter nga nagtugot sa mga developers sa pagpadagan sa arbitraryong mga pangutana sa mga resulta sa pagsubay.
  • Mga sumusunod LDFI (Lineage Driven Failure Injection) paggamit gipang-apod-apod nga mga pagsubay alang sa pagsulay nga adunay sayup nga pag-injection.

Walay bisan usa sa mga opsyon nga gilista sa ibabaw ang bug-os nga magamit sa senaryo debug, diin ang inhenyero naningkamot sa pagsulbad sa problema pinaagi sa pagtan-aw sa pagsubay.

Pag abot bisan pa nakaabot sa debugging script, ang panguna nga interface nagpabilin nga diagram traceview (bisan tuod ang uban nagtawag usab niini "Gant nga tsart" o "diagram sa talon"). Ilalum traceview я Akong gipasabot tanan nga mga span ug nag-uban nga metadata nga naghiusa sa paghimo sa pagsubay. Ang matag bukas nga gigikanan nga sistema sa pagsubay, ingon man ang matag komersyal nga solusyon sa pagsubay, nagtanyag usa ka traceview user interface alang sa paghanduraw, pagdetalye ug pagsala sa mga pagsubay.

Ang problema sa tanan nga mga sistema sa pagsubay nga akong nakita hangtod karon mao ang sangputanan visualization (traceview) halos bug-os nga nagpakita sa mga bahin sa proseso sa pagsubay sa kaliwatan. Bisan kung gisugyot ang mga alternatibong visualization: mga heatmap, topologies sa serbisyo, latency histograms, kini sa katapusan moabut sa traceview.

Kaniadto ako nagreklamo nga kadaghanan sa UI/UX nga nagsubay sa "mga kabag-ohan" daw limitado sa nag-on dugang nga metadata sa pagsubay, pagpamuhunan sa kanila nga impormasyon nga adunay taas nga kardinal (taas nga kardinal) o paghatag og abilidad sa pag-drill down ngadto sa piho nga mga span o pagpadagan sa mga pangutana inter- ug intra-trace... Diin traceview nagpabilin nga panguna nga himan sa pagtan-aw. Hangtud nga magpadayon kini nga kahimtang, ang gipang-apod-apod nga pagsubay (labing maayo) makuha ang ika-upat nga lugar ingon usa ka himan sa pag-debug, pagkahuman sa mga sukatan, mga troso ug mga pagsubay sa stack, ug sa labing grabe nga kini mahimong usa ka pag-usik sa salapi ug oras.

Problema sa traceview

Katuyoan traceview — paghatag ug kompletong hulagway sa paglihok sa usa ka hangyo sa tanang bahin sa gipang-apod-apod nga sistema diin kini nalangkit. Ang pila ka labi ka abante nga mga sistema sa pagsubay nagtugot kanimo sa pag-drill sa mga indibidwal nga gitas-on ug pagtan-aw sa usa ka pagkaguba sa paglabay sa panahon sa sulod usa ka proseso (kon ang mga span adunay functional boundaries).

Ang sukaranan nga sukaranan sa arkitektura sa microservices mao ang ideya nga ang istruktura sa organisasyon motubo uban ang mga panginahanglanon sa kompanya. Ang mga tigpasiugda sa microservices nangatarungan nga ang pag-apod-apod sa nagkalain-laing mga buluhaton sa negosyo ngadto sa indibidwal nga mga serbisyo nagtugot sa gagmay, awtonomiya nga mga development team nga makontrol ang tibuok lifecycle sa maong mga serbisyo, nga naghatag kanila og abilidad sa independente nga pagtukod, pagsulay, ug pagdeploy sa mga serbisyo. Bisan pa, ang disbentaha niini nga pag-apod-apod mao ang pagkawala sa kasayuran kung giunsa ang matag serbisyo nakig-uban sa uban. Sa ingon nga mga kahimtang, ang gipang-apod-apod nga pagsubay sa mga pag-angkon nga usa ka kinahanglanon nga himan alang sa debug komplikado nga interaksyon tali sa mga serbisyo.

Kung ikaw gyud makapakurat nga komplikado nga giapod-apod nga sistema, unya walay bisan usa ka tawo nga makatipig niini sa iyang ulo kompleto hulagway. Sa pagkatinuod, ang pagpalambo sa usa ka himan nga gibase sa pangagpas nga kini mahimo pa nga usa ka butang sa usa ka anti-pattern (usa ka dili epektibo ug dili produktibo nga pamaagi). Sa tinuud, ang pag-debug nanginahanglan usa ka himan nga makatabang pig-ot ang imong lugar sa pagpangita, aron ang mga inhenyero maka-focus sa usa ka subset sa mga dimensyon (mga serbisyo/users/hosts, ug uban pa) nga may kalabutan sa senaryo sa problema nga gikonsiderar. Kung gitino ang hinungdan sa usa ka kapakyasan, ang mga inhenyero dili kinahanglan nga masabtan kung unsa ang nahitabo sa panahon sa tanan nga mga serbisyo sa usa ka higayon, tungod kay ang ingon nga kinahanglanon magkasumpaki sa mismong ideya sa arkitektura sa microservice.

Bisan pa, ang traceview mao nga mao Kini. Oo, ang ubang mga sistema sa pagsubay nagtanyag og mga compressed traceviews kung ang gidaghanon sa mga span sa trace dako kaayo nga dili kini mapakita sa usa ka visualization. Bisan pa, tungod sa kadaghan sa kasayuran nga anaa bisan sa ingon nga usa ka gihubo nga pagtan-aw, ang mga inhenyero sa gihapon gipugos "Aya-a" kini, nga mano-mano nga gipakunhod ang pagpili sa usa ka hugpong sa mga serbisyo nga gigikanan sa mga problema. Ikasubo, sa kini nga natad, ang mga makina labi ka paspas kaysa sa mga tawo, dili kaayo dali sa mga sayup, ug ang ilang mga sangputanan mas masubli.

Ang laing rason nga sa akong hunahuna sayop ang traceview tungod kay kini dili maayo alang sa hypothesis-driven debugging. Sa kinauyokan niini, ang pag-debug mao nagbalikbalik usa ka proseso nga nagsugod sa usa ka hypothesis, gisundan sa pag-verify sa lain-laing mga obserbasyon ug mga kamatuoran nga nakuha gikan sa sistema uban sa lain-laing mga vectors, konklusyon/generalizations ug dugang nga assessment sa kamatuoran sa hypothesis.

Abilidad paspas ug barato pagsulay sa mga pangagpas ug sa pagpalambo sa mental nga modelo sumala mao ang batong pamag-ang pag-debug Ang bisan unsang himan sa pag-debug kinahanglan nga interactive ug pig-ot ang luna sa pagpangita o, sa kaso sa usa ka bakak nga tingga, tugoti ang tiggamit sa pagbalik ug pag-focus sa laing bahin sa sistema. Ang hingpit nga himan makahimo niini aktibo, diha-diha dayon nagdani sa pagtagad sa tiggamit ngadto sa posibleng problema nga mga dapit.

Alaut, traceview dili matawag nga himan nga adunay interactive nga interface. Ang labing maayo nga imong gilauman kung gamiton kini mao ang pagpangita sa pipila ka gigikanan sa dugang nga latency ug tan-awa ang tanan nga posible nga mga tag ug mga troso nga adunay kalabotan niini. Dili kini makatabang sa inhenyero sa pag-ila mga sumbanan sa trapiko, sama sa mga detalye sa pag-apod-apod sa paglangan, o nakit-an ang mga correlasyon tali sa lainlaing mga sukod. Kinatibuk-ang pagsusi sa pagsubay mahimong makatabang sa pagsulbad sa pipila niini nga mga problema. tinuod, adunay mga pananglitan malampuson nga pag-analisar gamit ang pagkat-on sa makina aron mahibal-an ang mga anomaliya nga mga gitas-on ug mahibal-an ang usa ka subset sa mga tag nga mahimo’g adunay kalabotan sa dili normal nga pamatasan. Bisan pa, wala pa ako makakita nga makapadani nga mga pagtan-aw sa pagkat-on sa makina o mga nakit-an nga pagmina sa datos nga gigamit sa mga span nga lahi kaayo sa usa ka traceview o usa ka DAG (gidirekta nga acyclic graph).

Ang mga span ubos kaayo nga lebel

Ang sukaranan nga problema sa traceview mao kana nagsangkad ubos ra kaayo ang lebel nga mga primitibo para sa latency analysis ug root cause analysis. Sama kini sa pag-parse sa indibidwal nga mga command sa processor aron pagsulay sa pagsulbad sa usa ka eksepsiyon, nahibal-an nga adunay mas taas nga lebel nga mga himan sama sa backtrace nga mas sayon ​​​​sa pagtrabaho.

Dugang pa, akong kuhaon ang kagawasan sa pagpahayag sa mosunod: sa labing maayo, dili nato kinahanglan bug-os nga hulagway nahitabo sa panahon sa hangyo sa lifecycle, nga girepresentahan sa modernong mga himan sa pagsubay. Hinuon, gikinahanglan ang pipila ka porma sa mas taas nga lebel nga abstraction nga adunay sulod nga impormasyon mahitungod sa unsa nasayop (susama sa backtrace), uban sa pipila ka konteksto. Imbis nga tan-awon ang tibuuk nga pagsubay, mas gusto nako nga makita kini kabahin sa, diin adunay butang nga makapaikag o talagsaon nga mahitabo. Sa pagkakaron, ang pagpangita gihimo nga mano-mano: ang inhenyero nakadawat sa pagsubay ug independente nga nag-analisar sa mga gitas-on sa pagpangita sa usa ka butang nga makapaikag. Ang pagduol sa mga tawo nga nagtan-aw sa mga span sa mga indibidwal nga mga pagsubay sa paglaum nga makit-an ang mga kadudahang kalihokan dili kaayo sukod (ilabi na kung kinahanglan nila nga masabtan ang tanan nga metadata nga gi-encode sa lainlaing mga span, sama sa span ID, ngalan sa pamaagi sa RPC, gidugayon sa span. 'a, mga troso, mga tag, ug uban pa).

Mga alternatibo sa traceview

Ang mga resulta sa pagsubay labi ka mapuslanon kung kini makita sa paagi nga naghatag dili hinungdanon nga panan-aw sa kung unsa ang nanghitabo sa magkadugtong nga mga bahin sa sistema. Hangtud nga kini mahitabo, ang proseso sa pag-debug sa kadaghanan nagpabilin inert ug nagdepende sa katakus sa tiggamit nga makamatikod sa husto nga mga correlasyon, susihon ang husto nga mga bahin sa sistema, o ibutang ang mga piraso sa puzzle - sukwahi sa instrumento, nagtabang sa tiggamit sa paghimo niini nga mga pangagpas.

Dili ako usa ka biswal nga tigdesinyo o espesyalista sa UX, apan sa sunod nga seksyon gusto nako nga ipaambit ang pipila ka mga ideya kung unsa ang hitsura niini nga mga visualization.

Pag-focus sa piho nga mga serbisyo

Sa panahon nga ang industriya nagkonsolida sa palibot sa mga ideya SLO (mga katuyoan sa lebel sa serbisyo) ug SLI (mga indikasyon sa lebel sa serbisyo), daw makataronganon nga ang tagsa-tagsa ka mga team kinahanglan nga unahon ang pagsiguro nga ang ilang mga serbisyo nahiuyon niini nga mga tumong. Kini nagsunod niana service oriented Ang visualization labing angay alang sa ingon nga mga team.

Ang mga pagsubay, ilabina nga walay sampling, usa ka bahandi sa impormasyon mahitungod sa matag bahin sa usa ka sistema nga gipang-apod-apod. Kini nga kasayuran mahimong ipakaon sa usa ka tuso nga processor nga maghatag sa mga tiggamit service oriented Mga nahibal-an. Mahimo silang mailhan nang daan - bisan sa wala pa tan-awon sa tiggamit ang mga pagsubay:

  1. Latency distribution diagram para lang sa prominente kaayo nga mga hangyo (outlier nga mga hangyo);
  2. Mga diagram sa pag-apud-apod sa paglangan alang sa mga kaso kung ang mga katuyoan sa SLO sa serbisyo wala makab-ot;
  3. Ang labing "kinatibuk-an", "makapainteres" ug "katingad-an" nga mga tag sa mga pangutana nga kasagaran gisubli;
  4. Latency breakdown para sa mga kaso diin pagsalig wala makab-ot sa mga serbisyo ang ilang mga tumong sa SLO;
  5. Latency breakdown para sa lain-laing downstream nga serbisyo.

Ang pipila niini nga mga pangutana wala matubag pinaagi sa built-in nga mga sukatan, nga nagpugos sa mga tiggamit sa pagsusi sa mga gitas-on. Ingon usa ka sangputanan, kami adunay usa ka mekanismo nga labi ka kontra sa tiggamit.

Kini nagpatunghag pangutana: komosta ang mga komplikadong interaksyon tali sa lain-laing mga serbisyo nga kontrolado sa lain-laing mga grupo? Dili ba traceview wala ba gikonsiderar nga labing angay nga himan aron ipasiugda ang ingon nga kahimtang?

Ang mga mobile developer, tag-iya sa stateless nga serbisyo, tag-iya sa gidumala nga stateful services (sama sa mga database) ug platform owners mahimong interesado sa laing butang. presentasyon giapod-apod nga sistema; traceview kay generic ra kaayo nga solusyon alang niining lain-laing mga panginahanglan. Bisan sa usa ka komplikado kaayo nga arkitektura sa microservice, ang mga tag-iya sa serbisyo wala magkinahanglan ug lawom nga kahibalo sa labaw pa sa duha o tulo nga mga serbisyo sa upstream ug downstream. Sa tinuud, sa kadaghanan nga mga senaryo, ang mga tiggamit kinahanglan ra nga motubag sa mga pangutana bahin sa limitado nga set sa mga serbisyo.

Kini sama sa pagtan-aw sa usa ka gamay nga subset sa mga serbisyo pinaagi sa usa ka magnifying glass alang sa pag-usisa niini. Tugotan niini ang tiggamit sa pagpangutana sa labi ka dinalian nga mga pangutana bahin sa mga komplikado nga interaksyon tali sa kini nga mga serbisyo ug sa ilang mga dali nga pagsalig. Kini susama sa backtrace sa mga serbisyo sa kalibutan, diin ang engineer nahibalo nga sayop, ug usab adunay pipila ka pagsabut sa kung unsa ang nahitabo sa palibot nga mga serbisyo aron masabtan ngano.

Ang pamaagi nga akong gipasiugda mao ang eksaktong kaatbang sa top-down, traceview-based nga pamaagi, diin ang pag-analisar magsugod sa tibuok nga pagsubay ug dayon anam-anam nga molihok ngadto sa tagsa-tagsa nga mga span. Sa kasukwahi, ang usa ka bottom-up nga pamaagi magsugod pinaagi sa pag-analisar sa usa ka gamay nga lugar nga duol sa posibleng hinungdan sa insidente, ug dayon gipalapdan ang search space kung gikinahanglan (uban ang potensyal sa pagdala sa ubang mga team aron pag-analisar sa mas lapad nga mga serbisyo). Ang ikaduha nga pamaagi mas haum alang sa dali nga pagsulay sa inisyal nga mga pangagpas. Kung makuha na ang konkretong mga resulta, mahimo nang mopadayon sa mas target ug detalyado nga pagtuki.

Pagtukod og topology

Ang mga panan-aw nga piho sa serbisyo mahimong labi ka mapuslanon kung nahibal-an sa tiggamit unsa man usa ka serbisyo o grupo sa mga serbisyo ang responsable sa pagdugang sa latency o hinungdan sa mga sayup. Bisan pa, sa usa ka komplikado nga sistema, ang pag-ila sa nakasala nga serbisyo mahimo’g usa ka dili hinungdanon nga buluhaton sa panahon sa kapakyasan, labi na kung wala’y mga mensahe sa sayup nga gitaho gikan sa mga serbisyo.

Ang paghimo og topology sa serbisyo mahimong dako nga tabang sa pag-ila kung unsang serbisyo ang nakasinati og pagtaas sa mga rate sa sayup o pagtaas sa latency nga hinungdan nga ang serbisyo mamatikdan nga madaot. Kung maghisgot ko bahin sa pagtukod sa usa ka topology, wala nako gipasabut mapa sa serbisyo, nga nagpakita sa matag serbisyo nga anaa sa sistema ug nailhan tungod niini mga mapa sa arkitektura sa porma sa usa ka bituon sa kamatayon. Kini nga panglantaw dili mas maayo kay sa traceview base sa usa ka gitumong acyclic graph. Hinoon gusto ko nga makakita dinamikong nahimo nga topology sa serbisyo.

Atong tagdon ang usa ka pananglitan. Hunahunaa ang usa ka hypothetical nga site sa balita. Serbisyo sa panid sa balay (una nga panid) nakigbayloay sa datos sa Redis, nga adunay serbisyo sa rekomendasyon, nga adunay serbisyo sa advertising ug serbisyo sa video. Ang serbisyo sa video nagkuha og mga video gikan sa S3 ug metadata gikan sa DynamoDB. Ang serbisyo sa rekomendasyon nakadawat metadata gikan sa DynamoDB, nag-load sa datos gikan sa Redis ug MySQL, ug nagsulat sa mga mensahe sa Kafka. Ang serbisyo sa advertising nakadawat data gikan sa MySQL ug nagsulat sa mga mensahe sa Kafka.

Sa ubos usa ka eskematiko nga representasyon sa kini nga topology (daghang komersyal nga mga programa sa ruta ang nagtukod sa topology). Mahimong mapuslanon kini kung kinahanglan nimo nga masabtan ang mga dependency sa serbisyo. Apan, sa panahon sa debug, kung ang usa ka serbisyo (ingon, usa ka serbisyo sa video) nagpakita sa dugang nga oras sa pagtubag, ang ingon nga topology dili kaayo mapuslanon.

Giapod-apod nga pagsubay: gibuhat namon kini tanan nga sayup
Service diagram sa usa ka hypothetical nga site sa balita

Ang dayagram sa ubos mahimong mas haum. Adunay problema sa serbisyo (video) gihulagway diha mismo sa sentro. Namatikdan dayon kini sa tiggamit. Gikan niini nga pagtan-aw, nahimong tin-aw nga ang serbisyo sa video nagtrabaho nga dili normal tungod sa pagtaas sa oras sa pagtubag sa S3, nga makaapekto sa gikusgon sa pagkarga sa bahin sa main page.

Giapod-apod nga pagsubay: gibuhat namon kini tanan nga sayup
Ang dinamikong topology nga nagpakita lamang sa "makapaikag" nga mga serbisyo

Ang dinamikong namugna nga mga topologies mahimong mas episyente kaysa static nga mga mapa sa serbisyo, ilabina sa pagkamaunat-unat, auto-scaling nga mga imprastraktura. Ang abilidad sa pagtandi ug pagtandi sa mga topologies sa serbisyo nagtugot sa tiggamit sa pagpangutana sa mas may kalabutan nga mga pangutana. Ang mas tukma nga mga pangutana bahin sa sistema mas lagmit nga motultol sa usa ka mas maayo nga pagsabut kung giunsa ang sistema molihok.

Pagtandi nga pagpakita

Ang laing mapuslanon nga paghanduraw mahimong usa ka pagtandi nga pagpakita. Sa pagkakaron ang mga pagsubay dili kaayo haum alang sa mga pagtandi sa kilid, mao nga kasagaran ang mga pagtandi nagsangkad. Ug ang panguna nga ideya sa kini nga artikulo mao nga ang mga gitas-on labi ka ubos nga lebel aron makuha ang labing hinungdanon nga kasayuran gikan sa mga resulta sa pagsubay.

Ang pagtandi sa duha ka mga pagsubay wala magkinahanglan og bag-ong mga visualization. Sa tinuud, ang usa ka butang sama sa usa ka histogram nga nagrepresentar sa parehas nga kasayuran sama sa usa ka traceview igo na. Katingad-an, bisan kini nga yano nga pamaagi makahatag labi pa nga bunga kaysa sa yano nga pagtuon sa duha nga mga pagsubay nga gilain. Mas gamhanan pa ang posibilidad paghanduraw pagtandi sa mga pagsubay Sa kinatibuk-an. Mapuslanon kaayo ang pagtan-aw kung giunsa ang bag-o nga gipakaylap nga pagbag-o sa configuration sa database aron mahimo ang GC (pagkolekta sa basura) makaapekto sa oras sa pagtubag sa usa ka serbisyo sa ubos sa usa ka sukod sa daghang oras. Kung ang akong gihulagway dinhi morag usa ka pagtuki sa A/B sa epekto sa mga pagbag-o sa imprastraktura sa daghang serbisyo gamit ang mga resulta sa pagsubay, nan dili kaayo ka layo sa kamatuoran.

konklusyon

Wala ko magduhaduha sa kapuslanan sa pagsubay mismo. Ako kinasingkasing nga nagtuo nga wala nay laing paagi sa pagkolekta sa datos nga ingon ka dato, hinungdan ug konteksto kay sa anaa sa usa ka pagsubay. Bisan pa, nagtuo usab ako nga ang tanan nga mga solusyon sa pagsubay naggamit sa kini nga datos nga dili epektibo. Hangtud nga ang mga himan sa pagsubay magpabilin sa representasyon sa traceview, sila limitado sa ilang abilidad sa pagpahimulos sa labing bililhon nga impormasyon nga makuha gikan sa datos nga anaa sa mga pagsubay. Dugang pa, adunay usa ka risgo sa dugang nga pagpalambo sa usa ka hingpit nga dili mahigalaon ug unintuitive visual interface nga grabe nga limitahan ang abilidad sa user sa pagsulbad sa mga sayop sa aplikasyon.

Ang pag-debug sa mga komplikadong sistema, bisan sa pinakabag-o nga mga himan, lisud kaayo. Ang mga himan kinahanglan makatabang sa developer sa paghimo ug pagsulay sa usa ka hypothesis, aktibong paghatag may kalabutan nga kasayuran, pag-ila sa mga outlier ug pagtimaan sa mga bahin sa pag-apod-apod sa mga paglangan. Para ang pagsubay aron mahimong himan sa pagpili alang sa mga developers sa pag-troubleshoot sa mga kapakyasan sa produksyon o pagsulbad sa mga problema nga mosangkad sa daghang serbisyo, gikinahanglan ang orihinal nga user interface ug visualization nga mas nahiuyon sa mental model sa mga developers nga nagmugna ug nagpadagan sa maong mga serbisyo.

Nagkinahanglan kini og mahinungdanong mental nga paningkamot sa pagdesinyo sa usa ka sistema nga magrepresentar sa lain-laing mga signal nga anaa sa mga resulta sa pagsubay sa paagi nga na-optimize para sa kasayon ​​sa pagtuki ug inference. Kinahanglan nimong hunahunaon kung giunsa ang pag-abstract sa topology sa sistema sa panahon sa pag-debug sa paagi nga makatabang sa tiggamit nga mabuntog ang mga buta nga wala magtan-aw sa indibidwal nga mga pagsubay o gilapdon.

Nagkinahanglan kami og maayo nga abstraction ug layering nga kapabilidad (ilabi na sa UI). Mga butang nga mohaum pag-ayo sa usa ka proseso sa pag-debug nga gipatuyok sa hypothesis diin mahimo ka nga makapangutana ug makasulay sa mga pangagpas. Dili nila awtomatik nga masulbad ang tanan nga mga problema sa pag-obserbar, apan makatabang kini sa mga tiggamit nga mapahait ang ilang intuition ug maghimo labi ka maalamon nga mga pangutana. Gitawag ko ang usa ka labi ka mahunahunaon ug bag-ong pamaagi sa paghanduraw. Adunay usa ka tinuud nga paglaum dinhi aron mapalapad ang mga kapunawpunawan.

PS gikan sa tighubad

Basaha usab sa among blog:

Source: www.habr.com

Idugang sa usa ka comment