![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Taloha, rehefa niresaka momba ny backend izahay, dia matetika no niresaka momba ny fampiharana lehibe iray miaraka amin'ny tahiry tokana, lehibe, ary ampy ho an'ny fanaraha-maso. Ankehitriny, noho ny teknolojia toa an'i Kubernetes , lasa fenitra ny microservices . Betsaka kokoa ny fampiharana ary zaraina, ary tsy ampy intsony ny fandraketana an-tsoratra nentim-paharazana ho an'ny debugging sy hamantarana ny olana amin'ny fampiharanay.
Vahaolana tsara indrindra amin'ny fandaminana ny fanaraha-maso dia ny OpenTelemetry — fitaovana maoderina azo ampiasaina amin'ny debugging sy ny famakafakana ny fahombiazan'ny rafitra zaraina.
Ity lahatsoratra ity dia natao ho an'ny matihanina IT mitady hanitatra ny fahalalany amin'ny fanatsarana ny backend. Ireto ambany ireto ny antsipiriany momba ny OpenTelemetry, ny foto-kevitra fototra ary ny olana manampy azy hamaha. Raha liana ianao amin'ny fomba ahafahan'ny OpenTelemetry manova ny fomba fanaraha-maso sy ny debugging ny rafitra backend, manatsara ny fahatokisana sy ny fahombiazany - vakio.
Ny orinasan'ny teknolojia lehibe dia niatrika ny fanamby amin'ny fanaparitahana ny hazo sy ny fanaraha-maso tamin'ny faramparan'ny taona 2000. Tamin'ny taona 2010, namoaka lahatsoratra iray i Google,
Tamin'ny taona 2014, nipoitra ny Kubernetes, nanamora ny fampivoarana ny microservices sy ny rafitra hafa mizara rahona. Izany dia nitarika orinasa maro nisedra olana tamin'ny fiparitahana logging sy tracing amin'ny microservices. Mba hanara-penitra ny tracing mizara, dia noforonina ny fenitra OpenTracing, noraisin'ny CNCF, ary ny tetikasa OpenCensus an'ny Google.
Tamin'ny taona 2019, ny tetikasa OpenTracing sy OpenCensus dia nanambara ny fampivondronana amin'ny anarana OpenTelemetry. Ity sehatra ity dia manambatra ireo fomba fanao tsara indrindra voaangona nandritra ny taona maro, mamela ny fampidirana tsy misy olana amin'ny fanaraha-maso, ny firaketana ary ny metrika amin'ny rafitra rehetra, na inona na inona fahasarotana.
Ankehitriny, OpenTelemetry dia tsy tetikasa fotsiny; fenitry ny indostria izy io amin'ny fanangonana sy fandefasana angon-drakitra telemetry. Izy io dia novolavolaina sy tohanan'ny vondrom-piarahamonina manampahaizana manokana sy orinasa mitarika tsena toa an'i Google sy Microsoft. Mitohy mivoatra ny tetikasa, mahazo fahaiza-manao vaovao hanatsorana ny dingana fampidirana sy fampiasana.
OpenTelemetry dia fomba fanao sy fitaovana feno izay mamaritra ny famantarana azon'ny fampiharana iray hifaneraserana amin'ny tontolo ivelany, ary ny fomba hanangonana sy hitazana ireo famantarana ireo mba hanaraha-maso ny toetry ny fampiharana sy ny rafitra manontolo. Ny karazana famantarana telo lehibe dia ny fanaraha-maso, ny firaketana an-tsoratra ary ny fanangonana metrika .
** Andeha hojerentsika akaiky ny singa tsirairay: \
OpenTelemetry dia mampiditra ny foto-kevitra momba ny tontolon'ny asa. Ny contexte iray dia ahitana indrindra ny toetra toy ny `trace_id`
(famantarana ny asa ankehitriny) sy `span_id`
(famantarana ho an'ny sub-fangatahana, miaraka amin'ny andrana indray ny sub-fangatahana manana `span_id`
tokana).
Fanampin'izany, ny contexte iray dia mety ahitana fampahalalana static, toy ny anarana node izay ametrahana ny fampiharana na ny anaran'ny tontolo iainana (prod/qa). Ireo saha ireo, fantatra amin'ny anarana hoe loharano amin'ny teny OpenTelemetry, dia miraikitra amin'ny log, metrika, na trace rehetra mba hahamora kokoa ny fitadiavana. Ny toe-javatra dia mety ahitana angona mavitrika ihany koa, toy ny famantarana ny teboka farany ankehitriny ( `http_path: "GET /user/:id/info"`
), izay azo ampifantenina amin'ny vondron'ny diary, metrika, na dian.
Ny contexte OpenTelemetry dia azo ampitaina eo amin'ny fampiharana samihafa amin'ny alàlan'ny protocole propagation context. Ireo protocole ireo dia misy lohapejy izay ampiana isaky ny fangatahana HTTP na gRPC na lohatenin'ny hafatra ho an'ny filaharana. Izany dia ahafahan'ny fampiharana midina manangana indray ny tontolon'ny asa avy amin'ireo lohapejy ireo.
Ireto misy ohatra vitsivitsy amin'ny fampielezana contexte:
B3-Propagation Ity dia andian-dahatsoratra ( x-b3-*
) novolavolaina voalohany ho an'ny rafitra fanaraha-maso Zipkin. Nampifanarahana tamin'ny OpenTracing izy io ary nampiasain'ny fitaovana sy tranomboky maro. B3-Propagation dia mitondra trace_id
/ span_id
ary saina iray manondro raha ilaina ny santionany.
W3C Trace Context Novolavolain'ny vondrona miasa W3C, ity fenitra ity dia manambatra ny fomba fampielezam-peo isan-karazany ho fenitra tokana ary izy no default amin'ny OpenTelemetry. Ohatra tsara amin'ny fampiharana ireo fenitra ireo dia ny fanaraha-maso ny fanatanterahana ny fangatahana mandalo amin'ny microservices nampiharina tamin'ny teknolojia samihafa nefa tsy mampandefitra ny fanaraha-maso sy ny fanivanana ny marina.
Ny tracing dia ny dingan'ny fandraketana ary avy eo mijery ny fandaharam-potoanan'ny lalan'ny fangatahana amin'ny alalan'ny microservices maro.
Ao amin'ny sary, ny bara tsirairay dia antsoina hoe "span" ary manana "span_id" tokana. Ny fakany dia antsoina hoe "trace" ary misy "trace_id" , izay manondro ny fangatahana manontolo.
Ity karazana visualization ity dia ahafahanao:
trace_id
sy span_id
ampiasaina amin'ny famantarana hafa.
Na dia eo aza ny fahatsorany hita maso, dia mijanona ho iray amin'ireo fitaovana mahery vaika indrindra hamantarana olana ny logging. Ny OpenTelemetry dia manatsara ny fanoratana nentim-paharazana amin'ny alàlan'ny fampidirana vaovao momba ny teny manodidina. Amin'ny ankapobeny, raha misy trace mavitrika, ny toetra `trace_id` sy `span_id` dia ampiana ho azy amin'ny logs, mampifandray azy ireo amin'ny lamin'ny trace. Fanampin'izay, ny toetran'ny log dia mety ahitana fampahalalana static avy amin'ny tontolon'ny OpenTelemetry, toy ny famantarana ny node, ary koa ny fampahalalana mavitrika, toy ny identifier teboka farany HTTP (`http_path: "GET /user/:id"`).
Amin'ny fampiasana ny `trace_id` dia afaka mahita logs avy amin'ny microservices rehetra mifandraika amin'ny fangatahana ankehitriny ianao, raha ny `span_id` kosa dia ahafahanao manavaka ny sub-fangatahana. Ohatra, amin'ny tranga famerenana indray dia hanana `span_id`s ny logs avy amin'ny andrana samihafa. Ny fampiasana ireo famantarana ireo dia ahafahana manadihady haingana ny fihetsiky ny rafitra manontolo amin'ny fotoana tena izy, manafaingana ny fitiliana ny olana ary manatsara ny fahamarinan-toerana sy ny fahatokisana.
Ny fanangonana metrics dia manome angon-drakitra betsaka momba ny fahombiazan'ny rafitra, toy ny fahatarana, ny tahan'ny fahadisoana, ny fampiasana loharanon-karena, sy ny maro hafa. Ny fanaraha-maso ara-potoana ny metrika dia ahafahanao mamaly haingana ny fiovan'ny zava-bita, misoroka ny tsy fahombiazana sy ny faharerahan'ny loharanon-karena, ary miantoka ny fisiana sy ny fahatokisana ny fampiharana ho an'ny mpampiasa.
Ny fampidirana miaraka amin'ny rafitra fitahirizana metrika sy sary an-tsary toa an'i Prometheus sy Grafana dia manamora ny fijerena an'io data io, manamora ny fanaraha-maso.
Ireo mpanangona metrika OpenTelemetry dia mifanaraka amin'ny fenitra Prometheus sy OpenMetrics, mamela ny fifindrana mora amin'ny vahaolana OpenTelemetry tsy misy fiovana lehibe. Ny OpenTelemetry SDK dia mamela ny ohatra trace_id ho aondrana miaraka amin'ny metrika, izay ahafahana mampifandray ny metrika amin'ny ohatra sy ny dian'ny log.
Miara-mamorona fomba fijery feno momba ny toetry ny rafitra ny diary, ny metrika ary ny tracing:
Ho fanampin'ireo singa fototra telo, ny OpenTelemetry dia ahitana ny foto-kevitry ny Sampling, Baggage ary ny fitantanana ny tontolon'ny asa.
Ao amin'ny rafitra misy entana be dia be ny habetsaky ny diary sy ny dian, mitaky loharanon-karena be ho an'ny fotodrafitrasa sy fitahirizana angon-drakitra. Mba hamahana ity olana ity, ny fenitry ny OpenTelemetry dia ahitana ny santionany famantarana - ny fahafahana manondrana afa-tsy ampahany amin'ny dian sy diary. Ohatra, azonao atao ny manondrana famantarana amin'ny antsipiriany avy amin'ny isan-jaton'ny fangatahana, fangatahana maharitra, na fangatahana fahadisoana. Ity fomba fiasa ity dia mamela santionany ampy hananganana antontan'isa sady mitahiry loharanon-karena lehibe.
Na izany aza, raha ny rafitra tsirairay no manapa-kevitra tsy miankina amin'ny fangatahana hanara-maso amin'ny antsipiriany, dia miafara amin'ny fomba fijery mizarazara ny fangatahana tsirairay. Ny rafitra sasany dia mety manondrana angona amin'ny antsipiriany fa ny hafa kosa mety manondrana ampahany fotsiny na tsy manondrana mihitsy.
Mba hamahana ity olana ity, ny rafitra fampielezana ny contexte an'ny OpenTelemetry dia mamindra saina sampling miaraka amin'ny `trace_id`/`span_id`. Izany dia miantoka fa raha manapa-kevitra ny serivisy voalohany mandray ny fangatahan'ny mpampiasa fa tokony hojerena amin'ny antsipiriany ny fangatahana dia hanaraka izany ny rafitra hafa rehetra. Raha tsy izany, ny rafitra rehetra dia tokony hanondrana famantarana amin'ny ampahany na tsia mba hitsitsiana ny loharanon-karena. Ity fomba fiasa ity dia antsoina hoe "Head Sampling" - fanapahan-kevitra noraisina tany am-piandohan'ny fanodinana fangatahana, na kisendrasendra na mifototra amin'ny toetra fampidirana sasany.
Ankoatr'izay, ny OpenTelemetry dia manohana ny "Tail Sampling", izay ny fampiharana rehetra dia manondrana hatrany ny famantarana rehetra amin'ny antsipiriany, fa misy buffer manelanelana. Aorian'ny fanangonana ny angona rehetra, ity buffer ity dia manapa-kevitra na hitazona ny angona feno na santionany ampahany ihany. Ity fomba ity dia ahafahan'ny santionany misolo tena kokoa ny sokajy fangatahana tsirairay (tafita/lava/diso) saingy mitaky fananganana fotodrafitrasa fanampiny.
Ny mekanika Baggage dia ahafahan'ny mpivady manan-danja tsy manara-dalàna alefa miaraka amin'ny trace_id
/ span_id
, mandeha ho azy eo anelanelan'ny microservices rehetra mandritra ny fanodinana ny fangatahana. Ity dia ilaina amin'ny fampitana fampahalalana fanampiny ilaina manerana ny lalana fangatahana — toy ny mombamomba ny mpampiasa na ny firafitry ny tontolo iainana amin'ny fotoana fandehanana.
Ohatra amin'ny lohapejy amin'ny fandefasana entana araka ny fenitra W3C: tracestate: rojo=00f067aa0ba902b7,congo=t61rcWkgMzE,userId=1c30032v5
Ireto misy ohatra vitsivitsy amin'ny fampiasana entana:
Ny fampitana fampahalalana momba ny toe-draharaham-barotra toy ny userId
, productId
, na deviceId
dia azo ampitaina amin'ny microservices rehetra. Ny fampiharana dia afaka miditra ho azy ity fampahalalana ity, mamela ny fikarohana diary araka ny toe-javatra misy ny mpampiasa ho an'ny fangatahana tany am-boalohany.
Fikirana masontsivana manokana ho an'ny SDK na fotodrafitrasa.
Fanevan'ny lalana Saina izay manampy ny mpifandanja entana handray fanapahan-kevitra momba ny lalana. Mandritra ny fitsapana, ny fangatahana sasany dia mety mila alefa amin'ny fanesoana backends. Satria ampitaina ho azy amin'ny serivisy rehetra ny entana, dia tsy ilaina ny mamorona protocols fanampiny—mametraha fitsipika momba ny mpandrindra entana fotsiny.
Mariho fa na dia kely aza ny fiantraikan'ny Baggage, ny fampiasana tafahoatra dia mety hampitombo be ny entan'ny tambajotra sy ny serivisy. Fidio tsara izay angon-drakitra tena ilainao handalo amin'ny Baggage mba hialana amin'ny olana momba ny fampisehoana.
Ny fampiharana ny OpenTelemetry eo amin'ny sehatry ny fotodrafitrasa dia ny fampidirana ny backends OpenTelemetry ao amin'ny rafitra fampiharana ary ny fametrahana ny fotodrafitrasa ho an'ny fanangonana angona.
Misy dingana efatra ny dingana:
Fampidirana ny fampiharana Amin'ny dingana voalohany, ny OpenTelemetry SDKs dia ampidirina mivantana amin'ny fampiharana mba hanangonana metrika, diary ary dian, miantoka ny fikorianan'ny angona momba ny zava-bitan'ny singa tsirairay.
Fanamboarana ny mpanondrana ny angona voaangona dia alefa avy amin'ny rindranasa amin'ny alàlan'ny mpanondrana mankany amin'ny rafitra ivelany ho an'ny fanodinana bebe kokoa, toy ny fanoratana, fanaraha-maso, fanaraha-maso, na rafitra analyse, arakaraka ny filanao.
Fanangonana sy fitehirizana Ity dingana ity dia mety ho tafiditra amin'ny fanamorana ny angon-drakitra, ny fampitomboana azy amin'ny fampahalalana fanampiny, ary ny fampifangaroana angon-drakitra avy amin'ny loharano samihafa mba hamoronana fomba fijery iraisana momba ny toetry ny rafitra.
Famantarana ny angona Farany, ny angona voahodina dia aseho ho dashboard amin'ny rafitra toy ny Grafana (ho an'ny metrika sy dian) na Kibana (ho an'ny logs). Izany dia ahafahan'ny ekipa hanombana haingana ny fahasalaman'ny rafitra, hamantatra ny olana sy ny fironana, ary hametraka fanairana mifototra amin'ny famantarana vokarina.
Raha te hampiditra rindranasa iray ianao dia mila mampifandray ny OpenTelemetry SDK mifanaraka amin'ny fiteny fandaharana ampiasaina na mampiasa tranomboky sy rafitra izay manohana mivantana ny OpenTelemetry. Ny OpenTelemetry matetika dia mampiasa interface tsara avy amin'ny tranomboky fantatra, mamela ny fanoloana midina. Ohatra, ny tranomboky Micrometer dia matetika ampiasaina amin'ny fanangonana metrika ao amin'ny ecosystem Java. Ny OpenTelemetry SDK dia manome ny fampiharana ny fifandraisan'ny Micrometer, mamela ny fanondranana metrika nefa tsy manova ny kaody fampiharana fototra. Ankoatr'izay, ny OpenTelemetry dia manolotra fampiharana ny OpenTracing taloha sy OpenCensus interface tsara, manamora ny fifindra-monina milamina mankany amin'ny OpenTelemetry.
Amin'ny rafitra IT, OpenTelemetry dia mety ho lasa fanalahidin'ny hoavin'ny backend azo itokisana sy mahomby. Ity fitaovana ity dia manatsotra ny debugging sy ny fanaraha-maso ary koa manokatra fahafahana hahazo fahatakarana lalina momba ny fahombiazan'ny fampiharana sy ny fanatsarana amin'ny ambaratonga vaovao. Midira ao amin'ny vondrom-piarahamonina OpenTelemetry hanampy amin'ny famolavolana ho avy izay mora kokoa sy mahomby kokoa ny fivoaran'ny backend!