Net New Relic allinne: in blik op Datadog en Atatus

Net New Relic allinne: in blik op Datadog en Atatus

Yn 'e omjouwing fan SRE / DevOps-yngenieurs sil it gjinien fernuverje dat ien dei in kliïnt (as in kontrôlesysteem) ferskynt en meldt dat "alles ferlern is": de side wurket net, betellingen geane net troch, it libben ferfalt ... Hoefolle jo yn sa'n situaasje ek helpe wolle, dit dwaan sûnder in ienfâldich en begryplik ark kin heul lestich wêze. Faak is it probleem ferburgen yn 'e applikaasjekoade sels, jo moatte it gewoan lokalisearje.

En yn fertriet en yn freugde ...

It barde sa dat wy lang en djip fereale wurden binne op New Relic. It wie en bliuwt in poerbêst ark foar it kontrolearjen fan applikaasjeprestaasjes, en lit jo ek de mikroservicearsjitektuer ynstrumintearje (mei syn agent) en folle, folle mear. En alles koe west hawwe great as it wiene net foar feroarings yn de tsjinst priisbelied: it kosten fan fan 2013 jier groeide 3+ kear. Derneist, sûnt ferline jier, it krijen fan in proefakkount fereasket kommunikaasje mei in persoanlike manager, wat it dreech makket om it produkt oan in potinsjele klant te presintearjen.

De gewoane situaasje: New Relic is net nedich op in "permaninte basis" se ûnthâlde it allinnich op it momint dat problemen begjinne. Mar jo moatte noch regelmjittich betelje (140 USD per tsjinner per moanne), en yn in automatysk skaalfergrutting fan wolkeynfrastruktuer binne de sommen frij grut. Hoewol d'r in Pay-As-You-Go-opsje is, sil it ynskeakeljen fan New Relic fereaskje dat jo de applikaasje opnij starte, wat kin liede ta it ferlies fan 'e problematyske situaasje wêrfoar it allegear begon is. Net lang lyn yntrodusearre New Relic in nij taryfplan - essentials, - dat op it earste each liket op in ridlik alternatyf foar Professional ... mar by neier ûndersyk die bliken dat guon wichtige funksjes ûntbrekke (benammen hat it net Key Transaksjes, Cross Application Tracing, Ferspraat Tracing).

As gefolch hawwe wy begon te tinken oer it sykjen nei in goedkeaper alternatyf, en ús kar foel op twa tsjinsten: Datadog en Atatus. Wêrom op harren?

Oer konkurrinten

Lit my daliks sizze dat der oare oplossings op 'e merk binne. Wy hawwe sels Open Source-opsjes beskôge, mar net elke kliïnt hat frije kapasiteit om sels-hoste oplossingen te hostjen ... - boppedat sille se ekstra ûnderhâld fereaskje. It pear dat wy útkeazen blykte it tichtst by te wêzen ús behoeften:

  • ynboude en ûntwikkele stipe foar PHP-applikaasjes (stapel fan ús kliïnten is heul ferskaat, mar dit is in dúdlike lieder yn 'e kontekst fan sykjen nei in alternatyf foar New Relic);
  • betelbere kosten (minder dan 100 USD per moanne per host);
  • automatyske ynstrumintaasje;
  • yntegraasje mei Kubernetes;
  • De oerienkomst mei de New Relic-ynterface is in merkber pluspunt (om't ús yngenieurs der oan wend binne).

Dêrom hawwe wy yn 'e earste seleksjefaze ferskate oare populêre oplossingen elimineare, en yn it bysûnder:

  • Tideways, AppDynamics en Dynatrace - foar kosten;
  • Stackify is blokkearre yn 'e Russyske Federaasje en toant te min gegevens.

De rest fan it artikel is sa opboud dat de oanbelangjende oplossings earst koart presintearre wurde, wêrnei't ik sil prate oer ús typyske ynteraksje mei New Relic en ûnderfining / yndrukken fan it útfieren fan ferlykbere operaasjes yn oare tsjinsten.

Presintaasje fan selektearre konkurrinten

Net New Relic allinne: in blik op Datadog en Atatus
op New Relic, wierskynlik elkenien hat heard? Dizze tsjinst begon syn ûntwikkeling mear dan 10 jier lyn, yn 2008. Wy hawwe it aktyf brûkt sûnt 2012 en hawwe gjin problemen mei yntegrearjen fan in echt grut oantal applikaasjes yn PHP, Ruby en Python, en wy hawwe ek ûnderfining mei yntegrearjen mei C # en Go. De auteurs fan 'e tsjinst hawwe oplossingen foar tafersjoch op applikaasjes, ynfrastruktuer, tracing fan mikroservice-ynfrastruktuer, makke handige applikaasjes foar brûkersapparaten, en folle mear.

De New Relic-agint rint lykwols op proprietêre protokollen en stipet gjin OpenTracing. Avansearre ynstrumintaasje fereasket bewurkingen spesifyk foar New Relic. Uteinlik is Kubernetes-stipe noch eksperiminteel.

Net New Relic allinne: in blik op Datadog en Atatus
Begûn syn ûntwikkeling yn 2010 datadog sjocht der merkber nijsgjirriger út dan New Relic krekt yn termen fan gebrûk yn Kubernetes-omjouwings. Benammen stipet it yntegraasje mei NGINX Ingress, logsammeling, statsd en OpenTracing-protokollen, wêrtroch jo in brûkersfersyk kinne folgje fanôf it momint dat it is ferbûn mei foltôging, en ek logs fine foar dit fersyk (beide op 'e webserverside en op de konsumint).

By it brûken fan Datadog, wy tsjinkaam dat it soms boud de microservice kaart ferkeard, en guon technyske tekortkomingen. Bygelyks, it misidentifisearre it tsjinsttype (fersinne Django foar in cachingtsjinst) en feroarsake 500 flaters yn in PHP-applikaasje mei de populêre Predis-bibleteek.

Net New Relic allinne: in blik op Datadog en Atatus
Atatus - it jongste ynstrumint; de tsjinst waard lansearre yn 2014. It marketingbudzjet is dúdlik inferior foar de neamde konkurrinten, fermeldingen binne folle minder gewoan. It ark sels is lykwols tige ferlykber mei New Relic, net allinich yn syn mooglikheden (APM, Browser monitoring, ensfh.), Mar ek yn uterlik.

In wichtige tekoart is dat it allinich Node.js en PHP stipet. Oan 'e oare kant wurdt it merkber better ymplementearre dan Datadog. Oars as de lêste hat Atatus gjin applikaasjes nedich om wizigingen te meitsjen of ekstra labels ta te foegjen oan 'e koade.

Hoe't wy wurkje mei New Relic

Litte wy no útfine hoe't wy yn 't algemien New Relic brûke. Litte wy sizze dat wy in probleem hawwe dat in oplossing nedich is:

Net New Relic allinne: in blik op Datadog en Atatus

It is maklik te sjen op 'e grafyk plons - Litte wy it analysearje. Yn New Relic wurde webtransaksjes fuortendaliks selektearre foar in webapplikaasje, alle komponinten wurde oanjûn yn 'e prestaasjesgrafyk, d'r binne flater-rate, request-rate panielen ... Wat it wichtichste is dat jo direkt fan dizze panielen kinne ferpleatse tusken ferskate dielen fan 'e applikaasje (bygelyks klikke op MySQL sil liede ta de database seksje).

Sûnt yn it foarbyld ûnder beskôging sjogge wy in tanimming yn aktiviteit PHP, klikje op dizze kaart en gean automatysk nei transaksjes:

Net New Relic allinne: in blik op Datadog en Atatus

De list mei transaksjes, dy't yn essinsje binne kontrôlers fan it MVC-model, is al sortearre troch Meast tiidslinend, wat tige handich is: wy sjogge daliks wat de applikaasje docht. Hjir binne foarbylden fan lange fragen dy't automatysk wurde sammele troch New Relic. Troch sortearring te wikseljen is it maklik te finen:

  • de meast laden applikaasje controller;
  • meast frege controller;
  • de stadichste fan de controllers.

Derneist kinne jo elke transaksje útwreidzje en sjen wat de applikaasje die op it stuit dat de koade waard útfierd:

Net New Relic allinne: in blik op Datadog en Atatus

Uteinlik bewarret de applikaasje foarbylden fan spoaren fan lange oanfragen (dy't mear dan 2 sekonden duorje). Hjir is it paniel foar in lange transaksje:

Net New Relic allinne: in blik op Datadog en Atatus

It kin sjoen wurde dat twa metoaden in protte tiid nimme, en tagelyk wurde de tiid doe't it fersyk útfierd waard, syn URI en domein ek werjûn. Hiel faak helpt dit om it fersyk te finen yn 'e logs. Gean nei Trace details, kinne jo sjen wêr't dizze metoaden wurde neamd:

Net New Relic allinne: in blik op Datadog en Atatus

En yn Databankfragen - evaluearje fragen nei databases dy't waarden útfierd wylst de applikaasje rûn:

Net New Relic allinne: in blik op Datadog en Atatus

Bewapene mei dizze kennis kinne wy ​​evaluearje wêrom't de applikaasje fertraget en gearwurkje mei de ûntwikkelder om in strategy te kommen om it probleem op te lossen. Yn 'e realiteit jout New Relic net altyd in dúdlik byld, mar it helpt om de fektor fan ûndersyk te kiezen:

  • lang PDO::Construct late ús ta it nuvere funksjonearjen fan pgpoll;
  • ynstabiliteit oer tiid Memcache::Get suggerearre dat de firtuele masine is konfigurearre ferkeard;
  • in fertocht ferhege tiid foar sjabloan ferwurking late ta in nêst lus kontrolearjen de oanwêzigens fan 500 avatars yn it objekt opslach;
  • ensafuorthinne…

It bart ek dat ynstee fan koade út te fieren, wat relatearre oan eksterne gegevens opslach groeit op it haadskerm - en it makket net út wat it sil wêze: Redis of PostgreSQL - se binne allegear ferburgen yn 'e ljepper databases.

Net New Relic allinne: in blik op Datadog en Atatus

Jo kinne in spesifike basis selektearje foar ûndersyk en fragen sortearje - fergelykber mei hoe't it wurdt dien yn Transaksjes. En troch te gean nei it ljepblêd fersyk, kinne jo sjen hoefolle kearen dit fersyk foarkomt yn elk fan 'e applikaasjecontrollers, en ek skatte hoe faak it wurdt neamd. It is tige noflik:

Net New Relic allinne: in blik op Datadog en Atatus

De ljepper befettet ferlykbere gegevens Eksterne Tsjinsten, dy't fersiken ferberget foar eksterne HTTP-tsjinsten, lykas tagong ta objektopslach, ferstjoeren fan eveneminten nei sentry, of sa. De ynhâld fan it ljepblêd is folslein gelyk oan Databases:

Net New Relic allinne: in blik op Datadog en Atatus

Konkurrinten: kânsen en yndrukken

No is it meast nijsgjirrige ding om de mooglikheden fan New Relic te fergelykjen mei wat konkurrinten biede. Spitigernôch wiene wy ​​net yn steat om alle trije ark te testen op ien ferzje fan ien applikaasje dy't yn produksje draait. Wy besochten lykwols situaasjes/konfiguraasjes te fergelykjen dy't sa identyk mooglik wiene.

1.Datadog

Datadog begroetet ús mei in paniel mei in muorre fan tsjinsten:

Net New Relic allinne: in blik op Datadog en Atatus

It besiket applikaasjes te brekken yn komponinten / mikrotsjinsten, dus yn it foarbyld Django-applikaasje sille wy 2 ferbiningen sjen nei PostgreSQL (defaultdb и postgres), lykas Selderij, Redis. Wurkje mei Datadog fereasket dat jo minimale kennis hawwe fan MVC-prinsipes: jo moatte begripe wêr't brûkersoanfragen oer it algemien weikomme. Dit helpt meastentiids tsjinsten map:

Net New Relic allinne: in blik op Datadog en Atatus

Trouwens, d'r is wat ferlykber yn New Relic:

Net New Relic allinne: in blik op Datadog en Atatus

... en har kaart, nei myn miening, wurdt ienfâldiger en dúdliker makke: it toant net de komponinten fan ien applikaasje (wat it te detaillearre soe meitsje, lykas yn it gefal fan Datadog), mar allinich spesifike tsjinsten of mikrotsjinsten.

Litte wy weromgean nei Datadog: fan 'e tsjinstkaart kinne wy ​​sjen dat brûkersoanfragen nei Django komme. Litte wy nei de Django-tsjinst gean en úteinlik sjen wat wy ferwachte:

Net New Relic allinne: in blik op Datadog en Atatus

Spitigernôch is d'r standert gjin grafyk hjir Web transaksje tiid, fergelykber mei wat wy sjogge op it haadpaniel New Relic. It kin lykwols konfigureare wurde yn plak fan it skema % fan tiid bestege. It is genôch om it te wikseljen nei Avg tiid per fersyk by Type... en no sjocht de bekende grafyk nei ús!

Net New Relic allinne: in blik op Datadog en Atatus

Wêrom Datadog in oare kaart keas is foar ús in mystearje. In oar frustrerend ding is dat it systeem de kar fan 'e brûker net ûnthâldt (oars as beide konkurrinten), en dêrom is de ienige oplossing om oanpaste panielen te meitsjen.

Mar ik wie bliid mei de mooglikheid yn Datadog om te wikseljen út dizze grafiken nei de metriken fan besibbe tsjinners, lês de logs en evaluearje de lading op 'e web tsjinner handlers (Gunicorn). Alles is hast itselde as yn New Relic ... en sels in bytsje mear (logs)!

Under de grafiken binne transaksjes folslein fergelykber mei New Relic:

Net New Relic allinne: in blik op Datadog en Atatus

Yn Datadog wurde transaksjes neamd middels. Jo kinne controllers sortearje op it oantal oanfragen, troch gemiddelde reaksjetiid, en troch de maksimale tiid bestege foar in selektearre perioade.

Jo kinne de boarne útwreidzje en alles sjen dat wy al hawwe waarnommen yn New Relic:

Net New Relic allinne: in blik op Datadog en Atatus

D'r binne statistiken oer de boarne, in generalisearre list fan ynterne oproppen, en foarbylden fan oanfragen dy't kinne wurde sorteare troch antwurdkoade ... Trouwens, ús yngenieurs hawwe dizze sortearring echt leuk.

Elke foarbyldboarne yn Datadog kin wurde iepene en studearre:

Net New Relic allinne: in blik op Datadog en Atatus

Oanfraachparameters, in gearfettingdiagram fan 'e tiid bestege oan elke komponint, en in wetterfaldiagram dy't de folchoarder fan oproppen toant, wurde presintearre. Jo kinne ek oerskeakelje nei in beamwerjefte fan it wetterfaldiagram:

Net New Relic allinne: in blik op Datadog en Atatus

En it meast nijsgjirrige ding is it besjen fan 'e lading fan' e host wêrop it fersyk waard útfierd en it besjen fan 'e fersyklogs.

Net New Relic allinne: in blik op Datadog en Atatus

Geweldige yntegraasje!

Jo kinne jo ôffreegje wêr't de ljeppers binne databases и Eksterne Tsjinsten, lykas yn New Relic. D'r binne hjir gjinien: om't Datadog de applikaasje ûntbrekt yn komponinten, sil PostgreSQL wurde beskôge in aparte tsjinst, en ynstee fan Eksterne Tsjinsten is it wurdich sykjen aws.storage (it sil gelyk wêze foar elke oare eksterne tsjinst wêr't de applikaasje tagong kin ta).

Net New Relic allinne: in blik op Datadog en Atatus

Hjir is in foarbyld mei postgres:

Net New Relic allinne: in blik op Datadog en Atatus

Yn essinsje is d'r alles wat wy woenen:

Net New Relic allinne: in blik op Datadog en Atatus

Jo kinne sjen hokker "tsjinst" it fersyk kaam út.

It soe net ferkeard wêze om jo te herinnerjen dat Datadog perfekt yntegreart mei NGINX Ingress en kinne jo ein-to-ein tracing útfiere fanôf it momint dat in fersyk yn it kluster komt, en lit jo ek statistysk metriken ûntfange, logs sammelje en hostmetriken .

In enoarm plus fan Datadog is dat syn priis ûntwikkelet út ynfrastruktuer monitoring, APM, Log Management en Synthetics test, i.e. Jo kinne jo plan fleksibel kieze.

2. Atatus

It Atatus-team beweart dat har tsjinst "itselde is as New Relic, mar better." Litte wy sjen oft dit echt sa is.

It haadpaniel liket lykwols gelyk, mar it wie net mooglik om de Redis en memcached te bepalen dy't brûkt wurde yn 'e applikaasje.

Net New Relic allinne: in blik op Datadog en Atatus

APM selekteart standert alle transaksjes, hoewol gewoanlik allinich webtransaksjes nedich binne. Lykas Datadog is d'r gjin manier om te navigearjen nei de winske tsjinst fanút it haadpaniel. Boppedat, transaksjes wurde fermeld nei flaters, dat liket net hiel logysk foar APM.

Yn Atatus-transaksjes is alles sa fergelykber mooglik mei New Relic. It neidiel is dat de dynamyk foar elke controller net direkt sichtber is. Jo moatte sykje it yn 'e controller tafel, sortearjen troch Meast tiid ferbrûkt:

Net New Relic allinne: in blik op Datadog en Atatus

De gewoane list fan controllers is beskikber yn 'e ljepper Ferkenne:

Net New Relic allinne: in blik op Datadog en Atatus

Op guon manieren docht dizze tabel tinken oan Datadog en ik fyn it better dan de ferlykbere yn New Relic.

Jo kinne elke transaksje útwreidzje en sjen wat de applikaasje die:

Net New Relic allinne: in blik op Datadog en Atatus

It paniel docht ek mear tinken oan Datadog: der is in oantal oanfragen, in algemien byld fan oproppen. It boppeste paniel jout in flater ljepper HTTP mislearrings en foarbylden fan trage queries Sesje Spoaren:

Net New Relic allinne: in blik op Datadog en Atatus

As jo ​​nei in transaksje gean, kinne jo in foarbyld fan in spoar sjen, jo kinne in list mei oanfragen krije nei de databank en sjoch nei de fersykkoppen. Alles is gelyk oan New Relic:

Net New Relic allinne: in blik op Datadog en Atatus

Yn 't algemien wie Atatus bliid mei detaillearre spoaren - sûnder de typyske New Relic-lymjen fan oproppen yn in herinneringsblok:

Net New Relic allinne: in blik op Datadog en Atatus
Net New Relic allinne: in blik op Datadog en Atatus

It mist lykwols in filter dat (lykas New Relic) ultrasnelle oanfragen (<5ms) soe ôfsnien wurde. Oan 'e oare kant fûn ik it werjaan fan' e definitive transaksje-antwurd (súkses as flater) leuk.

Panel databases sil jo helpe om de oanfragen nei eksterne databases te studearjen dy't de applikaasje makket. Lit my jo herinnerje dat Atatus allinich PostgreSQL en MySQL fûn, hoewol Redis en memcached ek belutsen binne by it projekt.

Net New Relic allinne: in blik op Datadog en Atatus

Oanfragen wurde sortearre neffens de gewoane kritearia: antwurdfrekwinsje, gemiddelde antwurdtiid, ensfh. Ik wol ek de ljepper mei de stadichste fragen neame - it is heul handich. Boppedat foelen de gegevens yn dizze ljepper foar PostgreSQL gear mei de gegevens fan 'e tafoeging pg_stat_statements - poerbêst resultaat!

Net New Relic allinne: in blik op Datadog en Atatus

Tab Eksterne oanfragen folslein identyk oan Databases.

befinings

Beide presintearre ark diene goed yn 'e rol fan APM. Elk fan har kin it fereaske minimum oanbiede. Us yndrukken kinne as folget koart gearfette wurde:

datadog

Pros:

  • handich tarifskema (APM kostet 31 USD per host);
  • wurke goed mei Python;
  • Mooglikheid fan yntegraasje mei OpenTracing
  • yntegraasje mei Kubernetes;
  • yntegraasje mei NGINX Ingress.

Cons:

  • de ienige APM dy't feroarsake dat de applikaasje net beskikber waard troch in moduleflater (predis);
  • swak PHP auto-ynstrumintaasje;
  • foar in part nuvere definysje fan tsjinsten en harren doel.

Atatus

Pros:

  • djippe PHP ynstrumintaasje;
  • brûkersynterface fergelykber mei New Relic.

Cons:

  • wurket net op âldere bestjoeringssystemen (Ubuntu 12.05, CentOS 5);
  • swak auto-ynstrumintaasje;
  • stipe foar mar twa talen (Node.js en PHP);
  • Slow ynterface.

Sjoen Atatus 'priis fan 69 USD per moanne per tsjinner, wy soene leaver Datadog brûke, dy't goed yntegreart mei ús behoeften (webapplikaasjes yn K8's) en hat in protte nuttige funksjes.

PS

Lês ek op ús blog:

Boarne: www.habr.com

Add a comment