Not New Relic solu: ​​un sguardu à Datadog è Atatus

Not New Relic solu: ​​un sguardu à Datadog è Atatus

In l'ambienti di l'ingegneri SRE / DevOps, ùn sorprenderà à nimu chì un ghjornu un cliente (o un sistema di surviglianza) apparisce è informa chì "tuttu hè persu": u situ ùn funziona micca, i pagamenti ùn passanu micca, a vita hè in decadenza. ... Ùn importa micca quantu vulete aiutà in una tale situazione, pò esse assai difficiule di fà questu senza un strumentu simplice è comprensibile. Spessu u prublema hè oculatu in u codice di l'applicazione stessu; basta à localizà lu.

È in tristezza è in gioia…

Hè accadutu chì avemu longu è prufondamente innamuratu di New Relic. Era è resta un strumentu eccellente per monitorizà u rendiment di l'applicazioni, è permette ancu di strumentà l'architettura di u microserviziu (usendu u so agente) è assai, assai più. È tuttu puderia esse grande s'ellu ùn era micca per cambiamenti in a pulitica di prezzu di u serviziu: it costu di da l'annu 2013 crisciutu 3+ volte. Inoltre, da l'annu passatu, ottene un cuntu di prova hè bisognu di cumunicazione cù un manager persunale, chì rende difficiule di prisentà u pruduttu à un cliente potenziale.

A situazione abituale: New Relic ùn hè micca necessariu nantu à una "basa permanente"; si ricordanu solu in u mumentu chì i prublemi cumincianu. Ma avete sempre bisognu di pagà regularmente (140 USD per servitore per mese), è in una infrastruttura di nuvola chì scala automaticamente i sume aghjunghjenu abbastanza grande. Ancu s'ellu ci hè una opzione Pay-As-You-Go, l'attivazione di New Relic hà bisognu di riavvia l'applicazione, chì pò purtà à a perdita di a situazione problematica per a quale era tuttu iniziatu. Pocu pocu fà, New Relic hà introduttu un novu pianu di tariffu - Passaddi, - chì à u primu sguardu s'assumiglia à una alternativa raghjone à Prufessiunale... ma dopu à un esame più attentu, si scopre chì alcune funzioni impurtanti sò mancanti (in particulare, ùn hà micca Transazzioni chjave, Cross Application Tracing, Tracciamentu distribuitu).

In u risultatu, avemu principiatu à pensà à circà una alternativa più economica, è a nostra scelta hè cascata nantu à dui servizii: Datadog è Atatus. Perchè nantu à elli?

Circa i cuncurrenti

Lasciami dì subitu chì ci sò altre suluzioni nantu à u mercatu. Avemu ancu cunzidiratu l'opzioni Open Source, ma micca tutti i clienti anu capacità libera per accoglie suluzioni self-hosted ... - in più, anu bisognu di mantenimentu supplementu. A coppia chì avemu sceltu hè stata a più vicina i nostri bisogni:

  • supportu integratu è sviluppatu per l'applicazioni PHP (a pila di i nostri clienti hè assai diversa, ma questu hè un capu chjaru in u cuntestu di a ricerca di una alternativa à New Relic);
  • costu assequible (menu di 100 USD per mese per host);
  • strumentu autumàticu;
  • integrazione cù Kubernetes;
  • A similarità cù l'interfaccia New Relic hè un plus notevuli (perchè i nostri ingegneri sò abituati).

Dunque, in a fase iniziale di selezzione, avemu eliminatu parechje altre soluzioni populari, è in particulare:

  • Tideways, AppDynamics è Dynatrace - per u costu;
  • Stackify hè bluccatu in a Federazione Russa è mostra troppu pocu dati.

U restu di l'articulu hè strutturatu in tale manera chì e suluzioni in quistione seranu prima presentate brevemente, dopu à quale parleraghju di a nostra interazzione tipica cù New Relic è l'esperienza / impressioni da fà operazioni simili in altri servizii.

Presentazione di i cuncurrenti selezziunati

Not New Relic solu: ​​un sguardu à Datadog è Atatus
nantu New Relic, probabilmente tutti l'anu intesu? Stu serviziu hà iniziatu u so sviluppu più di 10 anni fà, in u 2008. L'avemu utilizatu attivamente da u 2012 è ùn avemu micca avutu prublemi per integrà un gran numaru d'applicazioni in PHP, Ruby è Python, è avemu avutu ancu sperienza in integrazione cù C# è Go. L'autori di u serviziu anu suluzioni per u monitoraghju di l'applicazioni, l'infrastruttura, a traccia di l'infrastrutture di microserviziu, creanu applicazioni convenienti per i dispositi d'utilizatori, è assai più.

Tuttavia, l'agente New Relic funziona nantu à protokolli proprietarii è ùn sustene micca OpenTracing. A strumentazione avanzata richiede edizioni specificamente per New Relic. Infine, u supportu Kubernetes hè sempre sperimentale.

Not New Relic solu: ​​un sguardu à Datadog è Atatus
Accuminciau u so sviluppu in u 2010 datadog pari notevolmente più interessante di New Relic precisamente in termini di usu in ambienti Kubernetes. In particulare, sustene l'integrazione cù NGINX Ingress, cullizzioni di log, statsd è protokolli OpenTracing, chì vi permette di seguità una dumanda di l'utilizatori da u mumentu chì hè cunnessu à a fine, è ancu di truvà logs per sta dumanda (sia in u latu di u servitore web). è nantu à u cunsumadore).

Quandu aduprendu Datadog, avemu scontru chì qualchì volta hà custruitu a mappa di u microserviziu in modu incorrectu, è alcune carenze tecniche. Per esempiu, hà misidentified u tipu di serviziu (micca Django per un serviziu di caching) è hà causatu 500 errori in una applicazione PHP utilizendu a famosa biblioteca Predis.

Not New Relic solu: ​​un sguardu à Datadog è Atatus
Atatus - u più chjucu strumentu; u serviziu hè statu lanciatu in 2014. U so budgetu di marketing hè chjaramente inferjuri à i cuncurrenti listati, menzioni sò assai menu cumuni. Tuttavia, u strumentu stessu hè assai simili à New Relic, micca solu in i so capacità (APM, surviglianza di u navigatore, etc.), ma ancu in l'apparenza.

Un inconveniente significativu hè chì sustene solu Node.js è PHP. Per d 'altra banda, hè implementatu notevolmente megliu cà Datadog. A diversità di l'ultimi, Atatus ùn hà micca bisognu di l'applicazioni per fà mudificazioni o aghjunghje etichette supplementari à u codice.

Cumu travaglià cù New Relic

Avà scopremu cumu usemu in generale New Relic. Diciamu chì avemu un prublema chì hà bisognu di una suluzione:

Not New Relic solu: ​​un sguardu à Datadog è Atatus

Hè faciule vede nantu à u graficu splash - Analizemu. In New Relic, e transazzione web sò immediatamente selezziunati per una applicazione web, tutti i cumpunenti sò indicati in u graficu di rendiment, ci sò pannelli di tassu d'errore, tassi di dumanda ... Ciò chì hè più impurtante hè chì direttamente da questi pannelli pudete spustà trà e diverse. parti di l'appiecazione (per esempiu, clicchendu nant'à MySQL purtarà à a sezione di basa di dati).

Siccomu in l'esempiu in cunsiderà vedemu una crescita di l'attività PHP, cliccate nant'à stu graficu è andate automaticamente à Memorie:

Not New Relic solu: ​​un sguardu à Datadog è Atatus

A lista di e transazzione, chì sò essenzialmente cuntrolli da u mudellu MVC, hè digià ordinatu A maiò parte di u tempu, chì hè assai cunvene: vedemu immediatamente ciò chì l'applicazione faci. Eccu esempi di dumande longu chì sò automaticamente cullate da New Relic. Cambiendu a classificazione, hè faciule di truvà:

  • u controller di l'applicazione più carica;
  • controller più frequentemente dumandatu;
  • u più lento di i cuntrolli.

Inoltre, pudete espansione ogni transazzione è vede ciò chì l'applicazione facia à u mumentu chì u codice hè statu eseguitu:

Not New Relic solu: ​​un sguardu à Datadog è Atatus

Infine, l'applicazione guarda esempi di tracce di dumande longu (quelli chì piglianu più di 2 seconde). Eccu u pannellu per una transazzione longa:

Not New Relic solu: ​​un sguardu à Datadog è Atatus

Pò esse vistu chì dui metudi piglianu assai tempu, è à u stessu tempu u tempu quandu a dumanda hè stata eseguita, u so URI è u duminiu sò ancu mostrati. Moltu spessu questu aiuta à truvà a dumanda in i logs. In traccia d'andà à Trace dettagli, pudete vede induve sti metudi sò chjamati da:

Not New Relic solu: ​​un sguardu à Datadog è Atatus

E in Quistioni di basa di dati - valutate e dumande à e basa di dati chì sò state eseguite mentre l'applicazione era in esecuzione:

Not New Relic solu: ​​un sguardu à Datadog è Atatus

Armatu di sta cunniscenza, pudemu valutà perchè l'applicazione rallenta è travaglià cù u sviluppatore per vene cun una strategia per risolve u prublema. In realità, New Relic ùn sempre dà una stampa chjara, ma aiuta à sceglie u vettore di investigazione:

  • longu PDO::Construct ci hà purtatu à u stranu funziunamentu di pgpoll;
  • inestabilità in u tempu Memcache::Get suggeriu chì a macchina virtuale hè stata cunfigurata incorrectamente;
  • un tempu suspiciosamente aumentatu per u processu di mudelli hà purtatu à un ciclu nidificatu chì verifica a presenza di 500 avatars in u almacenamentu di l'ughjettu;
  • eccetera…

Succede ancu chì invece di eseguisce u codice, qualcosa ligatu à l'almacenamiento di dati esterni cresce nantu à a pantalla principale - è ùn importa micca ciò chì serà: Redis o PostgreSQL - sò tutti oculati in a tabulazione. e base.

Not New Relic solu: ​​un sguardu à Datadog è Atatus

Pudete selezziunate una basa specifica per a ricerca è sorte e dumande - simile à cumu si faci in Transacciones. È andendu à a tabulazione di a dumanda, pudete vede quante volte sta dumanda si trova in ognuna di i cuntrolli di l'applicazione, è ancu stima quante volte hè chjamata. Hè assai còmode:

Not New Relic solu: ​​un sguardu à Datadog è Atatus

A tabulazione cuntene dati simili Servizi esterni, chì oculta e dumande à i servizii HTTP esterni, cum'è l'accessu à l'almacenamiento d'ughjettu, l'inviu di l'avvenimenti à a sentinella, o simili. U cuntenutu di a tabulazione hè cumplettamente simili à basa di dati:

Not New Relic solu: ​​un sguardu à Datadog è Atatus

Cuncurrenti: opportunità è impressioni

Avà u più interessante hè di paragunà e capacità di New Relic cù ciò chì i cuncurrenti offrenu. Sfurtunatamente, ùn pudemu micca pruvà tutti i trè strumenti nantu à una versione di una applicazione chì funziona in produzzione. Tuttavia, avemu pruvatu à paragunà situazioni / cunfigurazioni chì eranu u più idèntica pussibule.

1.Datadog

Datadog ci saluta cù un pannellu cù un muru di servizii:

Not New Relic solu: ​​un sguardu à Datadog è Atatus

Pruvate di rompe l'applicazioni in cumpunenti / microservizii, cusì in l'esempiu di l'applicazione Django vedemu 2 cunnessione à PostgreSQL (defaultdb и postgres), cum'è Celery, Redis. U travagliu cù Datadog richiede di avè una cunniscenza minima di i principii MVC: avete bisognu di capisce da induve venenu generalmente e richieste di l'utilizatori. Questu generalmente aiuta mappa di servizii:

Not New Relic solu: ​​un sguardu à Datadog è Atatus

Per via, ci hè qualcosa simili in New Relic:

Not New Relic solu: ​​un sguardu à Datadog è Atatus

... è a so mappa, in u mo parè, hè fatta più simplice è più chjaru: ùn mostra micca i cumpunenti di una applicazione (chì a faria troppu dettagliata, cum'è in u casu di Datadog), ma solu servizii specifichi o microservizii.

Riturnemu à Datadog: da a mappa di serviziu pudemu vede chì e dumande di l'utilizatori venenu à Django. Andemu à u serviziu Django è infine vede ciò chì avemu aspittatu:

Not New Relic solu: ​​un sguardu à Datadog è Atatus

Sfortunatamente, ùn ci hè micca un graficu quì per difettu Tempu di transazzione Web, simile à ciò chì vedemu nantu à u principale New Relic panel. Tuttavia, pò esse cunfiguratu in u locu di u calendariu % di u tempu passatu. Hè abbastanza per cambià à Tempu mediu per dumanda per Tipu... è avà u graficu familiare ci guarda !

Not New Relic solu: ​​un sguardu à Datadog è Atatus

Perchè Datadog hà sceltu una carta diversa hè un misteru per noi. Un'altra cosa frustrante hè chì u sistema ùn ricorda micca a scelta di l'utilizatori (a cuntrariu di i dui cuncurrenti), è per quessa l'unica suluzione hè di creà pannelli persunalizati.

Ma eru cuntentu di l'abilità in Datadog per passà da questi grafici à e metriche di i servitori rilativi, leghje i logs è evaluà a carica nantu à i gestori di u servitore web (Gunicorn). Tuttu hè quasi listessa cum'è in New Relic ... è ancu un pocu di più (logs) !

Sottu i grafici sò transazzioni cumpletamente simili à New Relic:

Not New Relic solu: ​​un sguardu à Datadog è Atatus

In Datadog, e transacciones sò chjamati risorse. Pudete classificà i cuntrolli per u numeru di richieste, per u tempu di risposta mediu, è per u tempu massimu passatu per un periudu di tempu sceltu.

Pudete espansione a risorsa è vede tuttu ciò chì avemu digià osservatu in New Relic:

Not New Relic solu: ​​un sguardu à Datadog è Atatus

Ci sò statistiche nantu à a risorsa, una lista generalizata di chjama interna, è esempi di dumande chì ponu esse ordinate per codice di risposta... Per via, i nostri ingegneri anu veramente piaciutu questu sorte.

Ogni risorsa di esempiu in Datadog pò esse aperta è studiata:

Not New Relic solu: ​​un sguardu à Datadog è Atatus

I paràmetri di dumanda, un graficu riassuntu di u tempu passatu nantu à ogni cumpunente, è un graficu cascata chì mostra a sequenza di chjamate sò presentati. Pudete ancu cambià à una vista di l'arburu di a carta di cascata:

Not New Relic solu: ​​un sguardu à Datadog è Atatus

È u più interessante hè di vede a carica di l'ospitu nantu à quale a dumanda hè stata eseguita è vede i logs di dumanda.

Not New Relic solu: ​​un sguardu à Datadog è Atatus

Grande integrazione!

Puderete dumandassi induve sò e tabulazioni e base и Servizi esterni, cum'è in New Relic. Ùn ci hè nimu quì: postu chì Datadog decompone l'applicazione in cumpunenti, PostgreSQL serà cunsideratu un serviziu separatu, è invece di servizii esterni vale a pena di circà aws.storage (sarà simile per ogni altru serviziu esternu chì l'applicazione pò accede).

Not New Relic solu: ​​un sguardu à Datadog è Atatus

Eccu un esempiu cun postgres:

Not New Relic solu: ​​un sguardu à Datadog è Atatus

Essenzialmente ci hè tuttu ciò chì vulemu:

Not New Relic solu: ​​un sguardu à Datadog è Atatus

Pudete vede da quale "serviziu" vene a dumanda.

Ùn saria micca sbagliatu di ricurdà chì Datadog s'integra perfettamente cù NGINX Ingress è vi permette di fà un tracciamentu end-to-end da u mumentu chì una dumanda arriva in u cluster, è vi permette ancu di riceve metriche di statsd, raccoglie logs è metriche d'ospiti. .

Un grande plus di Datadog hè chì u so prezzu sviluppa da u monitoraghju di l'infrastruttura, APM, Log Management è Test di Sintetica, i.e. Pudete sceglie u vostru pianu in modu flexible.

2.Atatus

A squadra Atatus dice chì u so serviziu hè "uguale à New Relic, ma megliu". Videmu s'ellu hè veramente cusì.

U pannellu principale hè simile, ma ùn era micca pussibule di determinà u Redis è u memcached utilizatu in l'applicazione.

Not New Relic solu: ​​un sguardu à Datadog è Atatus

APM selezziunà tutte e transazzione per automaticamente, ancu s'ellu hè tipicu solu e transazzione Web sò necessarii. Cum'è Datadog, ùn ci hè micca manera di navigà à u serviziu desideratu da u pannellu principale. Inoltre, e transazzione sò listati dopu l'errore, chì ùn pare micca assai logicu per APM.

In e transazzioni Atatus, tuttu hè u più simile pussibule à New Relic. U svantaghju hè chì a dinamica per ogni controller ùn hè micca immediatamente visibili. Avete da circà in a tavola di u controller, sortendu per U più tempu cunsumatu:

Not New Relic solu: ​​un sguardu à Datadog è Atatus

A lista abituale di cuntrolli hè dispunibule in a tabulazione Explore:

Not New Relic solu: ​​un sguardu à Datadog è Atatus

In certi modi, sta tavula ricorda Datadog è mi piace megliu cà quella simile in New Relic.

Pudete espansione ogni transazzione è vede ciò chì l'applicazione facia:

Not New Relic solu: ​​un sguardu à Datadog è Atatus

U pannellu hè ancu più reminiscente di Datadog: ci hè una quantità di richieste, una stampa generale di chjama. U pannellu superiore furnisce una tabulazione di errore Falli HTTP è esempi di dumande lente Tracce di sessione:

Not New Relic solu: ​​un sguardu à Datadog è Atatus

Se vai à una transazzione, pudete vede un esempiu di una traccia, pudete ottene una lista di dumande à a basa di dati è fighjate à l'intestazione di a dumanda. Tuttu hè simile à New Relic:

Not New Relic solu: ​​un sguardu à Datadog è Atatus

In generale, Atatus hà piacè cù tracce dettagliate - senza u tipicu New Relic incollamentu di chjama in un bloccu di ricordi:

Not New Relic solu: ​​un sguardu à Datadog è Atatus
Not New Relic solu: ​​un sguardu à Datadog è Atatus

In ogni casu, ùn manca un filtru chì (cum'è New Relic) tagliate e richieste ultra-rapide (<5ms). Per d 'altra banda, mi piaceva a visualizazione di a risposta finale di a transazzione (successu o errore).

Pannellu e base vi aiuterà à studià e dumande à basa di dati esterni chì l'applicazione face. Lasciami ricurdà chì Atatus hà truvatu solu PostgreSQL è MySQL, ancu Redis è memcached sò ancu implicati in u prugettu.

Not New Relic solu: ​​un sguardu à Datadog è Atatus

E dumande sò ordinate secondu i criteri di solitu: freccia di risposta, tempu di risposta mediu, etc. Vogliu ancu mintuvà a tabulazione cù e dumande più lente - hè assai cunvene. Inoltre, i dati in questa tabulazione per PostgreSQL coincidevanu cù e dati da l'estensione pg_stat_statements - un risultatu eccellente!

Not New Relic solu: ​​un sguardu à Datadog è Atatus

Tab Richieste esterne cumplettamente identica à basa di dati.

scuperti

I dui strumenti presentati anu fattu bè in u rolu di APM. Qualchese di elli pò offre u minimu necessariu. E nostre impressioni ponu esse riassunte in breve cum'è seguente:

datadog

Pros:

  • schedu tariffa conveniente (APM costa 31 USD per host);
  • hà travagliatu bè cù Python;
  • Possibilità di integrazione cù OpenTracing
  • integrazione cù Kubernetes;
  • integrazione cù NGINX Ingress.

Cons:

  • l'unicu APM chì hà fattu chì l'applicazione ùn sia micca dispunibule per un errore di modulu (predis);
  • Strumentazione automatica PHP debule;
  • parzialmente strana definizione di servizii è u so scopu.

Atatus

Pros:

  • strumentazione PHP prufonda;
  • interfaccia d'utilizatore simile à New Relic.

Cons:

  • ùn funziona micca in sistemi operativi più vechji (Ubuntu 12.05, CentOS 5);
  • debule auto-instrumentation;
  • supportu per solu duie lingue (Node.js è PHP);
  • Interfaccia lenta.

Cunsiderendu u prezzu di Atatus di 69 USD per mese per servitore, preferimu usà Datadog, chì si integra bè cù i nostri bisogni (applicazioni web in K8s) è hà assai funzioni utili.

PS

Leghjite puru nant'à u nostru blog:

Source: www.habr.com

Add a comment