Net New Relic eleng: e Bléck op Datadog an Atatus

Net New Relic eleng: e Bléck op Datadog an Atatus

Am Ëmfeld vun SRE / DevOps Ingenieuren wäert et keen iwwerraschen datt enges Daags e Client (oder e Iwwerwaachungssystem) erschéngt a bericht datt "alles verluer ass": de Site funktionnéiert net, d'Bezuelungen ginn net duerch, d'Liewen zerfallt ... Egal wéi vill Dir an esou enger Situatioun hëllefe wëllt, dëst ouni einfach a verständlech Tool ze maachen kann ganz schwéier sinn. Dacks ass de Problem am Applikatiounscode selwer verstoppt, Dir musst et just lokaliséieren.

An a Trauer a Freed ...

Et ass sou geschitt datt mir laang an déif verléift mat New Relic gefall sinn. Et war a bleift en exzellenten Tool fir d'Performance vun der Applikatioun ze iwwerwaachen, an erlaabt Iech och d'Mikroservicearchitektur ze instrumentéieren (mat sengem Agent) a vill, vill méi. An alles kéint super gewiescht sinn, wann et net fir Ännerungen an der Präispolitik vum Service waren: et Käschte vun vum 2013 Joer gewuess 3+ Mol. Zousätzlech, zënter d'lescht Joer, erfuerdert d'Erhalen vun engem Testkonto eng Kommunikatioun mat engem perséinleche Manager, wat et schwéier mécht de Produit un engem potenzielle Client ze presentéieren.

Déi üblech Situatioun: Nei Reliquie gëtt net op enger "permanenter Basis" gebraucht, se erënneren et nëmmen am Moment wou d'Problemer ufänken. Awer Dir musst nach ëmmer reegelméisseg bezuelen (140 USD pro Server pro Mount), an an enger automatescher Skaléierung vun der Wollekinfrastruktur sinn d'Zommen zimlech grouss. Och wann et eng Pay-As-You-Go Optioun gëtt, fir New Relic z'aktivéieren, erfuerdert Dir d'Applikatioun nei ze starten, wat zum Verloscht vun der problematescher Situatioun féiere kann, fir déi alles ugefaang huet. Net viru laanger Zäit huet New Relic en neien Tarifplang agefouert - Diskussioun, - wat op den éischte Bléck no enger raisonnabel Alternativ zum Professionnel ausgesäit... mee bei enger méi genee Untersuchung huet sech erausgestallt, datt e puer wichteg Funktiounen fehlen (besonnesch et huet net Schlëssel Transaktiounen, Cross Application Tracing, Verdeelt Tracing).

Als Resultat hu mir ugefaang no enger méi bëlleger Alternativ ze denken, an eise Choix ass op zwee Servicer gefall: Datadog an Atatus. Firwat op hinnen?

Iwwer Konkurrenten

Loosst mech direkt soen datt et aner Léisungen um Maart gëtt. Mir hunn souguer Open Source Optiounen ugesinn, awer net all Client huet fräi Kapazitéit fir selwer gehoste Léisungen ze hosten ... - Zousätzlech wäerte se zousätzlech Ënnerhalt erfuerderen. D'Koppel, déi mir gewielt hunn, huet sech am noosten erausgestallt eis Besoinen:

  • agebaut an entwéckelt Ënnerstëtzung fir PHP Uwendungen (eise Clienten Stack ass ganz divers, mä dëst ass e kloere Leader am Kontext vun der Sich no enger Alternativ zu New Relic);
  • bezuelbare Käschten (manner wéi 100 USD pro Mount pro Host);
  • automatesch Instrumenter;
  • Integratioun mat Kubernetes;
  • D'Ähnlechkeet zu der New Relic Interface ass e merkbare Plus (well eis Ingenieure si gewinnt sinn).

Dofir, an der éischter Auswiel Etapp, hu mir e puer aner populär Léisungen eliminéiert, a besonnesch:

  • Tideways, AppDynamics an Dynatrace - fir Käschten;
  • Stackify ass an der russescher Federatioun blockéiert a weist ze wéineg Daten.

De Rescht vum Artikel ass esou strukturéiert datt d'Léisungen an der Fro fir d'éischt kuerz presentéiert ginn, duerno wäert ech iwwer eis typesch Interaktioun mat New Relic an Erfahrung / Impressioune vun der Ausféierung vun ähnlechen Operatiounen an anere Servicer schwätzen.

Presentatioun vun ausgewielte Konkurrenten

Net New Relic eleng: e Bléck op Datadog an Atatus
op New Relic, wahrscheinlech jiddereen huet héieren? Dëse Service huet seng Entwécklung viru méi wéi 10 Joer ugefaang, am Joer 2008. Mir hunn et aktiv zënter 2012 benotzt an hu keng Probleemer mat enger wierklech grousser Unzuel vun Uwendungen an PHP, Ruby a Python z'integréieren, a mir hunn och Erfahrung mat der Integratioun mat C # a Go. D'Auteuren vum Service hunn Léisunge fir d'Iwwerwaachung vun Uwendungen, Infrastrukturen, Tracing vun Mikroserviceinfrastrukturen, erstallt praktesch Uwendungen fir Benotzergeräter a vill méi.

Wéi och ëmmer, den New Relic Agent leeft op propriétaire Protokoller an ënnerstëtzt net OpenTracing. Fortgeschratt Instrumentatioun erfuerdert Ännerunge speziell fir New Relic. Schlussendlech ass Kubernetes Ënnerstëtzung nach ëmmer experimentell.

Net New Relic eleng: e Bléck op Datadog an Atatus
Ugefaang seng Entwécklung am Joer 2010 datenhond gesäit merkbar méi interessant aus wéi New Relic präzis wat d'Benotzung a Kubernetes Ëmfeld ugeet. Besonnesch ënnerstëtzt et Integratioun mat NGINX Ingress, Log Sammlung, Statsd an OpenTracing Protokoller, wat Iech erlaabt eng Benotzerufro aus dem Moment ze verfolgen, datt se mat der Fäerdegstellung verbonne sinn, souwéi Logbicher fir dës Ufro ze fannen (béid op der Webserver Säit). an op de Konsument).

Wann Dir Datadog benotzt, hu mir begéint datt et heiansdo d'Mikroservice Kaart falsch gebaut huet, an e puer technesch Mängel. Zum Beispill huet et de Servicetyp falsch identifizéiert (Django fir e Caching-Service verwiesselt) a verursaacht 500 Feeler an enger PHP-Applikatioun mat der populärer Predis-Bibliothéik.

Net New Relic eleng: e Bléck op Datadog an Atatus
Atatus - dat jéngst Instrument; de Service gouf 2014 gestart. Säi Marketingbudget ass kloer manner wéi déi opgezielt Konkurrenten, Ernimmungen si vill manner heefeg. Wéi och ëmmer, d'Tool selwer ass ganz ähnlech wéi New Relic, net nëmmen a senge Fäegkeeten (APM, Browser Iwwerwachung, etc.), awer och am Erscheinungsbild.

E bedeitende Nodeel ass datt et nëmmen Node.js a PHP ënnerstëtzt. Op der anerer Säit ass et merkbar besser implementéiert wéi Datadog. Am Géigesaz zu deem Leschten erfuerdert Atatus keng Uwendungen fir Ännerungen ze maachen oder zousätzlech Etiketten un de Code ze addéieren.

Wéi mir mat New Relic schaffen

Loosst eis erausfannen wéi mir allgemeng New Relic benotzen. Loosst eis soen datt mir e Problem hunn deen eng Léisung brauch:

Net New Relic eleng: e Bléck op Datadog an Atatus

Et ass einfach op der Grafik ze gesinn sprutzen - Loosst eis et analyséieren. Am New Relic ginn d'Webtransaktiounen direkt fir eng Webapplikatioun ausgewielt, all Komponente ginn an der Leeschtungsgrafik uginn, et gi Feeler-Taux, Ufro-Taux Panelen ... Wat am Wichtegst ass, datt Dir direkt vun dëse Paneele kënnt tëscht verschiddene Deeler vun der Applikatioun (zum Beispill, klickt op MySQL féiert zu der Datebank Sektioun).

Zënter dem Beispill, dee mir berécksiichtegen, gesi mir e Stroum an der Aktivitéit PHP, klickt op dës Grafik a gitt automatesch op Transaktiounen:

Net New Relic eleng: e Bléck op Datadog an Atatus

D'Lëscht vun Transaktiounen, déi am Wesentlechen Controller vum MVC Modell sinn, ass scho sortéiert Déi meescht Zäit opwänneg, wat ganz bequem ass: mir gesinn direkt wat d'Applikatioun mécht. Hei sinn Beispiller vu laangen Ufroen déi automatesch vun New Relic gesammelt ginn. Duerch d'Sortéierung ze wiesselen ass et einfach ze fannen:

  • déi meescht gelueden Applikatiounscontroller;
  • am meeschten ugefrote Controller;
  • de luesste vun de Controller.

Zousätzlech kënnt Dir all Transaktioun ausbauen a kucken wat d'Applikatioun gemaach huet an der Zäit wou de Code ausgefouert gouf:

Net New Relic eleng: e Bléck op Datadog an Atatus

Schlussendlech späichert d'Applikatioun Beispiller vu Spure vu laangen Ufroen (déi méi wéi 2 Sekonnen daueren). Hei ass de Panel fir eng laang Transaktioun:

Net New Relic eleng: e Bléck op Datadog an Atatus

Et kann gesi ginn datt zwou Methoden vill Zäit daueren, a gläichzäiteg d'Zäit wou d'Ufro ausgefouert gouf, gëtt seng URI an d'Domain och gewisen. Ganz oft hëlleft dëst d'Ufro an de Logbicher ze fannen. Goen Spuer Detailer, Dir kënnt gesinn wou dës Methode genannt ginn:

Net New Relic eleng: e Bléck op Datadog an Atatus

An a Datebank Ufroen - evaluéiert Ufroen un Datenbanken déi ausgefouert goufen während d'Applikatioun laafen:

Net New Relic eleng: e Bléck op Datadog an Atatus

Bewaffnet mat dësem Wëssen, kënne mir evaluéieren firwat d'Applikatioun verlangsamt gëtt a mam Entwéckler schaffen fir eng Strategie ze kommen fir de Problem ze léisen. A Wierklechkeet gëtt New Relic net ëmmer e kloert Bild, awer et hëlleft de Vektor vun der Enquête ze wielen:

  • laang PDO::Construct huet eis zum komeschen Fonctionnement vun pgpoll gefouert;
  • Instabilitéit iwwer Zäit Memcache::Get proposéiert datt déi virtuell Maschinn falsch konfiguréiert ass;
  • eng verdächteg erhéicht Zäit fir Schablounveraarbechtung huet zu enger nestéierter Loop gefouert, déi d'Präsenz vu 500 Avataren an der Objektlagerung iwwerpréift;
  • a sou weider…

Et geschitt och datt amplaz vum Code auszeféieren, eppes am Zesummenhang mat externen Datelagerung um Haaptbildschierm wiisst - an et ass egal wat et wäert sinn: Redis oder PostgreSQL - si sinn all am Tab verstoppt Datenbanken.

Net New Relic eleng: e Bléck op Datadog an Atatus

Dir kënnt eng spezifesch Basis fir Fuerschung auswielen an Ufroen sortéieren - ähnlech wéi et an Transaktiounen gemaach gëtt. A wann Dir op d'Ufro Tab gitt, kënnt Dir gesinn wéi oft dës Ufro an all eenzel vun den Applikatiounscontroller geschitt ass, an och schätzen wéi dacks et genannt gëtt. Et ass ganz bequem:

Net New Relic eleng: e Bléck op Datadog an Atatus

De Tab enthält ähnlech Daten Extern Servicer, déi Ufroe fir extern HTTP-Servicer verstoppt, wéi zum Beispill Zougang zu Objektlagerung, Schécken vun Eventer op d'Sécherheet oder ähnlech. Den Inhalt vun der Tab ass komplett ähnlech wéi Datenbanken:

Net New Relic eleng: e Bléck op Datadog an Atatus

Konkurrenten: Méiglechkeeten an Impressiounen

Elo ass déi interessantst Saach d'Fäegkeeten vun New Relic ze vergläichen mat deem wat Konkurrenten ubidden. Leider konnte mir net all dräi Tools op enger Versioun vun enger Applikatioun testen déi an der Produktioun leeft. Mir hu probéiert awer Situatiounen/Konfiguratiounen ze vergläichen déi sou identesch wéi méiglech waren.

1.Datadog

Datadog begréisst eis mat engem Panel mat enger Mauer vu Servicer:

Net New Relic eleng: e Bléck op Datadog an Atatus

Et probéiert Uwendungen a Komponenten / Mikroservicer ze briechen, also am Beispill Django Applikatioun gesi mir 2 Verbindungen op PostgreSQL (defaultdb и postgres), souwéi Sellerie, Redis. Mat Datadog ze schaffen erfuerdert datt Dir minimal Kenntnisser iwwer MVC Prinzipien hutt: Dir musst verstoen wou d'Benotzerfuerderunge generell hierkommen. Dëst hëlleft normalerweis Servicer Kaart:

Net New Relic eleng: e Bléck op Datadog an Atatus

Iwwregens gëtt et eppes ähnleches am New Relic:

Net New Relic eleng: e Bléck op Datadog an Atatus

... an hir Kaart, menger Meenung no, méi einfach a méi kloer gemaach: et weist net d'Komponente vun enger Applikatioun (wat et iwwerdriwwe géif maachen, wéi am Fall vun Datadog), mee nëmmen spezifesch Servicer oder Mikroservicer.

Komme mer zréck op Datadog: vun der Servicekaart kënne mir gesinn datt d'Benotzer Ufroen op Django kommen. Loosst eis op den Django Service goen a schliisslech kucken wat mir erwaart hunn:

Net New Relic eleng: e Bléck op Datadog an Atatus

Leider gëtt et hei par défaut keng Grafik Web Transaktioun Zäit, Ähnlech wéi wat mir op der Haaptrei New Relic Panel gesinn. Wéi och ëmmer, et kann an der Plaz vum Zäitplang konfiguréiert ginn % vun der Zäit verbraucht. Et ass genuch et ze wiesselen Duerchschnëtt Zäit pro Ufro no Typ... an elo kuckt déi vertraute Grafik op eis!

Net New Relic eleng: e Bléck op Datadog an Atatus

Firwat Datadog eng aner Grafik gewielt huet ass e Geheimnis fir eis. Eng aner frustréierend Saach ass datt de System d'Wiel vum Benotzer net erënnert (am Géigesaz zu béide Konkurrenten), an dofir ass déi eenzeg Léisung fir personaliséiert Panelen ze kreéieren.

Awer ech war frou mat der Fäegkeet am Datadog fir vun dëse Grafiken op d'Metriken vun de verwandte Serveren ze wiesselen, d'Logbicher ze liesen an d'Laascht op de Webserver Handler (Gunicorn) ze evaluéieren. Alles ass bal d'selwecht wéi am New Relic ... an och e bësse méi (Logbicher)!

Ënnert de Grafike sinn Transaktioune komplett ähnlech wéi New Relic:

Net New Relic eleng: e Bléck op Datadog an Atatus

Am Datadog ginn Transaktiounen genannt Ressourcen. Dir kënnt Controller no der Unzuel vun Ufroen, duerch duerchschnëttlech Äntwertzäit, an no der maximaler Zäit fir eng gewielte Zäit verbrauchen.

Dir kënnt d'Ressource ausbauen an alles gesinn wat mir schonn an New Relic observéiert hunn:

Net New Relic eleng: e Bléck op Datadog an Atatus

Et gi Statistiken iwwer d'Ressource, eng generaliséiert Lëscht vun internen Uriff, a Beispiller vun Ufroen, déi no Äntwertcode zortéiert kënne ginn ... Iwwregens, eis Ingenieuren hunn dës Sortéierung wierklech gär.

All Beispillressource am Datadog kann opgemaach a studéiert ginn:

Net New Relic eleng: e Bléck op Datadog an Atatus

Ufro Parameteren, e Resumédiagramm vun der Zäit, déi op all Komponent verbruecht ass, an e Waasserfalldiagramm, déi d'Sequenz vun den Uruff weist, ginn presentéiert. Dir kënnt och op eng Bamvisioun vum Waasserfalldiagramm wiesselen:

Net New Relic eleng: e Bléck op Datadog an Atatus

An déi interessantst Saach ass d'Belaaschtung vum Host ze gesinn, op deem d'Ufro ausgefouert gouf an d'Ufro Logbicher kucken.

Net New Relic eleng: e Bléck op Datadog an Atatus

Flott Integratioun!

Dir kënnt Iech froe wou d'Tabs sinn Datenbanken и Extern Servicer, wéi an New Relic. Et gi keng hei: well Datadog d'Applikatioun an Komponenten ofbaut, gëtt PostgreSQL berücksichtegt eng separat Service, an amplaz vun externen Servicer ass et derwäert ze sichen aws.storage (et wäert ähnlech sinn fir all aner externe Service op déi d'Applikatioun Zougang kann).

Net New Relic eleng: e Bléck op Datadog an Atatus

Hei ass e Beispill mat postgres:

Net New Relic eleng: e Bléck op Datadog an Atatus

Wesentlech ass et alles wat mir wollten:

Net New Relic eleng: e Bléck op Datadog an Atatus

Dir kënnt gesinn aus wéi engem "Service" d'Ufro koum.

Et wier net falsch Iech z'erënneren datt Datadog perfekt mat NGINX Ingress integréiert ass an Iech erlaabt Enn-zu-Enn Tracing auszeféieren vum Moment wou eng Ufro am Cluster ukomm ass, an et erlaabt Iech och statistesch Metriken ze kréien, Logbicher a Host Metriken ze sammelen. .

E grousse Plus vun Datadog ass datt säi Präis entwéckelt aus Infrastruktur Iwwerwachung, APM, Log Management an Synthetics Test, i.e. Dir kënnt Äre Plang flexibel wielen.

2. Atatus

D'Atatus Team behaapt datt hire Service "d'selwecht ass wéi New Relic, awer besser." Mol kucken ob dat wierklech esou ass.

D'Haaptpanel gesäit ähnlech aus, awer et war net méiglech d'Redis a Memcached an der Applikatioun ze bestëmmen.

Net New Relic eleng: e Bléck op Datadog an Atatus

APM wielt all Transaktioune par défaut, obwuel typesch nëmmen Web Transaktioune gebraucht ginn. Wéi Datadog, gëtt et kee Wee fir op de gewënschten Service vum Haaptpanel ze navigéieren. Ausserdeem sinn Transaktiounen no Feeler opgelëscht, wat fir APM net ganz logesch schéngt.

An Atatus Transaktiounen ass alles sou ähnlech wéi méiglech wéi New Relic. Den Nodeel ass datt d'Dynamik fir all Controller net direkt sichtbar ass. Dir musst et am Controller Dësch kucken, sortéiert no Déi meescht Zäit verbraucht:

Net New Relic eleng: e Bléck op Datadog an Atatus

Déi üblech Lëscht vu Controller ass am Tab verfügbar Entdeckt:

Net New Relic eleng: e Bléck op Datadog an Atatus

Op e puer Manéieren erënnert dësen Dësch un Datadog an ech gefällt et besser wéi déi ähnlech an New Relic.

Dir kënnt all Transaktioun ausbauen a kucken wat d'Applikatioun gemaach huet:

Net New Relic eleng: e Bléck op Datadog an Atatus

De Panel erënnert och méi un Datadog: et gëtt eng Zuel vun Ufroen, en allgemengt Bild vun den Uriff. Déi iewescht Panel bitt e Feeler Tab HTTP Feeler a Beispiller vu luesen Ufroen Sëtzung Spure:

Net New Relic eleng: e Bléck op Datadog an Atatus

Wann Dir op eng Transaktioun gitt, kënnt Dir e Beispill vun enger Spuer gesinn, Dir kënnt eng Lëscht vun Ufroen un d'Datebank kréien an d'Ufro Header kucken. Alles ass ähnlech wéi New Relic:

Net New Relic eleng: e Bléck op Datadog an Atatus

Am Allgemengen, Atatus zefridde mat detailléierte Spuren - ouni déi typesch New Relic Pechpabeier vun Uriff an engem Erënnerung Block:

Net New Relic eleng: e Bléck op Datadog an Atatus
Net New Relic eleng: e Bléck op Datadog an Atatus

Wéi och ëmmer, et feelt e Filter deen (wéi New Relic) ultra-schnell Ufroen ofschneiden (<5ms). Op der anerer Säit hunn ech d'Display vun der definitiver Transaktiounsreaktioun (Erfolleg oder Feeler) gär.

Panel Datenbanken hëlleft Iech d'Ufroe fir extern Datenbanken ze studéieren déi d'Applikatioun mécht. Loosst mech Iech drun erënneren datt Atatus nëmmen PostgreSQL a MySQL fonnt huet, obwuel Redis a memcached och am Projet involvéiert sinn.

Net New Relic eleng: e Bléck op Datadog an Atatus

Ufroe ginn no den übleche Critèren zortéiert: Äntwertfrequenz, duerchschnëttlech Äntwertzäit, asw. Ech wéilt och den Tab mat de luessten Ufroen ernimmen - et ass ganz bequem. Ausserdeem sinn d'Donnéeën an dësem Tab fir PostgreSQL zesummegefall mat den Donnéeën vun der Extensioun pg_stat_statements - excellent Resultat!

Net New Relic eleng: e Bléck op Datadog an Atatus

Tab Extern Ufroen komplett identesch mat Datenbanken.

Conclusiounen

Béid presentéiert Tools hunn gutt an der Roll vun APM gemaach. Jidderee vun hinnen kann de erfuerderleche Minimum ubidden. Eis Impressioune kënne kuerz zesummegefaasst ginn wéi follegt:

datenhond

Pros:

  • praktesch Tarifplang (APM kascht 31 USD pro Host);
  • geschafft gutt mat Python;
  • Méiglechkeet vun Integratioun mat OpenTracing
  • Integratioun mat Kubernetes;
  • Integratioun mat NGINX Ingress.

Muecht:

  • déi eenzeg APM déi d'Applikatioun verursaacht huet wéinst engem Modulfehler (Predis) net verfügbar ze ginn;
  • schwaach PHP Auto-Instrumentatioun;
  • deelweis komesch Definitioun vu Servicer an hiren Zweck.

Atatus

Pros:

  • déif PHP Instrumentatioun;
  • User Interface ähnlech wéi New Relic.

Muecht:

  • funktionnéiert net op eelere Betribssystemer (Ubuntu 12.05, CentOS 5);
  • schwaach Auto-Instrumenter;
  • Ënnerstëtzung fir nëmmen zwou Sproochen (Node.js a PHP);
  • Luesen Interface.

Bedenkt datt Atatus Präis vun 69 USD pro Mount pro Server, mir géifen éischter Datadog benotzen, déi gutt mat eise Besoinen integréiert (Webapplikatiounen an K8s) an huet vill nëtzlech Funktiounen.

PS

Liest och op eisem Blog:

Source: will.com

Setzt e Commentaire