Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Nan anviwònman enjenyè SRE/DevOps, li p ap sipriz pèsonn ke yon jou yon kliyan (oswa yon sistèm siveyans) parèt epi rapòte ke "tout bagay pèdi": sit la pa mache, peman pa pase, lavi a ap dekonpoze. ... Kèlkeswa kantite lajan ou ta renmen ede nan yon sitiyasyon konsa , fè sa san yon zouti ki senp epi ki konprann ka trè difisil. Souvan pwoblèm nan kache nan kòd aplikasyon an tèt li ou jis bezwen lokalize li.

Ak nan lapenn ak nan lajwa...

Li te rive konsa ke nou gen lontan ak pwofondman tonbe nan renmen ak New Relic. Li te epi li rete yon zouti ekselan pou kontwole pèfòmans aplikasyon an, epi tou li pèmèt ou enstriman achitekti mikwosèvis la (lè l sèvi avèk ajan li yo) ak anpil, plis ankò. Ak tout bagay ta ka gwo si se pa t 'chanjman nan politik prix sèvis la: li koute soti nan ane 2013 grandi plis pase 3 fwa. Anplis de sa, depi ane pase a, jwenn yon kont jijman mande pou kominikasyon ak yon manadjè pèsonèl, ki fè li difisil prezante pwodwi a bay yon kliyan potansyèl.

Sitiyasyon an nòmal: New Relic pa nesesè sou yon "baz pèmanan" yo sonje li sèlman nan moman sa a lè pwoblèm kòmanse. Men, ou toujou bezwen peye regilyèman (140 USD pou chak sèvè pa mwa), ak nan yon enfrastrikti nwaj otomatikman dekale sòm yo ajoute olye gwo. Malgre ke gen yon opsyon Pay-As-You-Go, pèmèt New Relic pral mande pou ou rekòmanse aplikasyon an, ki ka mennen nan pèt la nan sitiyasyon an pwoblèm pou ki li te tout te kòmanse. Sa pa gen lontan, New Relic te prezante yon nouvo plan tarif yo - Aspè fondamantal, - ki nan premye gade sanble yon altènatif rezonab nan Pwofesyonèl ... men apre yon egzamen pi pre li te tounen soti ke kèk fonksyon enpòtan ki manke (an patikilye, li pa gen Tranzaksyon kle yo, Cross Aplikasyon Tracing, Distribiye trase).

Kòm yon rezilta, nou te kòmanse panse pou chèche yon altènatif pi bon mache, ak chwa nou an te tonbe sou de sèvis: Datadog ak Atatus. Poukisa sou yo?

Konsènan konpetitè yo

Kite m 'di touswit ke gen lòt solisyon sou mache a. Nou menm konsidere opsyon Open Source, men se pa tout kliyan ki gen kapasite gratis pou òganize solisyon pwòp tèt ou yo... - Anplis de sa, yo pral mande pou antretyen adisyonèl. Koup nou te chwazi a te vin pi pre a bezwen nou yo:

  • sipò entegre ak devlope pou aplikasyon PHP (pile kliyan nou yo trè divès, men sa a se yon lidè klè nan yon kontèks rechèch pou yon altènativ a New Relic);
  • pri abòdab (mwens pase 100 USD pou chak mwa pou chak lame);
  • enstriman otomatik;
  • entegrasyon ak Kubernetes;
  • Resanblans nan koòdone nan New Relic se yon plis aparan (paske enjenyè nou yo itilize li).

Se poutèt sa, nan premye etap seleksyon an, nou elimine plizyè lòt solisyon popilè, ak an patikilye:

  • Tideways, AppDynamics ak Dynatrace - pou pri;
  • Stackify bloke nan Federasyon Larisi la epi li montre twò piti done.

Rès atik la estriktire nan yon fason ke solisyon yo nan kesyon an pral premye prezante yon ti tan, apre sa mwen pral pale sou entèraksyon tipik nou an ak New Relic ak eksperyans / enpresyon nan fè operasyon menm jan an nan lòt sèvis.

Prezantasyon konpetitè chwazi yo

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus
sou nouvo rlik, pwobableman tout moun te tande? Sèvis sa a te kòmanse devlopman li plis pase 10 ane de sa, nan 2008. Nou te itilize li aktivman depi 2012 epi nou pa te gen okenn pwoblèm entegre yon gwo kantite aplikasyon nan PHP, Ruby ak Python, epi nou te gen eksperyans tou entegre ak C# ak Go. Otè sèvis la gen solisyon pou siveyans aplikasyon, enfrastrikti, trase enfrastrikti mikwosèvis, kreye aplikasyon pratik pou aparèy itilizatè yo, ak plis ankò.

Sepandan, ajan New Relic la kouri sou pwotokòl propriétaires epi li pa sipòte OpenTracing. Instrumentasyon avanse mande pou modifye espesyalman pou New Relic. Finalman, sipò Kubernetes toujou eksperimantal.

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus
Te kòmanse devlopman li an 2010 datadog sanble pi enteresan pase New Relic jisteman an tèm de itilizasyon nan anviwònman Kubernetes. An patikilye, li sipòte entegrasyon ak NGINX Ingress, koleksyon boutèy demi lit, statsd ak pwotokòl OpenTracing, ki pèmèt ou swiv yon demann itilizatè soti nan moman li konekte ak fini, osi byen ke jwenn mòso bwa pou demann sa a (tou de sou bò sèvè entènèt la. ak sou konsomatè a).

Lè w ap itilize Datadog, nou te rankontre ke li pafwa bati kat mikwosèvis la mal, ak kèk enpèfeksyon teknik. Pa egzanp, li te mal idantifye kalite sèvis la (fè Django pou yon sèvis kachèt) epi li te lakòz 500 erè nan yon aplikasyon PHP lè l sèvi avèk bibliyotèk popilè Predis la.

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus
Atatis - enstriman ki pi piti a; sèvis la te lanse nan 2014. Bidjè maketing li klèman enferyè a konpetitè ki nan lis yo, mansyone yo anpil mwens komen. Sepandan, zouti nan tèt li trè menm jan ak New Relic, pa sèlman nan kapasite li yo (APM, siveyans Navigatè, elatriye), men tou nan aparans.

Yon dezavantaj enpòtan se ke li sèlman sipòte Node.js ak PHP. Nan lòt men an, li se aplike notables pi bon pase Datadog. Kontrèman ak lèt ​​la, Atatus pa mande aplikasyon pou fè modifikasyon oswa ajoute etikèt adisyonèl nan kòd la.

Ki jan nou travay ak New Relic

Koulye a, kite a konnen ki jan nou jeneralman itilize New Relic. Ann di nou gen yon pwoblèm ki bezwen yon solisyon:

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Li fasil pou w wè sou graf la Splash - Ann analize li. Nan New Relic, tranzaksyon entènèt yo imedyatman chwazi pou yon aplikasyon entènèt, tout eleman yo endike nan graf pèfòmans lan, gen erè-to, demann-to panno... Ki sa ki pi enpòtan se ke dirèkteman nan panno sa yo ou ka deplase ant diferan. pati nan aplikasyon an (pa egzanp, klike sou MySQL ap mennen nan seksyon baz done a).

Depi nan egzanp ki anba konsiderasyon an nou wè yon ogmantasyon nan aktivite PHP, klike sou tablo sa a epi ale otomatikman Tranzaksyon:

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Lis tranzaksyon yo, ki se esansyèlman contrôleur ki soti nan modèl MVC a, deja klase pa Pifò tan konsome, ki trè pratik: nou imedyatman wè sa aplikasyon an fè. Men kèk egzanp demann long ke New Relic kolekte otomatikman. Lè w chanje klasman, li fasil pou jwenn:

  • kontwolè aplikasyon ki pi chaje;
  • kontwolè ki pi souvan mande;
  • pi dousman nan kontwolè yo.

Anplis de sa, ou ka elaji chak tranzaksyon epi wè sa aplikasyon an t ap fè nan moman kòd la te egzekite:

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Finalman, aplikasyon an estoke egzanp tras demann long (sa yo ki pran plis pase 2 segonn). Isit la se panèl la pou yon tranzaksyon long:

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Li ka wè ke de metòd pran anpil tan, ak an menm tan an lè yo te egzekite demann lan, URI li yo ak domèn yo montre tou. Trè souvan sa a ede jwenn demann lan nan mòso bwa yo. Ale nan Trase detay, ou ka wè ki kote yo rele metòd sa yo:

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Ak nan Rekèt baz done — evalye demann nan baz done ki te egzekite pandan aplikasyon an t ap kouri:

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Ame ak konesans sa a, nou ka evalye poukisa aplikasyon an ap ralanti epi travay ak pwomotè a pou vini ak yon estrateji pou rezoud pwoblèm nan. An reyalite, New Relic pa toujou bay yon foto klè, men li ede yo chwazi vektè a nan envestigasyon:

  • lontan PDO::Construct mennen nou nan fonksyonman an etranj nan pgpoll;
  • enstabilite sou tan Memcache::Get sigjere ke machin vityèl la te configuré mal;
  • yon tan sispèk ogmante pou pwosesis modèl te mennen nan yon bouk enbrike tcheke prezans nan 500 avatar nan depo objè a;
  • elatriye ...

Li rive tou ke olye pou yo egzekite kòd, yon bagay ki gen rapò ak depo done ekstèn ap grandi sou ekran prensipal la - epi li pa gen pwoblèm sa li pral: Redis oswa PostgreSQL - yo tout kache nan tab la. baz done.

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Ou ka chwazi yon baz espesifik pou rechèch ak sòt demann - menm jan ak fason li fèt nan Tranzaksyon yo. Epi lè w ale nan tab demann lan, ou ka wè konbyen fwa demann sa a rive nan chak nan kontwolè aplikasyon yo, epi tou estime konbyen fwa li rele. Li trè konfòtab:

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Tab la gen done menm jan an Sèvis ekstèn, ki kache demann nan sèvis HTTP ekstèn, tankou aksè nan depo objè, voye evènman nan sentinèl, oswa renmen an. Kontni tab la konplètman menm jan ak baz done:

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Konpetitè: opòtinite ak enpresyon

Koulye a, bagay ki pi enteresan an se konpare kapasite New Relic ak sa konpetitè yo ofri. Malerezman, nou pa t 'kapab teste tout twa zouti sou yon vèsyon nan yon aplikasyon ki kouri nan pwodiksyon an. Sepandan, nou te eseye konpare sitiyasyon/konfigirasyon ki te idantik ke posib.

1.Datadog

Datadog salye nou ak yon panèl ki gen yon miray sèvis:

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Li eseye kraze aplikasyon an konpozan/mikwosèvis, kidonk nan egzanp aplikasyon Django a nou pral wè 2 koneksyon ak PostgreSQL (defaultdb и postgres), osi byen ke seleri, Redis. Travay ak Datadog mande pou ou gen yon konesans minim sou prensip MVC: ou bezwen konprann ki kote demann itilizatè yo soti jeneralman. Sa a anjeneral ede kat jeyografik sèvis yo:

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

By wout la, gen yon bagay ki sanble nan New Relic:

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

... ak kat yo, nan opinyon mwen, vin pi senp ak pi klè: li pa montre eleman yo nan yon aplikasyon (ki ta fè li twò detaye, tankou nan ka Datadog), men se sèlman sèvis espesifik oswa mikwosèvis.

Ann retounen nan Datadog: nan kat sèvis la nou ka wè ke demann itilizatè yo vini nan Django. Ann ale nan sèvis Django a epi finalman wè sa nou te espere:

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Malerezman, pa gen okenn graf isit la pa default Tan tranzaksyon entènèt, menm jan ak sa nou wè sou prensipal New Relic panèl la. Sepandan, li ka configuré nan plas orè a % tan pase. Li se ase yo chanje li nan Mwayèn tan pou chak demann pa Kalite... e kounye a, graf la abitye ap gade nou!

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Poukisa Datadog te chwazi yon tablo diferan se yon mistè pou nou. Yon lòt bagay ki fwistre se ke sistèm nan pa sonje chwa itilizatè a (kontrèman ak tou de konpetitè), ak Se poutèt sa solisyon an sèlman se yo kreye panno koutim.

Men, mwen te kontan ak kapasite nan Datadog pou chanje soti nan graf sa yo nan mezi yo nan sèvè ki gen rapò, li mòso bwa yo ak evalye chaj la sou jeran yo sèvè entènèt (Gunicorn). Tout se prèske menm jan ak nan New Relic ... e menm yon ti kras plis (mòso bwa)!

Anba graf yo se tranzaksyon ki sanble konplètman ak New Relic:

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Nan Datadog, yo rele tranzaksyon yo resous yo. Ou ka klase kontwolè yo dapre kantite demann, pa tan repons mwayèn, ak pa tan maksimòm ki pase pou yon peryòd tan chwazi.

Ou ka elaji resous la epi wè tout sa nou te deja obsève nan New Relic:

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Gen estatistik sou resous la, yon lis jeneralize apèl entèn yo, ak egzanp demann ki ka klase pa kòd repons... By wout la, enjenyè nou yo reyèlman te renmen klasman sa a.

Nenpòt resous egzanp nan Datadog ka louvri epi etidye:

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Yo prezante paramèt demann yo, yon tablo rezime tan ki pase sou chak eleman, ak yon tablo kaskad ki montre sekans apèl yo. Ou ka chanje tou nan yon gade pyebwa nan tablo kaskad la:

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Ak bagay ki pi enteresan an se gade chaj la nan lame a sou ki demann lan te egzekite ak gade mòso bwa demann yo.

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Gwo entegrasyon!

Ou ka mande ki kote tab yo ye baz done и Sèvis ekstèn, tankou nan New Relic. Pa gen okenn isit la: depi Datadog dekonpoze aplikasyon an an eleman, yo pral konsidere PostgreSQL yon sèvis separe, ak olye de Sèvis Ekstèn li vo chèche pou aws.storage (li pral menm jan an pou chak lòt sèvis ekstèn ke aplikasyon an ka jwenn aksè).

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Men yon egzanp ak postgres:

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Esansyèlman gen tout sa nou te vle:

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Ou ka wè ki "sèvis" demann lan soti.

Li pa ta mal fè ou sonje ke Datadog entegre parfe ak NGINX Ingress epi li pèmèt ou fè trase fen-a-fen depi lè yon demann rive nan gwoup la, epi tou li pèmèt ou resevwa metrik statsd, kolekte mòso bwa ak metriz lame. .

Yon gwo plis nan Datadog se ke pri li yo devlope soti nan siveyans enfrastrikti, APM, Jesyon Log ak tès sentetik, i.e. Ou ka chwazi plan ou yon fason fleksib.

2.Atat

Ekip Atatus la deklare ke sèvis yo se "menm ak New Relic, men pi bon." Ann wè si sa vrèman konsa.

Panèl prensipal la sanble, men li pa t posib pou detèmine Redis ak memcached yo te itilize nan aplikasyon an.

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

APM chwazi tout tranzaksyon pa default, byenke tipikman sèlman tranzaksyon Entènèt yo bezwen. Tankou Datadog, pa gen okenn fason pou navige nan sèvis la vle soti nan panèl prensipal la. Anplis, tranzaksyon yo ki nan lis apre erè, ki pa sanble trè lojik pou APM.

Nan tranzaksyon Atatus, tout bagay sanble ak New Relic ke posib. Dezavantaj la se ke dinamik yo pou chak kontwolè yo pa imedyatman vizib. Ou dwe gade pou li nan tablo kontwolè a, klasman pa Pifò tan konsome:

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Lis abityèl kontwolè yo disponib nan tab la Eksplore:

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Nan kèk fason, tab sa a se okoumansman de Datadog e mwen renmen li pi bon pase youn nan menm jan an nan New Relic.

Ou ka elaji chak tranzaksyon epi wè sa aplikasyon an t ap fè:

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Panèl la se tou plis okoumansman de Datadog: gen yon kantite demann, yon foto jeneral nan apèl yo. Panèl anlè a bay yon tab erè Echèk HTTP ak egzanp demann dousman Tras sesyon:

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Si ou ale nan yon tranzaksyon, ou ka wè yon egzanp nan yon tras, ou ka jwenn yon lis demann nan baz done a epi gade nan tèt demann yo. Tout bagay sanble ak New Relic:

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

An jeneral, Atatus kontan ak tras detaye - san yo pa tipik New Relic kole nan apèl nan yon blòk rapèl:

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus
Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Sepandan, li manke yon filtè ki (tankou New Relic) ta koupe demann ultra-rapid (<5ms). Nan lòt men an, mwen te renmen ekspozisyon an nan repons final la tranzaksyon (siksè oswa erè).

Komite baz done pral ede w etidye demann yo nan baz done ekstèn ke aplikasyon an fè. Kite m fè w sonje ke Atatus te jwenn sèlman PostgreSQL ak MySQL, byenke Redis ak memcached yo patisipe tou nan pwojè a.

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Demann yo klase selon kritè nòmal yo: frekans repons, tan repons mwayèn, ak sou sa. Mwen ta renmen tou mansyone tab la ak demann ki pi dousman yo - li trè pratik. Anplis, done ki nan tab sa a pou PostgreSQL kowenside ak done ki soti nan ekstansyon an pg_stat_statements - rezilta ekselan!

Pa New Relic pou kont li: yon gade nan Datadog ak Atatus

Tab Demann ekstèn konplètman idantik ak baz done.

Jwenn

Tou de zouti prezante yo fè byen nan wòl APM. Nenpòt nan yo ka ofri minimòm ki nesesè yo. Enpresyon nou yo ka rezime yon ti tan jan sa a:

datadog

Pou:

  • orè tarif pratik (APM koute 31 USD pou chak lame);
  • te travay byen ak Python;
  • Posiblite pou entegrasyon ak OpenTracing
  • entegrasyon ak Kubernetes;
  • entegrasyon ak NGINX Ingress.

Kont:

  • sèl APM ki te lakòz aplikasyon an vin pa disponib akòz yon erè modil (predis);
  • fèb PHP oto-instrumentation;
  • an pati etranj definisyon sèvis yo ak objektif yo.

Atatis

Pou:

  • fon enstriman PHP;
  • koòdone itilizatè ki sanble ak New Relic.

Kont:

  • pa travay sou pi gran sistèm operasyon (Ubuntu 12.05, CentOS 5);
  • fèb oto-instrumentation;
  • sipò pou sèlman de lang (Node.js ak PHP);
  • Dousman koòdone.

Lè nou konsidere pri 69 USD Atatus pou chak mwa pou chak sèvè, nou ta pito itilize Datadog, ki byen entegre ak bezwen nou yo (aplikasyon entènèt nan K8s) e ki gen anpil karakteristik itil.

PS

Li tou sou blog nou an:

Sous: www.habr.com

Add nouvo kòmantè