paint-brush
¿Imataq OpenTelemetry chaymanta Imaynatataq Backend calidadniyki allinchayta atin? by@ymatigoosa
39,155 ñawinchasqakuna
39,155 ñawinchasqakuna

¿Imataq OpenTelemetry chaymanta Imaynatataq Backend calidadniyki allinchayta atin?

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

Nishu unay; Ñawinchanapaq

OpenTelemetry huk kallpasapa llamkanakuna kunan pacha qhipa llamkanakuna qhawaypaq chaymanta pantasqa allichaypaq. Chayqa qatiy, qillqa, chaymanta mitricakuna huñuyta tinkin, hukllachasqa qhawayta ruwana ruwaymanta chaymanta atiyniyuq kayninmanta qun. Kay yanapakuyqa historian, llalliq hamut'ayninkunata, chaymanta ruwayninta maskan, chaymanta microserviciokuna chaymanta rakisqa sistemakuna allinchaypaq ancha chaniyuq.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - ¿Imataq OpenTelemetry chaymanta Imaynatataq Backend calidadniyki allinchayta atin?
Dmitrii Pakhomov HackerNoon profile picture
0-item

Ñawpaqpi, qhipa kaqmanta rimaspayku, huk hatun ruwanamanta huklla, hatun willaypa tiyapuyninwan rimaq kayku, chaymanta registro ruwayqa qhawaypaq suficiente karqa. Kunanqa, Kubernetes hina tecnologiakunaman gracias , microserviciokuna kamachiyman tukusqa. Yanapakuykuna aswan achka chaymanta rakisqa kanku, chaymanta ñawpaqmanta registro ruwayqa manaña suficientechu pantay allichaypaq chaymanta ruwanakunaykupi sasachakuykunata tarinapaq.

Huk allin allichay qhawayta wakichiypaq OpenTelemetry — huk kunan pacha yanapakuy huñu mayqinchus pantasqa allichaypaq chaymanta rakisqa llamkanakuna ruway t'aqwiypaq llamk'achiy atikun.


Kay qillqasqa IT profesionalkunapaq ruwasqa kachkan, paykunap yachayninkuta mast'ariyta maskanku backend allinchaypi. Uraypi, OpenTelemetry ima kasqanmanta, llalliq hamut'ayninkunamanta, chaymanta allichaypi yanapasqan sasachakuykunamantapas sut'inchasunchik. Sichus imayna OpenTelemetry ruwayniyki tikrayta atinman qhawaypaq chaymanta pantay allichaypaq qhipa sistemakuna, atiyniyuq kayninta chaymanta allin ruwayninta yapaspa — ñawiriy.


OpenTelemetry nisqamanta pisi willakuy

Hatun tecnologia empresakuna ñawpaqta 2000 wata tukukuypi rakisqa sacha kuchuywan qatipaywan sasachakuywan tuparqanku. 2010 watapi Google huk qillqasqata lluqsichirqan, Dapper, huk Hatun-Rakirasqa Sistemakuna qatiy Infraestructura , chaymi Twitterpa qatipanapaq yanapakuyninpaq allpata churarqa, Zipkin, 2012 watapi lluqsisqa.


2014 watapi, Kubernetes rikhurirqa, microserviciokuna wak puyupi rakisqa sistemakuna ruwayta anchata pisiyachispa. Kayqa achka empresakuna microserviciokunapi rakisqa registro ruwaywan chaymanta qatipaywan sasachakuykunawan tupanankupaq pusarqa. Rakisqa qatiy kamachiypaq, OpenTracing kamachiy, CNCF kaqwan chaskisqa, chaymanta Google OpenCensus llamk'aynin ruwasqa karqa.


2019 watapi, OpenTracing , OpenCensus llamk'aykuna OpenTelemetry sutiyuq hukllanakuymanta willarqan. Kay plataformaqa aswan allin ruwanakuna huñusqa achka watakunapi huñun, mana pantasqa tinkiyta qatiy, registro chaymanta mitricakuna mayqin sistemamanpas saqin, mana imapas sasachakuyniyuq kaptinku.


Kunan pacha, OpenTelemetry nisqaqa manam llamk'ayllachu; chayqa huk industriapa kamachiyninmi telemetría nisqamanta willakuykunata huñunapaq hinaspa apachinapaq. Chayqa ruwasqa chaymanta yanapasqa huk ayllu especialistakuna chaymanta qhatupi umalliq empresakuna Google chaymanta Microsoft hina. Kay proyectoqa wiñachkallanpunim, musuq atiykunata tarispanmi, chaynapi hukllanakuy hinaspa llamkay ruwayta pisiyachinapaq.


¿Imataq Ukhupi kachkan?

OpenTelemetry huk tukuypaq ruwanakuna chaymanta yanapakuykuna huñusqa kanku chaymanta ima señalkunata huk ruwana hawa pachawan tinkinapaq paqarichiyta atin chayta riqsichin, chaymanta imayna kay señalkuna huñusqa chaymanta rikuchiy atikun ruwanakuna chaymanta tukuy llamkana estadota qhawanapaq. Kimsa hatun laya señalkuna qatiy, registro , mitricakuna huñuy ima .


**Sapa componente nisqamanta allinta qhawarisunchis: \ .

Contextos nisqakuna

OpenTelemetry llamk'ana contextokuna yuyayta riqsichin. Huk contexto ñawpaqtaqa `trace_id` (kunan llamk'anapaq riqsichiq) chaymanta `span_id` (huk huch'uy mañakuypaq riqsichiq, huk huch'uy mañakuypa sapa kuti kallpachakuyninwan huk sapalla `span_id` kaqwan) kaqhina atributokunata churan.


Chaymanta, huk contexto mana kuyukuq willayta hap'inman, ahinataq maypi ruwana mast'arisqa nodo suti utaq muyuriq suti (prod/qa). Kay pampakuna, OpenTelemetry terminología kaqpi yanapakuykuna hina riqsisqa, sapa registro, métrica utaq qatiqman k'askasqa kanku aswan facil maskanapaq. Contextokunapas dinamico willayta churayta atin, kunan tukukuypa riqsichiqnin hina ( `http_path: "GET /user/:id/info"` ), mayqinchus akllaspa huñukunaman k'askasqa kanman registrokuna, mitricakuna utaq qatipaykuna.


OpenTelemetry contextokuna hukhina ruwanakunapura pasayta atikunman contexto mast'ariy protocolokuna llamk'achispa. Kay protocolokuna umalliq huñukunamanta ruwasqa kanku mayqinkunachus sapa HTTP utaq gRPC mañakuyman yapasqa kanku utaq willakuypa umalliqninkuna filakunapaq. Kayqa uray ruwanakuna kay umalliqkunamanta llamkana contexto kaqmanta ruwayta saqin.


Kaypi wakin ejemplokuna contexto mastariymanta:

  1. B3-Mastariy Kayqa huk umalliq huñu ( x-b3-* ) qallariypi Zipkin qatiy llamkanapaq ruwasqa. OpenTracing nisqamanmi tikrasqa karqan, achka yanapakuykunawan, bibliotecakunawanpas llamk'achirqan. B3-Propagación trace_id / span_id chaymanta huk bandera apamun, muestreo necesario kasqanmanta.


  2. W3C Trace Context W3C llamkana qutumanta ruwasqa, kay kamachiyqa imaymana contexto mast'ariy ruwaykunata huklla kamachiyman hukllachan chaymanta OpenTelemetry kaqpi ñawpaqmanta ruwasqa. Huk allin ejemplo kay kamachiykunata ruwanapaq huk mañakuy ruwayta qatiy microserviciokuna ruwasqa hukniray tecnologiakunawan ruwasqa mana qhawayta chaymanta pantay allichay chiqan kayninta pantachispa.

Rastreo nisqa

Rastreo nisqaqa achka microserviciokuna kaqnintakama mañakuypa ñanninpa pacha chirunta qillqay chaymanta chaymanta qhaway ruwaymi.


[imahinap paqariynin: https://opentelemetry.io/docs/demo/pantallakuna/].


Rikuchiypiqa sapa barra "span" sutiyuqmi, sapalla "span_id" nisqayuqmi. Sapsi span nisqaqa "trace" nisqawanmi sutichasqa, "trace_id" nisqayuqmi, chaymi tukuy mañakuypaq riqsichiq hina llamk'an.


Kay laya rikuchiyqa:

  • Mañakuykuna ruway pachata t'aqwiy hukniray sistemakuna chaymanta willaypa tiyapuyninkunapi cuellos de botellakuna allinchayta munanku riqsinapaq.
  • Serviciokunapura dependencias cíclicas nisqakunata riqsiy.
  • Iskay kuti mañakuykunata maskay. Willayta qatiy llamk'achispa, yapasqa t'aqwiykunata ruwayta atikunki, ahinataq huk microserviciokuna mapa ruway utaq pachata rakiy hukniray sistemakunapi llamkana ruwaypi. Manaña qatipay willayta llamk'achinkichu pacha chirusqakuna qhawanapaq, OpenTelemetry trace_id chaymanta span_id wak señalkunapi llamk'achinapaq ruwanraq.


Logs nisqakuna

Yaqapaschá mana sasachu kanman chaypas, sach’akuna k’utuyqa sasachakuykunata tarinapaq aswan atiyniyoq yanapakuykunamanta hukninmi. OpenTelemetry ñawpaqmanta registro ruwayta aswan allinta ruwan, contextual willayta yapaspa. Aswanta, sichus huk ruwaq qatiy kachkan, `trace_id` chaymanta `span_id` layakuna kikinmanta registrokunaman yapasqa, qatiy pacha chiruman tinkispa. Astawan, registro atributokuna OpenTelemetry contextomanta mana kuyukuq willayta churayta atinku, ahinataq nodo riqsichiq, chaymanta dinamico willayta, kunan HTTP tukukuy riqsichiq hina (`http_path: "GET /user/:id"`).


`trace_id` kaqwan, kunan mañakuywan tinkisqa llapa microserviciokunamanta registrokunata tariyta atikunki, `span_id` kaqwantaq huch'uy mañakuykunamanta t'aqayta atikunki. Ejemplopaq, yapamanta kallpachakuypiqa, hukniray kallpachakuykunamanta registrokuna hukniray `span_id`s nisqayuq kanqa. Kay riqsichiqkunata llamk'achiyqa tukuy sistemap ruwayninta chiqa pachapi usqhaylla t'aqwiyta atichin, sasachakuy tariyta usqhaylla ruwayta chaymanta takyasqa kayta chaymanta atiyniyuq kayta kallpachaspa.


Métricas nisqa

Métricas huñuyqa sistema ruwaymanta achka willayta qun, ahinataq latencia, pantay tasakuna, recursokuna llamk'achiyta chaymanta aswan. Chiqa pacha qhaway mitricakuna ruway tikraykunaman usqhaylla kutichiyta atikun, pantaykunata chaymanta recursokuna sayk'uyta hark'an, chaymanta hatun tarikuy chaymanta ruwanakuna ruwaqkunapaq atikuq kayninta qhaway.


Prometheus hinallataq Grafana hina métrico waqaychaywan chaymanta qhaway sistemakunawan tinkiyqa kay willayta qhawayta aswan facilta ruwan, qhawayta anchata pisiyachin.


[imahinapa paqariynin: https://grafana.com/blog/2021/06/22/grafana-dashboard-rikuchiy-rikuchiykuna-prometheus-wasi-energía-uso-github-hinallataq-aswan-paq/].


Métrico Huñuqkuna

OpenTelemetry mitru huñuqkuna Prometheus chaymanta OpenMetrics kamachiykunawan tupaq, OpenTelemetry allichaykunaman mana ancha tikrayniyuq tikrayta atichispa. OpenTelemetry SDK trace_id ejemplokuna hawaman apachiyta saqillan mitricakunawan kuska, chaywanmi mitricakuna registro ejemplokunawan chaymanta qatipakunawan tupachiyta atikun.


Correlación de Señales nisqa

Kuska, registrokuna, mitricakuna chaymanta qatiy huk tukuypaq qhawayta ruwanku llamkana estadomanta:

  • Qillqakuna llamkana ruwanakunamanta willayta qun, utqaylla riqsichiyta chaymanta pantaykunata allichayta saqin.
  • Métricas nisqakunaqa sistemapa ruwaynin cualitativo chaymanta cuantitativo nisqa rikuchiqninkunatam qawarichin, kutichiy pachakuna utaq pantay tasakuna hina.
  • Rastreo kay qhawayta hunt'achin mañakuy ruway ñanta rikuchispa imaymana sistema componentes kaqnintakama, yanapaspa paykunapura tinkisqankuta hamut'anapaq. Registros, rastrokuna, mitricakuna ima sut'i tinkiyninqa OpenTelemetry kaqpa sapaq ruwayninmi. Ejemplopaq, Grafana ruwaqkunata tupaq qatiy chaymanta mañakuy métricas qhawayta saqin huk registro qhawaspa, plataformap llamk'ayninta chaymanta allin ruwayninta anchata yapan.



[imahinapa paqariynin: https://grafana.com/blog/2020/03/31/imaynata-grafanapi-métricas-registrokunata-hinallataq-rastrokunata-allin-correlacionayta/].


Kimsa ukhu componentekunamanta yapasqa, OpenTelemetry Muestreo, Equipaje, chaymanta llamkana contexto kamachiy hamut'aykunata churan.


Muestreo ruway

Alta carga sistemakunapi, registrokuna chaymanta rastrokuna volúmenes hatun tukun, infraestructura kaqpaq chaymanta willay waqaychaypaq hatun yanapakuykunata mañan. Kay sasachakuy allichanapaq, OpenTelemetry kamachiykuna señal muestreo kaqpi — huk rakilla qatiqkunamanta chaymanta registrokunamanta hawaman apachiy atiy. Ejemplopaq, sapa pachakmanta huk mañakuykunamanta, unaymanta mañakuykunamanta utaq pantay mañakuykunamanta sut'i señalkunata hawaman apachiyta atikunki. Kay ruwayqa suficiente muestreo nisqatam saqillan estadísticas nisqa ruwanapaq, chaynallataqmi hatun recursokunata waqaychaspa.


Ichaqa, sichus sapa sistema sapallanmanta tantean mayqin mañakuykunata detallewan qhawanapaq, sapa mañakuymanta huk t'aqasqa qhawaywan tukuyku. Wakin llamkanakuna sut'i willayta hawaman apachiyta atinku wakintaq wakinlla hawaman apachiyta atinku utaq mana llapanpi hawaman apachiyta atinkuchu.


Kay sasachakuy allichanapaq, OpenTelemetry kaqpa contexto mast'ariy mecanismonkuna huk muestreo banderata `trace_id`/`span_id` kaqwan kuska apachinku. Kayqa qhawan sichus qallariy yanapakuy ruwaq mañakuyta chaskiq mañakuyta detallewan qhawasqa kananta tantean, llapa wak sistemakuna qatinqanku. Mana hina kaqtinqa, llapa sistemakunan wakinta otaq mana señalkunata hawaman apachinanku, recursokuna waqaychanankupaq. Kay ruwayqa "Uma muestreo" sutiyuq — huk tanteay ruwasqa mañakuy ruway qallariypi, mana akllasqa utaq wakin yaykusqa atributokunapi hapipakuspa.


Chaymanta, OpenTelemetry "Tail Sampling" yanapakun, maypi llapa ruwanakuna sapa kuti llapa señalkunata detallewan hawaman apachinku, ichaqa huk chawpi buffer tiyan. Llapan willayta huñuspa, kay buffer tantean hunt'asqa willayta waqaychayta icha huk chikan muestrallata waqaychayta. Kay ñanqa aswan representativo muestra sapa mañakuy categoría kaqmanta saqin (allin/unay/pantasqa) ichaqa yapasqa infraestructura churayta munan.


Equipaje

Equipaje mecanismoqa munasqa llave-chani pariskunata trace_id / span_id kaqwan kuska kachayta saqin, mañakuy ruwaypi llapa microserviciokunapura kikinmanta pasaspa. Kayqa allinmi huk willayta necesitasqan tukuy mañakuy ñanpi kachaypaq —ahinataq ruwaqpa willaynin utaq purichiy pacha muyuriqpa churanakuna.

W3C kamachiymanhina equipaje apachinapaq umalliqpa rikch'aynin: tracestate: rojo=00f067aa0ba902b7,congo=t61rcWkgMzE,userId=1c30032v5

Kaypi wakin ejemplokuna Equipaje llamk'achiyta:

  • Negocio Contexto Willayta pasachiy kayhina userId , productId , utaq deviceId llapa microserviciokuna kaqninta pasayta atikun. Yanapakuykuna kikinmanta kay willayta qillqayta atinku, registro maskanakunata ruwaqpa contextonwan ñawpaq mañakuypaq saqispa.

  • Sapanchasqa Wakichiy Parámetros SDKs utaq infraestructura kaqpaq churanakuna.

  • Ruteo Banderas Banderakuna carga equilibradorkunata yanapan ruteo decisionkunata ruwanankupaq. Prueba ruwaypi, wakin mañakuykuna mock backends kaqman ñanchasqa kananku tiyan. Equipaje llapa yanapakuykunawan kikillanmanta kachasqa kasqanrayku, mana huk protocolokuna ruwanapaq necesidad kanchu —huk kamachiyta balanceador de carga kaqpi churaylla.


Reparay, maypachachus Equipaje ruwaypa impaktun pisilla kachkan, llumpay llamk'ayqa llika chaymanta servicio carga anchata yapayta atin. Allinta akllay mayqin willaytachus chiqamanta Equipaje kaqninta pasanayki tiyan mana ruwaymanta sasachakuykuna kananpaq.

Infraestructura nisqa ruway

OpenTelemetry infraestructura pata kaqpi ruwayqa OpenTelemetry qhipa tukukuykunata ruwana arquitectura kaqman tinkiyta chaymanta infraestructura willayta huñunapaq ruway.


Chay ruwayqa tawa etapayuqmi: 1.1.


  1. Yanapakuypa Huñuynin Ñawpaq kaq etapapi, OpenTelemetry SDKs chiqalla ruwanakunaman tinkisqa kanku mitricakuna, registrokuna chaymanta qatipaykuna huñunapaq, sapa llamkana componente ruwayninmanta willaypa sapa kuti puriyninta qhawaspa.


  2. Hawaman apachiqkunata wakichiy Huñusqa willaykunaqa ruwanakunamanta hawa llaqtakunaman hawa sistemakunaman aswan ruwanapaq purichisqa, ahinataq registro, qhaway, qatiy utaq t'aqwiy sistemakuna, necesidadniykimanhina.


  3. Huñuy chaymanta Waqaychay Kay etapaqa willayta normalizayta, yapasqa willakuywan qhapaqyachiyta, chaymanta willayta hukniray pukyuta huñuyta huk hukllachasqa qhawayta ruwanapaq sistemapa estadonmanta ruwayta atinman.


  4. Willayta qhaway Tukuyninpaq, ruwasqa willaykunata Grafana (métricas kaqpaq chaymanta rastrokunapaq) utaq Kibana (registrokunapaq) hina sistemakunapi tablakuna hina rikuchikun. Kayqa equipokunaman sistemapa qhali kayninta utqaylla chaninchayta atin, sasachakuykunata chaymanta tendenciakunata riqsiyta, chaymanta alertas ruwasqa señalkuna ruwasqa kaqpi churayta atikun.


Aplicación Implementación nisqa

Huk ruwanawan tinkinapaq, OpenTelemetry SDK tupaqnin tinkinayki tiyan programakuna simipaq llamk'achisqapaq utaq bibliotecakuna chaymanta marcokuna llamk'achinayki tiyan mayqinkunachus chiqamanta OpenTelemetry yanapakunku. OpenTelemetry sapa kuti riqsisqa bibliotecakunamanta ancha llamk'achisqa interfaces nisqakunata ruwan, drop-in nisqa tikraykunata saqispa. Ejemplopaq, Micrometro biblioteca nisqa Java ecosistema nisqapi mitricakuna huñunapaq llamk'achisqa. OpenTelemetry SDK Micrometer interfazkuna ruwayninkunata qun, métrica hawaman apachiyta atichispa mana hatun ruwana codigota tikraspa. Astawan, OpenTelemetry ñawpaq OpenTracing chaymanta OpenCensus interfazkuna ruwanakunata qun, OpenTelemetry kaqman sumaq astakuyta yanapan.

Conclusion

IT llamkanakunapi, OpenTelemetry hamuq pachapaq llaveman tukunman atikuq chaymanta allin ruwaq qhipa kaqkunapaq. Kay yanapakuyqa pantaykunata allichayta chaymanta qhawayta pisiyachin chaymanta oportunidadkunata kicharin huk ukhu hamut'aypaq ruwana ruwaymanta chaymanta allinchaymanta musuq pata kaqpi. OpenTelemetry aylluman hukllanakuy hamuq pacha ruwayta yanapanaykipaq maypichus qhipa ruway aswan sasan chaymanta aswan allin!