paint-brush
OpenTelemetry ke eng le gore e ka kaonafatša bjang Boleng bja gago bja Backend? ka@ymatigoosa
39,155 dipuku tša go balwa
39,155 dipuku tša go balwa

OpenTelemetry ke eng le gore e ka kaonafatša bjang Boleng bja gago bja Backend?

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

Nako e telele kudu; Go bala

OpenTelemetry ke sedirišwa se maatla sa go hlokomela le go lokiša diphošo tša ditshepedišo tša sebjalebjale tša morago. E kopanya go latišiša, go rema dihlare, le kgoboketšo ya dimetriki, e fa pono ye e kopanego ya tshepedišo ya tirišo le go botega. Tlhahlo ye e hlahloba histori ya yona, dikgopolo tše bohlokwa, le phethagatšo, e dira gore e be bohlokwa bakeng sa go dira gore di-microservice le ditshepedišo tše di phatlalatšwago di šome gabotse.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - OpenTelemetry ke eng le gore e ka kaonafatša bjang Boleng bja gago bja Backend?
Dmitrii Pakhomov HackerNoon profile picture
0-item

Nakong e fetilego, ge re be re bolela ka backend, gantši re be re šupa tirišo e tee e kgolo yeo e nago le polokelo ya tshedimošo e tee, e kgolo, gomme go rema dihlare go be go lekane bakeng sa go bea leihlo. Bjale, ka lebaka la theknolotši ya go swana le Kubernetes , microservices e fetogile tekanyetšo. Ditirišo di ntši kudu e bile di phatlalatšwa, gomme go rema dihlare ga setšo ga go sa lekana bakeng sa go lokiša diphošo le go hlahloba mathata ka dikgopelong tša rena.

Tharollo e botse kudu ya go rulaganya go hlokomela ke OpenTelemetry — sedirišwa sa sebjalebjale seo se ka šomišwago go lokiša diphošo le tshekatsheko ya tshepedišo ya ditshepedišo tše di phatlalatšwago.


Sehlogo se se reretšwe ditsebi tša IT tšeo di nyakago go katološa tsebo ya tšona ka go optimisation ya backend. Ka fase, re tla hlaloša ka botlalo gore OpenTelemetry ke eng, dikgopolo tša yona tše bohlokwa, le mathata ao e thušago go a rarolla. Ge e ba o na le kgahlego ya kamoo OpenTelemetry e ka fetošago mokgwa wa gago wa go hlokomela le go lokiša diphošo ditshepedišo tša morago, go godiša go botega ga tšona le bokgoni — bala go ya pele.


Histori e Khutshwane ya OpenTelemetry

Dikhamphani tše kgolo tša theknolotši di ile tša thoma go lebeletšana le tlhohlo ya go rema dihlare ka go phatlalatšwa le go latišiša mafelelong a bo-2000. Ka 2010, Google e phatlaladitše pampiri, . Dapper, Mananeokgoparara a go Latela Ditshepedišo tše di Abago ka Tekanyo ye Kgolo , yeo e beilego motheo wa sedirišwa sa go latišiša sa Twitter, Zipkin, seo se lokolotšwego ka 2012.


Ka 2014, Kubernetes e ile ya tšwelela, ya nolofatša kudu tlhabollo ya microservices le ditshepedišo tše dingwe tšeo di phatlalatšwago ka leru. Se se ile sa lebiša go dikhamphani tše ntši go kopana le ditaba tša go rema dihlare tše di phatlalatšwago le go latišiša ka go di-microservice. Go beakanya maemo a go latišiša mo go phatlalatšwago, tekanyetšo ya OpenTracing, yeo e amogetšwego ke CNCF, le projeke ya Google ya OpenCensus e hlotšwe.


Ka 2019, diprotšeke tša OpenTracing le OpenCensus di tsebišitše ka kopanyo ka fase ga leina la OpenTelemetry. Sefala se se kopanya mekgwa ye mekaone yeo e kgobokeditšwego mengwageng ye mentši, go dumelela kopanyo ye e se nago mathata ya go latišiša, go rema dihlare, le dimetriki ka tshepedišong efe goba efe, go sa šetšwe go raragana ga tšona.


Lehono, OpenTelemetry ga se projeke fela; ke tekanyetšo ya intasteri ya go kgoboketša le go fetišetša datha ya telemetry. E hlamilwe le go thekgwa ke setšhaba sa ditsebi le dikhamphani tše di etilego pele mmarakeng tša go swana le Google le Microsoft. Protšeke e tšwela pele go tšwelela, e hwetša bokgoni bjo bofsa bja go nolofatša tshepedišo ya kopanyo le tšhomišo.


Ke Eng Seo se lego Ka Gare?

OpenTelemetry ke sete ye e feletšego ya mekgwa le didirišwa tšeo di hlalošago gore ke matshwao afe ao tirišo e ka a tšweletšago go dirišana le lefase la ka ntle, le gore matshwao a a ka kgoboketšwa bjang le go bonwa ka leihlo la kgopolo go hlokomela seemo sa dikgopelo le tshepedišo ka kakaretšo. Mehuta ye meraro ye megolo ya matshwao ke go latišiša, go rema dihlare , le kgoboketšo ya dimetriki .


**A re lebelele karolo ye nngwe le ye nngwe ka kelohloko: \

Diteng

OpenTelemetry e tsebagatša kgopolo ya diteng tša tshepedišo. Seemo se akaretša kudu dika tša go swana le `trace_id` (sešupo sa tshepedišo ya bjale) le `span_id` (sešupo sa kgopelo ya ka fasana, ka go leka gape gape ga kgopelo ye nnyane yeo e nago le `span_id` ye e kgethegilego ).


Go tlaleletša, seemo se ka ba le tshedimošo ya go se fetoge, go swana le leina la noutu moo tirišo e phatlalatšwago gona goba leina la tikologo (prod/qa). Mabala a, a tsebjago bjalo ka methopo ka go mareo a OpenTelemetry, a kgomareditšwe go log ye nngwe le ye nngwe, metric, goba trace bakeng sa go tsoma gabonolo. Diteng di ka akaretša gape ya data ye e fetogago, go swana le sešupo sa ntlha ya mafelelo ya bjale ( `http_path: "GET /user/:id/info"` ), yeo e ka kgomaretšwago ka go kgetha go dihlopha tša dilog, dimetriki, goba mehlala.


Diteng ta OpenTelemetry di ka fetišwa magareng ga ditirišo tše di fapanego ka go šomiša diprothokhole tša phatlalatšo ya seemo. Diprothokhole tše di na le disete tša dihlogo tšeo di okeletšwago go kgopelo ye nngwe le ye nngwe ya HTTP goba gRPC goba dihlogo tša melaetša ya methaladi. Se se dumelela ditirišo tša ka tlase go aga lefsa seemo sa tshepedišo go tšwa go dihlogo tše.


Mehlala ye mengwe ya phatlalatšo ya seemo še:

  1. B3-Propagation Ye ke sete ya dihlogo ( x-b3-* ) tšeo di hlamilwego mathomong bakeng sa tshepedišo ya go latišiša ya Zipkin. E ile ya fetošetšwa go OpenTracing gomme ya šomišwa ke didirišwa tše ntši le makgobapuku. B3-Propagation e rwala trace_id / span_id le folaga yeo e bontšhago ge e ba go tšea mehlala go a nyakega.


  2. W3C Trace Context E hlamilwe ke sehlopha sa mošomo sa W3C, maemo a a kopanya mekgwa ye e fapanego ya phatlalatšo ya seemo go ba maemo a tee gomme ke ya go se fetoge go OpenTelemetry. Mohlala o mobotse wa go diriša maemo a ke go latela phethagatšo ya kgopelo yeo e fetago ka di-microservice tšeo di phethagaditšwego ka theknolotši ye e fapanego ntle le go bea leihlo le go lokiša diphošo kotsing.

Go latišiša

Go latišiša ke tshepedišo ya go rekota gomme ka morago ga moo go bona ka leihlo la kgopolo lenaneo la nako la tsela ya kgopelo ka di-microservice tše dintši.


[mohlodi wa seswantšho: https://opentelemetry.io/docs/demo/ditshwantšho tša skrine/].


Ka go pono, baara ye nngwe le ye nngwe e bitšwa "span" gomme e na le "span_id" ya moswananoši . Span ya modu e bolelwa bjalo ka "latela" gomme e na le "trace_id" , yeo e šomago bjalo ka sešupo sa kgopelo ka moka.


Mohuta wo wa go bona ka leihlo la kgopolo o go dumelela go:

  • Sekaseka nako ya phethagatšo ya dikgopelo go ralala le ditshepedišo tše di fapanego le dipolokelo tša tshedimošo go šupa ditšhitišo tšeo di nyakago go lokišwa.
  • Lemoga ditshepetšo tša modikologo magareng ga ditirelo.
  • Hwetša dikgopelo tše di ipoeleditšego. Ka go šomiša datha ya go latišiša, o ka aga gape ditshekatsheko tša tlaleletšo, go swana le go hlama mmapa wa microservices goba go aba nako go ralala le ditshepedišo tše di fapanego nakong ya tshepedišo ya tshepedišo. Le ge o sa šomiše datha ya go latela go bona ka leihlo la kgopolo mela ya nako, OpenTelemetry e sa tšweletša trace_id le span_id gore di šomišwe ka go matshwao a mangwe.


Dilogs

Go sa šetšwe go bonagala ga yona e bonolo, go rema dihlare e sa dutše e le e nngwe ya didirišwa tše matla kudu tša go hlahloba mathata. OpenTelemetry e godiša go rema dihlare ka setšo ka go oketša tshedimošo ya diteng. Ka go lebanya, ge e le gore mohlala wo o šomago o gona, dika tša `trace_id` le `span_id` di okeletšwa ka go iketla go dilog, di di kgokaganya le lenaneo la nako la go latela. Go feta fao, dika tša log di ka akaretša tshedimošo ye e sa fetogego go tšwa go seemo sa OpenTelemetry, go swana le sešupo sa node, gammogo le tshedimošo ye e fetogago, go swana le sešupo sa bjale sa ntlha ya mafelelo ya HTTP (`http_path: "GET /user/:id"`).


Ka go šomiša `trace_id`, o ka hwetša dilog go tšwa go di-microservice ka moka tšeo di amanago le kgopelo ya bjale, mola `span_id` e go dumelela go fapantšha magareng ga dikgopelo tše nnyane. Mohlala, tabeng ya go leka gape, dilog go tšwa maitekong a go fapana di tla ba le `span_id`s tše di fapanego. Go šomiša ditšhupo tše go kgontšha tshekatsheko ya ka pela ya boitshwaro bja tshepedišo ka moka ka nako ya nnete, go akgofiša tlhahlobo ya mathata le go godiša go tsepama le go botega.


Dimetriki tša

Kgoboketšo ya dimetriki e fa datha ya boleng ka ga tshepedišo ya tshepedišo, go swana le go khutša, ditekanyo tša phošo, tšhomišo ya methopo, le tše dingwe. Go hlokomela ka nako ya nnete ga dimetriki go go dumelela go arabela ka pela diphetogo tša tshepedišo, go thibela go palelwa le go lapa ga methopo, le go netefatša go hwetšagala ga godimo le go tshepagala ga tirišo go badiriši.


Kopanyo le polokelo ya metric le ditshepedišo tša go bona ka leihlo la kgopolo go swana le Prometheus le Grafana e dira gore go be bonolo go bona ya data ye ka leihlo la kgopolo, e nolofatša kudu go bea leihlo.


[mohlodi-setšoantšo: https://grafana.com/blog/2021/06/22/grafana-dashboard-pontšo-pono-bakeng sa-prometheus-gae-tšhomišo-matla-github-le-go feta/].


Bakgoboketši ba Metric

Bakgoboketši ba metric ba OpenTelemetry ba sepelelana le maemo a Prometheus le OpenMetrics, go kgontšha phetogo ye bonolo go ditharollo tša OpenTelemetry ntle le diphetogo tše bohlokwa. SDK ya OpenTelemetry e dumelela mehlala ya trace_id go romelwa ntle gotee le dimetriki, go dira gore go kgonege go tswalanya dimetriki le mehlala ya log le mehlala.


Kamano ya Letshwao

Mmogo, dilog, dimetriki, le go latišiša di hlola pono ye e feletšego ya seemo sa tshepedišo:

  • Dilog di fa tshedimošo ka ga ditiragalo tša tshepedišo, go dumelela go hlaolwa ka pela le tharollo ya diphošo.
  • Dimetriki di laetša ditšhupetšo tša tshepedišo ya boleng le ya boleng bja tshepedišo, go swana le dinako tša karabelo goba ditekanyo tša phošo.
  • Go latišiša go tlaleletša pono ye ka go bontšha tsela ya phethagatšo ya kgopelo ka dikarolo tše di fapafapanego tša tshepedišo, go thuša go kwešiša dikamano tša tšona. Kamano ye e kwagalago magareng ga dilog, mehlala, le dimetriki ke tšobotsi ye e hlaolago ya OpenTelemetry. Ka mohlala, Grafana e dumelela badiriši go bona dimetriki tša go latela le tša kgopelo tše di swanetšego ge ba lebelela log, e godiša kudu go šomišega le bokgoni bja sefala.



[mohlodi-setšoantšo: https://grafana.com/blog/2020/03/31/kamoo-ho-ka-katlego-go tswalanya-dilog-le-metriki-ka-grafana/].


Go tlaleletša go dikarolo tše tharo tša motheo, OpenTelemetry e akaretša dikgopolo tša Sampling, Baggage, le taolo ya seemo sa tshepedišo.


Go tšea mehlala

Ka ditshepedišong tša mošomo wo mogolo, bophagamo bja dilog le mehlala e ba ye kgolo kudu, e nyaka methopo ye megolo ya mananeokgoparara le polokelo ya datha. Go rarolla taba ye, maemo a OpenTelemetry a akaretša go tšea mehlala ya leswao — bokgoni bja go romela ntle fela karolo ya mehlala le dilog. Go fa mohlala, o ka romelantle ditšhupetšo tše di tletšego go tšwa go phesente ya dikgopelo, dikgopelo tša nako ye telele, goba dikgopelo tša phošo. Mokgwa wo o dumelela go tšea mehlala ka mo go lekanego go aga dipalopalo mola o boloka methopo ye bohlokwa.


Le ge go le bjalo, ge tshepedišo ye nngwe le ye nngwe e tšea sephetho ka go ikemela gore ke dikgopelo dife tšeo e swanetšego go hlokomelwa ka botlalo, re feleletša re na le pono ye e aroganego ya kgopelo ye nngwe le ye nngwe. Ditshepedišo tše dingwe di ka romela ntle datha ye e tletšego mola tše dingwe di ka romela ntle ka karolo fela goba tša se romele ntle le gatee.


Go rarolla bothata bjo, mekgwa ya phatlalatšo ya seemo ya OpenTelemetry e fetišetša folaga ya go tšea mehlala gotee le `trace_id`/`span_id`. Se se netefatša gore ge tirelo ya mathomo yeo e amogelago kgopelo ya modiriši e tšea sephetho sa gore kgopelo e swanetše go hlokomelwa ka botlalo, ditshepedišo tše dingwe ka moka di tla latela mohlala. Go sego bjalo, ditshepedišo ka moka di swanetše go romela ntle ka karolo goba go se romele matshwao go boloka methopo. Mokgwa wo o bitšwa "Hlogo ya go tšea mehlala" — sephetho seo se tšerwego mathomong a tshepedišo ya kgopelo, e ka ba ka go se kgethe goba yeo e theilwego godimo ga dika tše dingwe tša tsenyo.


Ntle le moo, OpenTelemetry e thekga "Tail Sampling," moo dikgopelo ka moka di dulago di romela ntle matshwao ka moka ka botlalo, eupša buffer ya magareng e gona. Ka morago ga go kgoboketša datha ka moka, buffer ye e tšea sephetho sa ge e ba e tla boloka datha ka botlalo goba e boloke sampole ye e sego ya felela fela. Mokgwa wo o dumelela sampole ye e emelago kudu ya legoro le lengwe le le lengwe la kgopelo (le atlegilego/e telele/phošo) eupša o nyaka peakanyo ya mananeokgoparara a tlaleletšo.


Merwalo ya go rwala merwalo

Mokgwa wa Merwalo o dumelela dipara tša boleng bja senotlelo tša boithatelo go fetišetšwa gotee le trace_id / span_id , e feta ka go iketla magareng ga di-microservice ka moka nakong ya tshepedišo ya kgopelo. Se se na le mohola bakeng sa go fetišetša tshedimošo ya tlaleletšo yeo e nyakegago tseleng ka moka ya kgopelo—go swana le tshedimošo ya modiriši goba dipeakanyo tša tikologo ya nako ya go šoma.

Mohlala wa hlogo ya go fetišetša merwalo go ya ka maemo a W3C: tracestate: rojo=00f067aa0ba902b7,congo=t61rcWkgMzE,userId=1c30032v5

Mehlala ye mengwe ya tšhomišo ya Merwalo ke ye:

  • Go fetiša Tshedimošo ya Seemo sa Kgwebo ya go swana le userId , productId , goba deviceId e ka fetišwa ka di-microservice ka moka. Ditirišo di ka tsenya tshedimošo ye ka go iketla, tša dumelela go nyaka go loga ka seemo sa mosediriši bakeng sa kgopelo ya mathomo.

  • Ditekanyetšo tša Peakanyo tše di Itšego Dipeakanyo tša di-SDK goba mananeokgoparara.

  • Difolaga tša Tsela Difolaga tšeo di thušago di-load balancer go tšea diphetho tša tsela. Nakong ya teko, dikgopelo tše dingwe di ka swanelwa ke go sepetšwa go di-backend tša bofora. Ka ge merwalo e fetišetšwa ka go itiragalela ka ditirelo ka moka, ga go nyakege gore o bope diprothokhole tše oketšegilego—e no hloma molao go sedirišwa sa go lekalekanya mošomo.


Hlokomela gore le ge khuetšo ya tshepedišo ya Merwalo e le ye nnyane, tšhomišo ye e feteletšego e ka oketša kudu morwalo wa netweke le tirelo. Kgetha ka kelohloko gore ke ya data efe yeo o tlogago o e hloka go feta ka Baggage go efoga ditaba tša tshepedišo.

Phethagatšo ya Mananeokgoparara

Go tsenya tirišong OpenTelemetry maemong a mananeokgoparara go akaretša go kopanya di-backend tša OpenTelemetry ka gare ga mohlwaela wa tirišo le go beakanya mananeokgoparara bakeng sa kgoboketšo ya datha.


Tshepetšo e na le magato a mane:


  1. Kopanyo ya Tirišo Mo kgatong ya mathomo, di-SDK tša OpenTelemetry di kopantšwe thwii ka gare ga dikgopelo go kgoboketša dimetriki, dilog, le mehlala, go netefatša go elela mo go tšwelago pele ga datha mabapi le tshepedišo ya karolo ye nngwe le ye nngwe ya tshepedišo.


  2. Go beakanya Baromelantle Datha ye e kgobokeditšwego e sepetšwa go tšwa go dikgopelo ka baromelantle go ya go ditshepedišo tša ka ntle bakeng sa tshepedišo ye nngwe, go swana le go rema, go hlokomela, go latišiša, goba ditshepedišo tša ditshekatsheko, go ya ka dinyakwa tša gago.


  3. Kgoboketšo le Polokelo Mogato wo o ka akaretša go tlwaetša datha, go e humiša ka tshedimošo ya tlaleletšo, le go kopanya datha go tšwa methopong ye e fapanego go hlola pono ye e kopanego ya seemo sa tshepedišo.


  4. Pono ya Datha Mafelelong, datha ye e šomišitšwego e tšweletšwa bjalo ka didashboard ka ditshepedišong tša go swana le Grafana (bakeng sa dimetriki le mehlala) goba Kibana (bakeng sa dilog). Se se dumelela dihlopha go hlahloba ka pela bophelo bjo bobotse bja tshepedišo, go šupa ditaba le ditshekamelo, le go hloma ditemošo tšeo di theilwego godimo ga matshwao ao a tšweleditšwego.


Phethagatšo ya Kgopelo

Go kopanya le tirišo, o swanetše go kgokaganya SDK ya maleba ya OpenTelemetry ya leleme la mananeo leo le šomišwago goba o thwele makgobapuku le ditlhako tšeo di thekgago OpenTelemetry thwii. OpenTelemetry gantši e phethagatša didirišwa tša go dirišana tšeo di šomišwago kudu go tšwa makgobapukung ao a tsebjago, e dumelela go tšeelwa legato ga go lahlela ka gare. Go fa mohlala, bokgobapuku bja Micrometer bo šomišwa ka tlwaelo bakeng sa kgoboketšo ya dimetriki ka go tshepedišo ya tswalano ya diphedi le tikologo ya tšona ya Java. SDK ya OpenTelemetry e fana ka diphethagatšo tša yona tša didirišwa tša go dirišana tša Micrometer, e kgontšha thomelontle ya metric ntle le go fetoša khoutu ye kgolo ya tirišo. Go feta fao, OpenTelemetry e fana ka diphethagatšo tša didirišwa tša kgale tša OpenTracing le OpenCensus, e nolofatša go huduga ka thelelo go OpenTelemetry.

Mafetšo

Ka ditshepedišong tša IT, OpenTelemetry e ka ba senotlelo sa bokamoso bja di-backend tše di ka botwago le tše di šomago gabotse. Sedirišwa se se nolofatša go lokiša diphošo le go hlokomela gomme gape se bula menyetla ya kwešišo ye e tseneletšego ya tshepedišo ya tirišo le go dira gore e šome gabotse maemong a maswa. Eba le setšhaba sa OpenTelemetry go thuša go bopa bokamoso moo tlhabollo ya morago e lego bonolo ebile e šomago kudu!