paint-brush
Xana OpenTelemetry I Yini Naswona Yi Nga Antswisa Njhani Khwalithi Ya Wena Ya Backend? hi@ymatigoosa
39,155 ku hlayiwa
39,155 ku hlayiwa

Xana OpenTelemetry I Yini Naswona Yi Nga Antswisa Njhani Khwalithi Ya Wena Ya Backend?

hi Dmitrii Pakhomov8m2024/06/19
Read on Terminal Reader
Read this story w/o Javascript

Ku leha ngopfu; Ku hlaya

OpenTelemetry i xitirhisiwa xa matimba xo langutisisa na ku lulamisa swihoxo swa tisisiteme ta le ndzhaku ta manguva lawa. Yi hlanganisa ku landzelerisa, ku loga, na nhlengeleto wa timetriki, ku nyika xivono lexi hlanganeke xa matirhelo ya xitirhisiwa na ku tshembheka. Nkongomiso lowu wu lavisisa matimu ya wona, miehleketo ya nkoka, na ku tirhisiwa, leswi endlaka leswaku wu va wa nkoka eka ku antswisa ti microservices na tisisiteme leti hangalasiweke.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Xana OpenTelemetry I Yini Naswona Yi Nga Antswisa Njhani Khwalithi Ya Wena Ya Backend?
Dmitrii Pakhomov HackerNoon profile picture
0-item

Khale, loko hi vulavula hi backend, hi ntolovelo a hi kombetela eka xitirhisiwa xin’we lexikulu lexi nga na database yin’we, leyikulu, naswona ku loga a swi ringanerile ku veka tihlo. Sweswi, hikwalaho ka thekinoloji yo fana na Kubernetes , ti microservices ti hundzuke mpimanyeto. Switirhisiwa swi tele ngopfu naswona swi hangalakile, naswona ku loga ka ndhavuko a ka ha enelanga ku lulamisa swihoxo na ku kambela swiphiqo eka switirhisiwa swa hina.

Ntlhantlho wa kahle swinene wo hlela vulawuri i OpenTelemetry — xitirhisiwa xa manguva lawa lexi nga tirhisiwaka ku lulamisa swihoxo na nxopaxopo wa matirhelo ya tisisiteme leti hangalasiweke.


Xihloko lexi xi kongomisiwile eka vatirhi va IT lava lavaka ku ndlandlamuxa vutivi bya vona eka ku antswisiwa ka backend. Laha hansi, hi ta hlamusela hi vuxokoxoko leswaku OpenTelemetry i yini, miehleketo ya yona ya nkoka, na swiphiqo leswi yi pfunetaka ku swi tlhantlha. Loko u tsakela leswaku OpenTelemetry yi nga cinca njhani endlelo ra wena ro veka tihlo na ku lulamisa swihoxo eka tisisiteme ta le ndzhaku, ku ndlandlamuxa ku tshembheka na ku tirha kahle ka tona — hlaya emahlweni.


Matimu yo Koma ya OpenTelemetry

Tikhamphani letikulu ta thekinoloji tisungule ku langutana na ntlhontlho wa ku tsema mirhi loku hangalasiweke na ku landzelerisa eku heleni ka malembe yava 2000s. Hi 2010, Google yi humese phepha, . Dapper, Xitirhisiwa Lexikulu xo Landzelerisa Tisisiteme leti hangalasiweke , leyi vekeke masungulo ya xitirhisiwa xo landzelerisa xa Twitter, Zipkin, lexi humesiweke hi 2012.


Hi 2014, Kubernetes yi humelerile, yi olovisa swinene nhluvukiso wa ti microservices na tisisiteme tin’wana leti hangalasiweke hi le mapapa. Leswi swi endle leswaku tikhamphani to tala ti hlangana na timhaka ta ku tsema mirhi loku hangalasiweke na ku landzelerisa eka ti microservices. Ku ringanisa ku landzelerisa loku hangalasiweke, mpimanyeto wa OpenTracing, lowu amukeriweke hi CNCF, na phurojeke ya OpenCensus ya Google swi tumbuluxiwile.


Hi 2019, tiphurojeke ta OpenTracing na OpenCensus ti tivise ku hlanganisiwa ehansi ka vito ra OpenTelemetry. Pulatifomo leyi yi hlanganisa maendlelo lamanene lama hlengeletiweke eka malembe yo tala, ku pfumelela ku hlanganisiwa loku nga na swiphiqo ka ku landzelerisa, ku loga, na timetriki eka sisiteme yihi kumbe yihi, ku nga langutiwi ku rharhangana ka swona.


Namuntlha, OpenTelemetry a hi phurojeke ntsena; i mpimanyeto wa indasitiri wo hlengeleta na ku hundzisela datha ya telemetry. Yi tumbuluxiwile no seketeriwa hi ntlawa wa vativi na tikhamphani leti rhangelaka makete to fana na Google na Microsoft. Phurojeke yi ya emahlweni yi hluvuka, yi kuma vuswikoti byintshwa ku olovisa endlelo ro hlanganisa na ku tirhisa.


I Yini Lexi Nga Endzeni?

OpenTelemetry i sete leyi heleleke ya maendlelo na switirhisiwa leswi hlamuselaka leswaku i swikombiso swihi leswi xitirhisiwa xi nga swi tumbuluxaka ku tirhisana na misava ya le handle, na ndlela leyi swikombiso leswi swi nga hlengeletiwaka ha yona no voniwa hi mahlo ya mianakanyo ku langutisisa xiyimo xa switirhisiwa na sisiteme hi ku angarhela. Tinxaka tinharhu letikulu ta swikombiso i ku landzelerisa, ku tsema mirhi , na nhlengeleto wa timetriki .


**A hi langutiseni hi vukheta xiphemu xin'wana na xin'wana: \

Swiyimo swa xiyimo

OpenTelemetry yi nghenisa mhaka ya swiyimo swa ntirho. Mongo ngopfungopfu wu katsa swihlawulekisi swo fana na `trace_id` (xihlawulekisi xa ntirho wa sweswi) na `span_id` (xihlawulekisi xa xikombelo lexitsongo, laha ku ringeta nakambe kun’wana na kun’wana ka xikombelo lexitsongo ku nga na `span_id` yo hlawuleka ).


Ku engetela kwalaho, mongo wu nga va na vuxokoxoko lebyi nga cinciki, ku fana na vito ra node laha xitirhisiwa xi tirhisiwaka kona kumbe vito ra ndhawu (prod/qa). Tinsimu leti, leti tivekaka tanihi switirhisiwa eka theminoloji ya OpenTelemetry, ti namarhetiwa eka log yin’wana na yin’wana, metric, kumbe trace ku olova ku lavisisa. Swiyimo swi nga tlhela swi katsa datha leyi cinca-cincaka, ku fana na xihlawulekisi xa ndhawu yo hetelela ya sweswi ( `http_path: "GET /user/:id/info"` ), leyi nga namarhetiwa hi ku hlawula eka mintlawa ya tilogi, timetriki, kumbe ku landzelerisa.


Swiyimo swa OpenTelemetry swi nga hundziseriwa exikarhi ka switirhisiwa swo hambana hi ku tirhisa tiphrothokholi ta ku hangalasiwa ka xiyimo. Tiphurotokholo leti ti vumbiwa hi tisethi ta tinhlokomhaka leti engeteriwaka eka xikombelo xin’wana na xin’wana xa HTTP kumbe gRPC kumbe tinhloko ta marungula ya milayeni. Leswi swi pfumelela switirhisiwa swa le hansi ku pfuxeta xiyimo xa ntirho ku suka eka tinhlokomhaka leti.


Hi leswi swikombiso swin’wana swa ku hangalasiwa ka mongo:

  1. B3-Propagation Leyi i sete ya tinhlokomhaka ( x-b3-* ) leti ekusunguleni ti endleriweke sisiteme ya ku landzelerisa ya Zipkin. Yi cinciwile yi va OpenTracing naswona yi tirhisiwile hi switirhisiwa swo tala na tilayiburari. B3-Ku hangalasiwa ku rhwala trace_id / span_id na mujeko lowu kombisaka loko ku tekeriwa swikombiso swi laveka.


  2. W3C Trace Context Yi tumbuluxiwile hi ntlawa wa ntirho wa W3C, mpimanyeto lowu wu hlanganisa maendlelo yo hambana ya ku hangalasiwa ka mongo eka mpimanyeto wun’we naswona i ya xiviri eka OpenTelemetry. Xikombiso lexinene xo tirhisa swipimelo leswi i ku landzelerisa ku hetisisiwa ka xikombelo lexi hundzaka eka ti microservices leti tirhisiweke hi thekinoloji yo hambana handle ko kavanyeta ku vekiwa tihlo na ku pakanisa ka ku lulamisa swihoxo.

Ku landzelerisa

Ku landzelerisa i endlelo ro rhekhoda na ku landzela ku vona hi mahlo ya mianakanyo nkarhi wa ndlela ya xikombelo hi ku tirhisa ti microservices to tala.


[xihlovo xa xifaniso: https://opentelemetry.io/docs/demo/swifaniso swa xikirini/].


Eka ku vonakala, bar yin'wana na yin'wana yi vuriwa "span" naswona yi na "span_id" yo hlawuleka . Xiphemu xa timitsu xi vuriwa "trace" naswona xi na "trace_id" , leyi tirhaka tanihi xihlawulekisi xa xikombelo hinkwaxo.


Muxaka lowu wa ku vona swilo hi mahlo ya mianakanyo wu ku pfumelela ku:

  • Nxopaxopo nkarhi wa ku hetisisiwa ka swikombelo eka tisisiteme to hambana na tidathabeyisi ku kuma swiphiqo leswi lavaka ku antswisiwa.
  • Kuma ku titshega ka xirhendzevutani exikarhi ka vukorhokeri.
  • Kuma swikombelo leswi phindhiweke. Hi ku tirhisa datha yo landzelerisa, u nga ha tlhela u aka vuxopaxopi byo engetela, ku fana na ku tumbuluxa mepe wa ti microservices kumbe ku hangalasa nkarhi eka tisisiteme to hambana hi nkarhi wa ku lulamisiwa ka ntirho. Hambi loko u nga tirhisi datha ya ku landzelerisa ku vona milayeni ya nkarhi, OpenTelemetry ya ha tumbuluxa trace_id na span_id ku tirhisiwa eka swikombiso swin’wana.


Swilo leswi nga ni swiphepherhele

Hambileswi swi vonakaka swi olova, ku tsema mirhi ku tshama ku ri xin’wana xa switirho swa matimba swinene swo kambela swiphiqo. OpenTelemetry yi ndlandlamuxa ku loga ka ndhavuko hi ku engetela vuxokoxoko bya xiyimo. Hi ku kongoma, loko ku ri na ku landzelerisa loku tirhaka, swihlawulekisi swa `trace_id` na `span_id` swi engeteriwa hi ku tisungulela eka tilog, ku swi hlanganisa na nkarhi wa ku landzelerisa. Ku tlula kwalaho, swihlawulekisi swa log swi nga katsa vuxokoxoko lebyi nga cinciki ku suka eka xiyimo xa OpenTelemetry, ku fana na xihlawulekisi xa node, xikan’we na vuxokoxoko lebyi cinca-cincaka, ku fana na xihlawulekisi xa makumu xa HTTP xa sweswi (`http_path: "GET /user/:id"`).


Hi ku tirhisa `trace_id`, u nga kuma tilog ku suka eka ti microservices hinkwato leti fambelanaka na xikombelo xa sweswi, kasi `span_id` yi ku pfumelela ku hambanyisa exikarhi ka swikombelo leswitsongo. Xikombiso, eka xiyimo xa ku ringeta nakambe, tilog ku suka eka matshalatshala yo hambana ti ta va na `span_id`s yo hambana. Ku tirhisa swihlawulekisi leswi swi endla leswaku ku va na nxopaxopo wa xihatla wa mahanyelo ya sisiteme hinkwayo hi nkarhi wa xiviri, ku hatlisisa ku kamberiwa ka swiphiqo na ku ndlandlamuxa ku tshamiseka na ku tshembheka.


Timetriki

Nhlengeleto wa timetriki wu nyika datha ya nhlayo eka matirhelo ya sisiteme, ku fana na ku hlwela, mimpimo ya swihoxo, matirhiselo ya switirhisiwa, na swin’wana. Ku vekiwa tihlo ka nkarhi wa xiviri ka timetriki swi ku pfumelela ku hlamula hi ku hatlisa eka ku cinca ka matirhelo, ku sivela ku tsandzeka na ku karhala ka switirhisiwa, na ku tiyisisa ku kumeka ka le henhla na ku tshembheka ka xitirhisiwa eka vatirhisi.


Ku hlanganisiwa na vuhlayiselo bya metric na tisisiteme ta ku vona ku fana na Prometheus na Grafana swi endla leswaku swi olova ku vona datha leyi hi mahlo ya mianakanyo, leswi olovisaka swinene ku vekiwa tihlo.


[xihlovo-xihlovo-xihlovo: https://grafana.com/blog/2021/06/22/swivono-swikombisa-swivono-swa-ku-kombisa-deshboard-ya-grafana-eka-prometheus-ku-tirhisa-energy-ekaya-github-na-swin’wana/].


Vahlengeleti va Metric

Vahlengeleti va metric va OpenTelemetry va fambisana na swiyimo swa Prometheus na OpenMetrics, leswi endlaka leswaku ku va na ku cinca ko olova eka swintshuxo swa OpenTelemetry handle ka ku cinca lokukulu. OpenTelemetry SDK yi pfumelela swikombiso swa trace_id ku rhumeriwa ehandle xikan’we na timetriki, leswi endlaka leswaku swi koteka ku fambelanisa timetriki na swikombiso swa log na ti traces.


Ntwanano wa Swikombiso

Loko swi hlanganisiwa, tilog, timetriki, na ku landzelerisa swi tumbuluxa xivono lexi heleleke xa xiyimo xa sisiteme:

  • Tilog ti nyika vuxokoxoko mayelana na swiendlakalo swa sisiteme, leswi pfumelelaka ku hatlisa ku tiviwa na ku lulamisiwa ka swihoxo.
  • Timetriki ti kombisa swikombiso swa matirhelo ya xiyimo na nhlayo ya sisiteme, ku fana na minkarhi yo hlamula kumbe mimpimo ya swihoxo.
  • Ku landzelerisa ku tatisa vonelo leri hi ku kombisa ndlela ya ku hetisisiwa ka swikombelo hi ku tirhisa swiphemu swo hambana swa sisiteme, ku pfuneta ku twisisa vuxaka bya swona. Ku yelana loku nga erivaleni exikarhi ka tilog, ti traces, na timetriki i xivumbeko xo hlawuleka xa OpenTelemetry. Xikombiso, Grafana yi pfumelela vatirhisi ku vona timetriki ta ku landzelerisa na ku kombela leti fambelanaka loko va languta log, leswi ndlandlamuxaka swinene ku tirhiseka na ku tirha kahle ka pulatifomo.



[xihlovo-xihlovo-xifaniso: https://grafana.com/blog/2020/03/31/ndlela-yo-hi-ku-humelela-ku-hlanganisa-ti-log-na-ti-trace-ti-metrics-hi-ku-humelela/].


Ku engetela eka swiphemu swinharhu swa nkoka, OpenTelemetry yi katsa miehleketo ya Sampling, Baggage, na vulawuri bya xiyimo xa matirhelo.


Ku tekeriwa swikombiso

Eka tisisiteme ta ndzhwalo lowukulu, vholumo ya ti logs na ti traces yiva yikulu swinene, leswi lavaka switirhisiwa leswikulu swa switirhisiwa na vuhlayiselo bya data. Ku lulamisa mhaka leyi, swipimelo swa OpenTelemetry swi katsa ku tekeriwa swikombiso swa swikombiso — vuswikoti byo rhumela ehandle ntsena xiphemu xa swilandzelerisi na swiviko. Xikombiso, u nga rhumela ehandle swikombiso swa vuxokoxoko ku suka eka phesente ya swikombelo, swikombelo leswi tekeke nkarhi wo leha, kumbe swikombelo swa swihoxo. Endlelo leri ri pfumelela ku tekeriwa swikombiso leswi eneleke ku aka tinhlayo loko ku ri karhi ku hlayisiwa switirhisiwa swa nkoka.


Kambe loko sisiteme yin’wana na yin’wana yi tiyimela hi yoxe yi teka xiboho xa leswaku hi swihi swikombelo leswi yi faneleke ku langutisisa hi vuxokoxoko, hi hetelela hi ri na langutelo leri avaneke ra xikombelo xin’wana na xin’wana. Tisisiteme tin’wana ti nga ha rhumela datha ya vuxokoxoko kasi tin’wana ti nga ha rhumela ehandle ntsena hi xiphemu kumbe ti nga rhumeli ehandle nikatsongo.


Ku tlhantlha xiphiqo lexi, tindlela ta ku hangalasa mongo ta OpenTelemetry ti hundzisela mujeko wa xikombiso xikan’we na `trace_id`/`span_id`. Leswi swi tiyisisa leswaku loko vukorhokeri byo sungula lebyi amukelaka xikombelo xa mutirhisi byi teka xiboho xa leswaku xikombelo xi fanele ku vekiwa tihlo hi vuxokoxoko, tisisiteme tin’wana hinkwato ti ta landzelela. Handle ka sweswo, tisisiteme hinkwato ti fanele ku rhumela swikombiso hi xiphemu kumbe ku nga ri ku rhumela ehandle ku hlayisa switirhisiwa. Endlelo leri ri vuriwa "Head Sampling" — xiboho lexi tekiwaka eku sunguleni ka ku lulamisiwa ka swikombelo, hi ku landzelelana kumbe hi ku ya hi swihlawulekisi swin'wana swa ku nghenisa.


Handle ka sweswo, OpenTelemetry yi seketela "Tail Sampling," laha switirhisiwa hinkwaswo swi tshamaka swi rhumela swikombiso hinkwaswo hi vuxokoxoko, kambe buffer ya le xikarhi yi kona. Endzhaku ko hlengeleta datha hinkwayo, buffer leyi yi teka xiboho xa loko yi ta hlayisa datha leyi heleleke kumbe yi hlayisa xikombiso xa xiphemu ntsena. Ndlela leyi yi pfumelela xikombiso lexi yimelaka ngopfu xa xiyenge xin’wana na xin’wana xa xikombelo (xi humelerile/xo leha/xihoxo) kambe xi lava ku lulamisiwa ka switirhisiwa swo engetela.


Mindzhwalo ya mindzhwalo

Endlelo ra Baggage ri pfumelela mimpatswa ya nkoka-xilotlelo ya ku tihlawulela ku hundziseriwa xikan’we na trace_id / span_id , hi ku tisungulela yi hundza exikarhi ka ti-microservice hinkwato hi nkarhi wa ku lulamisiwa ka swikombelo. Leswi swa pfuna ku hundzisela vuxokoxoko byo engetela lebyi lavekaka eka ndlela hinkwayo ya xikombelo—ku fana na vuxokoxoko bya mutirhisi kumbe swiletelo swa ndhawu ya nkarhi wo famba.

Xikombiso xa nhlokomhaka yo hundzisela mindzhwalo hi ku ya hi mpimanyeto wa W3C: tracestate: rojo=00f067aa0ba902b7,congo=t61rcWkgMzE,userId=1c30032v5

Hi leswi swikombiso swin’wana swa matirhiselo ya Mindzhwalo:

  • Ku hundzisela Mongo wa Bindzu Vuxokoxoko byo fana na userId , productId , kumbe deviceId byi nga hundziseriwa eka ti microservices hinkwato. Switirhisiwa swi nga ha nghenisa vuxokoxoko lebyi hi ku tisungulela, leswi pfumelelaka ku lavisisa ka log hi mongo wa mutirhisi eka xikombelo xo sungula.

  • Tipharamitha to Hlawuleka ta Vukorhokeri Switirhisiwa swa ti-SDK kumbe switirhisiwa swa le makaya.

  • Mijeko ya ku Rhumela Mijeko leyi pfunaka vahlayisi va ndzhwalo ku endla swiboho swa ndlela. Hi nkarhi wa ku kamberiwa, swikombelo swin’wana swi nga ha lava ku kongomisiwa eka ti-backend ta mock. Tanihi leswi mindzhwalo yi hundziseriwaka hi ku tisungulela hi ku tirhisa vukorhokeri hinkwabyo, a swi bohi ku endla tiphrothokholi leti engetelekeke—ku veka nawu ntsena eka xitirhisiwa xo ringanisela ndzhwalo.


Xiya leswaku hambileswi vuyelo bya matirhelo ya Baggage byi nga byintsongo, ku tirhisiwa ngopfu swi nga engetela swinene ndzhwalo wa netiweke na vukorhokeri. Hlawula hi vukheta leswaku hi yihi data leyi u lavaka ku yi hundza eka Baggage hakunene ku papalata timhaka ta matirhelo.

Ku Tirhisa Switirhisiwa swa Switirhisiwa

Ku tirhisa OpenTelemetry eka xiyimo xa switirhisiwa swi katsa ku hlanganisa ti-backend ta OpenTelemetry eka xivumbeko xa xitirhisiwa na ku lulamisa switirhisiwa swa nhlengeleto wa datha.


Endlelo leri ri na switeji swa mune:


  1. Ku Hlanganisiwa ka Switirhisiwa Eka xiteji xo sungula, ti-SDK ta OpenTelemetry ti hlanganisiwa hi ku kongoma eka switirhisiwa ku hlengeleta timetriki, tilog, na ku landzelerisa, ku tiyisisa ku khuluka loku yaka emahlweni ka datha mayelana na matirhelo ya xiphemu xin’wana na xin’wana xa sisiteme.


  2. Ku lulamisa Vaxavisi va le handle Data leyi hlengeletiweke yi fambisiwa ku suka eka switirhisiwa hi ku tirhisa vaxavisi va le handle ku ya eka tisisiteme ta le handle ku ya emahlweni ti phurosesiwa, ku fana na ku loga, ku veka tihlo, ku landzelerisa, kumbe tisisiteme ta vuxopaxopi, ku ya hi swilaveko swa wena.


  3. Ku hlengeletiwa na ku hlayisa Xiyenge lexi xi nga katsa ku tolovela datha, ku yi fuwisa hi mahungu yo engetela, na ku hlanganisa datha ku suka eka swihlovo swo hambana ku tumbuluxa xivono lexi hlanganeke xa xiyimo xa sisiteme.


  4. Ku Vonakala ka Data Eku heteleleni, datha leyi phurosesiweke yi nyikeriwa tanihi tidashboard eka tisisiteme to fana na Grafana (eka metrics na ti traces) kumbe Kibana (eka ti logs). Leswi swi pfumelela swipano ku hatlisa swi kambela rihanyo ra sisiteme, ku kuma timhaka na mikhuva, na ku veka switsundzuxo leswi sekeriweke eka swikombiso leswi endliweke.


Ku Tirhisiwa ka Xikombelo

Ku hlanganisa na xitirhisiwa, u fanele ku hlanganisa OpenTelemetry SDK leyi faneleke ya ririmi ra minongonoko leri tirhisiwaka kutani u tirhisa tilayiburari na swivumbeko leswi seketelaka OpenTelemetry hi ku kongoma. OpenTelemetry yi tala ku tirhisa swihlanganisi leswi tirhisiwaka ngopfu ku suka eka tilayiburari leti tivekaka, leswi pfumelelaka ku siviwa ka drop-in. Xikombiso, layiburari ya Micrometer yi tala ku tirhisiwa eka nhlengeleto wa timetriki eka ikhosisteme ya Java. OpenTelemetry SDK yi nyika ku tirhisiwa ka yona ka swihlanganisi swa Micrometer, ku endla leswaku ku va na ku rhumeriwa ka metric handle ko cinca khodi leyikulu ya xitirhisiwa. Ku tlula kwalaho, OpenTelemetry yi nyika ku tirhisiwa ka swihlanganisi swa khale swa OpenTracing na OpenCensus, ku olovisa ku rhurhela loku rhetaka eka OpenTelemetry.

Mahetelelo

Eka tisisiteme ta IT, OpenTelemetry yi nga va xilotlelo xa vumundzuku bya ti-backend leti tshembekaka na leti tirhaka kahle. Xitirhisiwa lexi xi olovisa ku lulamisa swihoxo na ku veka tihlo naswona xi tlhela xi pfula minkarhi ya ku twisisa loku dzikeke ka matirhelo ya xitirhisiwa na ku antswisiwa eka xiyimo lexintshwa. Hlanganyela eka vaaki va OpenTelemetry ku pfuneta ku vumba vumundzuku laha nhluvukiso wa le ndzhaku wu olovaka naswona wu tirhaka swinene!