![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Waagii hore, markii aan ka hadalnay dhabarka dambe, waxaan inta badan tixraacnay hal codsi oo weyn oo leh hal, keydin weyn, iyo galitaanka ayaa ku filan kormeerka. Hadda, mahadsanid tignoolajiyada sida Kubernetes , adeegaha yar yar ayaa noqday heerka. Codsiyada aad ayey u badan yihiin waana loo qaybiyaa, iyo goynta dhaqameedku hadda kuma filna sixitaanka iyo ogaanshaha dhibaatooyinka codsiyadayada.
Xalka ugu fiican ee abaabulka la socodka waa OpenTelemetry - qalab casri ah oo loo isticmaali karo sifaynta iyo falanqaynta waxqabadka nidaamyada qaybsan.
Maqaalkan waxaa loogu talagalay xirfadlayaasha IT-ga ee doonaya inay ballaariyaan aqoontooda xagga hagaajinta dambe. Hoosta, waxaanu faahfaahin doonaa waxa uu yahay OpenTelemetry, fikradihiisa muhiimka ah, iyo dhibaatooyinka ay ka caawiso xalinta. Haddii aad xiisaynayso sida OpenTelemetry u beddeli karto habkaaga kormeerka iyo ciribtirka nidaamyada dhabarka, kor u qaadida isku halaynta iyo hufnaantooda - sii akhri.
Shirkadaha waaweyn ee tignoolajiyada ayaa markii ugu horaysay la kulmay caqabada qaybinta jarista iyo raadinta dabayaaqadii 2000aadkii. Sannadkii 2010, Google ayaa daabacday warqad,
2014, Kubernetes ayaa soo baxday, taasoo si weyn u fududaysay horumarinta adeegyada yaryar iyo nidaamyada kale ee loo qaybiyo daruuraha. Tani waxay keentay in shirkado badan ay la kulmaan arrimo ku saabsan jarista la qaybiyey iyo raadinta adeegyada yaryar. Si loo habeeyo raadinta la qaybiyey, heerka OpenTracing, ee ay qaadatay CNCF, iyo Google's OpenCensus mashruuca ayaa la sameeyay.
Sannadka 2019, mashaariicda OpenTracing iyo OpenCensus waxay ku dhawaaqeen isku darka magaca OpenTelemetry. Qalabkani wuxuu isku daraa hababka ugu wanaagsan ee la ururiyey sannado badan, taas oo u oggolaanaysa is-dhexgalka aan kala go 'lahayn ee raadinta, gooynta, iyo cabbirada nidaam kasta, iyada oo aan loo eegin kakankooda.
Maanta, OpenTelemetry ma aha mashruuc kaliya; waa halbeeg warshadeed ururinta iyo gudbinta xogta telemetry. Waxaa soo saaray oo ay taageerto bulshada khubarada ah iyo shirkadaha hormuudka u ah suuqa sida Google iyo Microsoft. Mashruucu wuu sii socdaa inuu horumariyo, isagoo helaya awoodo cusub si loo fududeeyo isdhexgalka iyo habka isticmaalka.
OpenTelemetry waa hab-dhaqanno iyo qalab dhammaystiran oo qeexaya calaamadaha codsigu dhalin karo si uu ula falgalo adduunka ka baxsan, iyo sida calaamadahan loo ururin karo loona arki karo si loola socdo xaaladda codsiyada iyo nidaamka guud ahaan. Saddexda nooc ee calaamadaha ugu waaweyn waa baafinta, gooynta , iyo ururinta cabbirka .
** Aynu si qoto dheer u eegno qayb kasta: \
OpenTelemetry waxay soo bandhigaysaa fikradda xaaladaha hawlgalka. Macnaha guud waxa ka mid ah sifooyin ay ka mid yihiin `trace_id`
(tilmaanta hawlgalka hadda) iyo `span_id`
(tilmaanta codsi-hoosaad, iyadoo mid kasta oo dib-u-dayac-hoosaad ahi uu yeelanayo `span_id`
gaar ah).
Intaa waxaa dheer, macnaha guud waxaa ku jiri kara macluumaad sugan, sida magaca noodhka meesha codsiga la geeyay ama magaca deegaanka (prod/qa). Goobahan, oo loo yaqaan agabyada ereybixinta OpenTelemetry, waxay ku lifaaqan yihiin log kasta, mitir, ama raad-raac kasta oo si sahlan loo baadho. Mawduucyada waxa kale oo ku jiri kara xog firfircoon, sida aqoonsiga barta ugu dambaysa ee hadda jirta ( `http_path: "GET /user/:id/info"`
), kaas oo si xushmad leh loogu lifaaqi karo kooxo qoraallo ah, cabbiro, ama raadad.
Macnaha OpenTelemetry waxaa loo dhex mari karaa codsiyo kala duwan iyadoo la isticmaalayo borotokoolka faafinta macnaha guud. Hab-maamuusyadani waxay ka kooban yihiin qalabyo madax oo lagu daro codsi kasta HTTP ama gRPC ama madaxyada fariimaha safafka. Tani waxay u oggolaanaysaa codsiyada hoose inay dib u dhisaan macnaha guud ee madaxyadan.
Waa kuwan tusaalayaal ku saabsan faafinta macnaha guud:
B3-Faafinta Kani waa madax madax ( x-b3-*
) oo asal ahaan loo sameeyay nidaamka raadinta Zipkin. Waxaa loo habeeyey OpenTracing waxaana isticmaalay qalab iyo maktabado badan. B3-Faafintu waxa ay wadataa trace_id
/ span_id
iyo calan tilmaamaysa in muunadku muhiim yahay.
Macnaha Raadraaca W3C oo ay soo saareen kooxda shaqada W3C, heerkani waxa uu mideeyaa habab kala duwan oo ku saabsan faafinta macnaha guud oo ah halbeeg waana ta ugu talagalka ah ee OpenTelemetry. Tusaalaha wanaagsan ee ku dhaqanka heerarkan ayaa ah la socodka fulinta codsiga ka gudbaya adeegyadda yar-yar ee lagu hirgeliyay tignoolajiyada kala duwan iyada oo aan la carqaladayn la socodka iyo saxnaanta khaladka.
Baafintu waa habka duubista iyo sawirida wakhtiga dariiqa codsiga iyada oo loo marayo adeegyo yar yar oo badan.
Aragtida, baarka kasta waxaa loo yaqaan "span" wuxuuna leeyahay "span_id" gaar ah. Dhererka xididka waxaa loo tixraacaa "raad" wuxuuna leeyahay "trace_id" , kaas oo u adeega sida aqoonsiga codsiga oo dhan.
Aragtida noocan ah waxay kuu ogolaanaysaa inaad:
trace_id
iyo span_id
si loogu isticmaalo calaamadaha kale.
In kasta oo ay muuqato fududaanteeda, jarista ayaa weli ah mid ka mid ah aaladaha ugu awoodda badan ee lagu ogaanayo dhibaatooyinka. OpenTelemetry waxay wanaajisaa jarista dhaqanka iyadoo ku daraya macluumaadka macnaha guud. Gaar ahaan, haddii raad firfircooni jiro, 'trace_id' iyo 'span_id' sifooyinka si toos ah ayaa loogu daraa diiwaannada, iyaga oo ku xiraya jadwalka raadinta. Intaa waxaa dheer, sifooyinka log waxaa ka mid noqon kara macluumaadka taagan ee OpenTelemetry, sida aqoonsiga noodhka, iyo sidoo kale macluumaadka firfircoon, sida aqoonsiga barta HTTP ee hadda (`http_path: "GET /user/: id").
Adigoo isticmaalaya `trace_id`, waxaad ka heli kartaa diiwaanka dhammaan adeegyada yar yar ee la xiriira codsiga hadda jira, halka `span_id' uu kuu ogolaanayaa inaad kala saarto codsiyada hoose. Tusaale ahaan, xaalada isku dayga, diiwaanada isku dayo kala duwan waxay yeelan doonaan `span_id`s kala duwan. Isticmaalka caddaymahan ayaa awood u siinaya in si degdeg ah loo baaro hab-dhaqanka nidaamka oo dhan wakhtiga dhabta ah, dedejinta ogaanshaha dhibaatada iyo kor u qaadida xasiloonida iyo isku halaynta.
Ururinta cabbirada waxay bixisaa xog tirooyin ah oo ku saabsan waxqabadka nidaamka, sida daahitaanka, heerka khaladaadka, isticmaalka kheyraadka, iyo in ka badan. La socodka waqtiga-dhabta ah ee cabbiraadaha ayaa kuu ogolaanaya inaad si degdeg ah uga jawaabto isbeddellada waxqabadka, ka hortagga guul-darrooyinka iyo daalka kheyraadka, oo aad hubiso helitaanka sare iyo kalsoonida arjiga isticmaaleyaasha.
Isku dhafka mitirka kaydinta iyo nidaamyada aragga sida Prometheus iyo Grafana waxay sahlaysaa in la sawiro xogtan, iyadoo si weyn u fududaynaysa la socodka.
Furayaasha mitirka mitirka ee OpenTelemetry waxay la jaan qaadayaan Prometheus iyo heerarka OpenMetrics, taasoo awood u siinaya u gudubka fudud ee xalalka OpenTelemetry iyada oo aan isbeddello la taaban karin. OpenTelemetry SDK waxa ay ogolaataa tusaalooyinka trace_id in la dhoofiyo oo ay la socdaan cabbiraadaha, taas oo ka dhigaysa in ay suurtogal tahay in la isku xidho cabbirada tusaalayaasha log iyo raadadka.
Si wada jir ah, logs, metrics, iyo baafintu waxay abuuraan aragti dhamaystiran ee nidaamka nidaamka:
Marka lagu daro saddexda qaybood ee xudunta u ah, OpenTelemetry waxa ku jira fikradaha Muunalada, Bagaashka, iyo maaraynta macnaha guud.
Nidaamyada culeyska sareeyo, mugga diiwaanka iyo raadadku waxay noqonayaan mid aad u weyn, una baahan kheyraad la taaban karo ee kaabayaasha iyo kaydinta xogta. Si arrintan wax looga qabto, Heerarka OpenTelemetry waxaa ka mid ah muunada calaamadaha - awoodda dhoofinta kaliya qayb ka mid ah raadadka iyo logyada. Tusaale ahaan, waxaad ka dhoofin kartaa calaamado faahfaahsan boqolkiiba codsiyada, codsiyada muddada dheer, ama codsiyada khaladaadka. Habkani wuxuu ogolaanayaa muunad ku filan si loo dhiso tirakoob iyadoo la badbaadinayo kheyraad muhiim ah.
Si kastaba ha ahaatee, haddii nidaam kastaa si madax-bannaan u go'aansado codsiyada la socdo si faahfaahsan, waxaan ku dhammaaneynaa aragti kala qaybsan ee codsi kasta. Nidaamyada qaar ayaa laga yaabaa inay dhoofiyaan xogta faahfaahsan halka kuwa kalena laga yaabo inay qayb ahaan dhoofiyaan ama aanay dhoofin gabi ahaanba.
Si loo xalliyo dhibaatadan, hababka faafinta macnaha guud ee OpenTelemetry waxa ay gudbisaa muunada calanka oo ay la socoto 'trace_id`/`span_id'. Tani waxay hubinaysaa in haddii adeegga bilowga ah ee helaya codsiga isticmaalaha uu go'aansado in codsiga si faahfaahsan loola socdo, dhammaan nidaamyada kale way raaci doonaan. Haddii kale, dhammaan nidaamyada waa in qayb ahaan ama aysan dhoofin calaamadaha si loo ilaaliyo kheyraadka. Habkan waxa loo yaqaan "Sampling Head" - go'aan la gaaray bilawga habaynta codsiga, ha ahaato si aan kala sooc lahayn ama ku salaysan sifada wax gelinta.
Ka sokow, OpenTelemetry waxa ay taageertaa "Sampling Dabada," halkaas oo dhammaan codsiyada ay had iyo jeer dhoofiyaan dhammaan calaamadaha si faahfaahsan, laakiin kayd dhexdhexaad ah ayaa jira. Ka dib markii la ururiyo dhammaan xogta, kaydiyahan ayaa go'aaminaya in la hayo xogta buuxda ama la haysto qayb qayb ah oo keliya. Habkani waxa uu ogolaanayaa muunad ka badan oo wakiil ka ah qayb kasta oo codsi (guulaystay/dheer/qallad) laakiin u baahan habayn kaabayaasha dheeraad ah.
Habka Bagaashka waxa uu ogolaadaa in lamaanaha qiimaha-furaha ah ee gardarrada ah lagu kala qaado iyada oo ay la socoto trace_id
/ span_id
, iyaga oo si toos ah u dhexmara dhammaan adeegyadda yaryar inta lagu jiro habaynta codsiga. Tani waxay faa'iido u leedahay gudbinta macluumaadka dheeraadka ah ee loo baahan yahay inta lagu jiro dariiqa codsiga - sida macluumaadka isticmaalaha ama goobaha jawiga runtime.
Tusaalaha madaxa gudbinta shandadaha si waafaqsan heerka W3C: tracestate: rojo=00f067aa0ba902b7,congo=t61rcWkgMzE,userId=1c30032v5
Waa kuwan qaar ka mid ah tusaalooyinka isticmaalka shandadaha:
Gudbinta Macluumadka Macluumadka Ganacsiga sida userId
, productId
, ama deviceId
waxa la dhex mari karaa dhamaan adeegaha yar yar. Codsiyada waxay si toos ah u geli karaan macluumaadkan, iyagoo u oggolaanaya in la baadho log-ka macnaha guud ee codsiga asalka ah.
Hababka Habaynta Gaarka ah ee SDK-yada ama kaabayaasha
Calannada Dariiqa ah ee ka caawiya culeyska culeyska saarayaasha inay gaaraan go'aanno wareeg ah. Inta lagu jiro tijaabada, codsiyada qaar ayaa laga yaabaa inay u baahdaan in loo gudbiyo si jeesjees ah. Maadaama shandaduhu si toos ah loogu kala qaado dhammaan adeegyada, looma baahna in la abuuro borotokool dheeraad ah - kaliya deji xeer ku saabsan dheellitirka rarka.
Ogsoonow in kasta oo saamaynta wax qabad ee Boorsadu ay tahay mid aad u yar, isticmaalka xad-dhaafka ah wuxuu si weyn u kordhin karaa culeyska shabakadda iyo adeegga. Si taxadar leh u dooro xogta aad dhab ahaantii u baahan tahay inaad dhex marto Boorsooyinka si aad uga fogaato arrimaha waxqabadka.
Hirgelinta OpenTelemetry ee heerka kaabayaasha waxay ku lug leedahay isku dhafka OpenTelemetry dhabarka danbe ee qaab dhismeedka codsiga iyo habaynta kaabayaasha xogta isu geynta.
Nidaamku wuxuu ka kooban yahay afar marxaladood:
Is-dhexgalka Codsiga Marxaladda koowaad, OpenTelemetry SDKs ayaa si toos ah loogu dhex milmay arjiyada si loo ururiyo cabbirada, logyada, iyo raadadka, hubinta socodka joogtada ah ee xogta ku saabsan waxqabadka qayb kasta oo ka mid ah nidaamka.
Habaynta Dhoofinta Xogta la ururiyey waxa laga soo rogaa arjiyada iyada oo loo sii marayo dhoofiyeyaasha loona gudbiyo habab dibadda ah si loo sii habeeyo, sida qorista, la socodka, baafinta, ama nidaamka falanqaynta, iyada oo ku xidhan baahiyahaaga.
Isku-darka iyo Kaydinta Marxaladdani waxay ku lug yeelan kartaa caadi ka dhigista xogta, tayeynta macluumaad dheeraad ah, iyo isku darka xogta ilo kala duwan si loo abuuro aragti midaysan ee nidaamka nidaamka.
Aragtida Xogta Ugu dambeyntii, xogta la farsameeyay waxaa loo soo bandhigay sida dashboards ee nidaamyada sida Grafana (loogu talagalay mitirka iyo raadadka) ama Kibana (loogu talagalay). Tani waxay u oggolaanaysaa kooxaha inay si degdeg ah u qiimeeyaan caafimaadka nidaamka, aqoonsadaan arrimaha iyo isbeddellada, oo ay dejiyaan digniino ku salaysan calaamadaha la soo saaray.
Si aad codsiga ugu dhex gasho, waxaad u baahan tahay inaad ku xidho OpenTelemetry SDK ee ku habboon luuqadda barnaamijka ee la isticmaalayo ama aad shaqaalayso maktabadaha iyo qaab-dhismeedka si toos ah u taageera OpenTelemetry. OpenTelemetry waxay inta badan fulisaa is-dhexyaalka si weyn loo isticmaalo oo laga helo maktabadaha la yaqaan, taasoo u oggolaanaysa beddelka-dhisidda. Tusaale ahaan, maktabadda Micrometer-ka waxaa caadi ahaan loo isticmaalaa ururinta cabbirka ee nidaamka deegaanka Java. OpenTelemetry SDK waxay siisaa hirgelinteeda is-dhexgalyada Micrometerka, taasoo awood u siinaya dhoofinta cabbirka iyada oo aan la beddelin koodka codsiga. Intaa waxaa dheer, OpenTelemetry waxay bixisaa hirgelinta OpenTracing iyo interfaces OpenCensus, fududaynta u haajiridda fudud ee OpenTelemetry.
Nidaamyada IT-ga, OpenTelemetry waxay noqon kartaa furaha mustaqbalka dhabarka la isku halayn karo oo hufan. Qalabkani waxa uu fududeeyaa ciribtirka iyo la socodka waxa uu sidoo kale u furayaa fursadaha faham qoto dheer ee waxqabadka codsiga iyo hagaajinta heer cusub. Ku biir bulshada OpenTelemetry si ay gacan uga geysato qaabaynta mustaqbalka halkaas oo horumarka dhabarku ka fudud yahay oo waxtar badan yahay!