{"id":37901,"date":"2019-10-31T22:20:26","date_gmt":"2019-10-31T19:20:26","guid":{"rendered":"https:\/\/prohoster.info\/blog\/ne-new-relic-om-odnim-vzglyad-na-datadog-i-atatus\/"},"modified":"2019-10-31T22:20:26","modified_gmt":"2019-10-31T19:20:26","slug":"ne-new-relic-om-odnim-vzglyad-na-datadog-i-atatus","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/ne-new-relic-om-odnim-vzglyad-na-datadog-i-atatus","title":{"rendered":"Nie tylko New Relic: spojrzenie na Datadog i Atatus","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/8f8e3d96daed74986ef3cbe293356302.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nW\u015br\u00f3d in\u017cynier\u00f3w SRE\/DevOps nikogo nie zaskoczy, \u017ce pewnego dnia pojawia si\u0119 klient (lub system monitorowania) i informuje, \u017ce \u201ewszystko znikn\u0119\u0142o\u201d: strona nie dzia\u0142a, p\u0142atno\u015bci nie przechodz\u0105, \u017cycie \u2014 marno\u015b\u0107\u2026 Cho\u0107 bardzo chcieliby\u015bmy pom\u00f3c w takiej sytuacji, zrobienie tego bez prostego i zrozumia\u0142ego narz\u0119dzia bywa bardzo trudne. Cz\u0119sto problem ukryty jest w kodzie samej aplikacji \u2014 wystarczy go zlokalizowa\u0107.<\/p>\n<h2>W smutku i w rado\u015bci\u2026<\/h2>\n<p>\nTak si\u0119 z\u0142o\u017cy\u0142o, \u017ce od d\u0142u\u017cszego czasu bardzo lubimy New Relic. By\u0142 i nadal jest doskona\u0142ym narz\u0119dziem do monitorowania wydajno\u015bci aplikacji, a tak\u017ce umo\u017cliwia instrumentowanie architektury mikroserwisowej (za pomoc\u0105 swojego agenta) i wiele, wiele innych rzeczy. I wszystko mog\u0142oby by\u0107 wspania\u0142e, gdyby nie zmiany w polityce cenowej us\u0142ugi: jego <b>koszt <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.newrelic.com\/product-news\/new-relic-new-pricing-startups\/\">od 2013 roku<\/a><\/noindex> wzros\u0142a ponad 3 razy<\/b>. Dodatkowo, od zesz\u0142ego roku do uzyskania konta pr\u00f3bnego konieczna jest rozmowa z mened\u017cerem, co utrudnia prezentacj\u0119 produktu potencjalnemu klientowi.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Typowa sytuacja: New Relic nie jest potrzebny \u201ena sta\u0142e\u201d, przypominaj\u0105 o nim tylko w momencie, gdy pojawiaj\u0105 si\u0119 problemy. Ale p\u0142aci\u0107 trzeba regularnie (140 USD za serwer miesi\u0119cznie), a w automatycznie skaluj\u0105cej si\u0119 chmurze kwoty staj\u0105 si\u0119 znaczne. Chocia\u017c istnieje mo\u017cliwo\u015b\u0107 \u201ePay-As-You-Go\u201d, do w\u0142\u0105czenia New Relic wymagany jest restart aplikacji, co mo\u017ce prowadzi\u0107 do utraty tej problematycznej sytuacji, dla kt\u00f3rej wszystko si\u0119 zaczyna\u0142o. Niedawno New Relic wprowadzi\u0142 nowy plan taryfowy \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/newrelic.com\/products\/infrastructure\/pricing\">Podstawowe<\/a><\/noindex>, kt\u00f3ry na pierwszy rzut oka wygl\u0105da na rozs\u0105dna alternatyw\u0119 dla Professional\u2026 ale przy bli\u017cszym przyjrzeniu si\u0119 okaza\u0142o si\u0119, \u017ce brakuje w nim cz\u0119\u015bci wa\u017cnych funkcji (w szczeg\u00f3lno\u015bci brakuje <i>Kluczowe transakcje<\/i>, <i>\u015aledzenie aplikacji mi\u0119dzy sob\u0105<\/i>, <i>\u015aledzenie rozproszone<\/i>).<\/p>\n<p>W wyniku tego zacz\u0119li\u015bmy my\u015ble\u0107 o poszukiwaniu ta\u0144szej alternatywy, a nasz wyb\u00f3r pad\u0142 na dwa serwisy: Datadog i Atatus. Dlaczego w\u0142a\u015bnie na nie?<\/p>\n<h2>O konkurentach<\/h2>\n<p>\nZaraz dodam, \u017ce na rynku dost\u0119pne s\u0105 tak\u017ce inne rozwi\u0105zania. Rozwa\u017cali\u015bmy nawet opcje open source, ale nie wszyscy klienci maj\u0105 wolne zasoby do umieszczania rozwi\u0105za\u0144 z kategorii self-hosted\u2026 \u2014 poza tym wymagaj\u0105 dodatkowej obs\u0142ugi. Wybrane przez nas par\u0119 okaza\u0142a si\u0119 najbardziej zbli\u017cona do <b>naszych potrzeb<\/b>:<\/p>\n<ul>\n<li>Wbudowane i rozwini\u0119te wsparcie aplikacji PHP (nasze \u015brodowisko klienckie jest bardzo r\u00f3\u017cnorodne, ale to jest wyra\u017any lider w kontek\u015bcie poszukiwania alternatywy dla New Relic);<\/li>\n<li>Dost\u0119pna cena (poni\u017cej 100 USD miesi\u0119cznie za hosting);<\/li>\n<li>Automatyczna instrumentacja;<\/li>\n<li>Integracja z Kubernetes;<\/li>\n<li>Podobie\u0144stwo do interfejsu New Relic \u2014 wyra\u017any plus (poniewa\u017c nasi in\u017cynierowie s\u0105 do niego przyzwyczajeni).<\/li>\n<\/ul>\n<p>\nDlatego na etapie wst\u0119pnej selekcji odrzucili\u015bmy kilka innych popularnych rozwi\u0105za\u0144, a w szczeg\u00f3lno\u015bci:<\/p>\n<ul>\n<li> Tideways, AppDynamics i Dynatrace \u2014 ze wzgl\u0119du na koszt;<\/li>\n<li> Stackify \u2014 zablokowany w Rosji i pokazuje zbyt ma\u0142o danych.<\/li>\n<\/ul>\n<p>\nDalszy artyku\u0142 jest zbudowany w ten spos\u00f3b, \u017ce najpierw zostan\u0105 kr\u00f3tko przedstawione rozwa\u017cane rozwi\u0105zania, a nast\u0119pnie opowiem o naszym typowym interakcjach z New Relic oraz do\u015bwiadczeniach\/wra\u017ceniach z realizacji podobnych operacji w innych serwisach.<\/p>\n<h3>Prezentacja wybranych konkurent\u00f3w<\/h3>\n<p>\n<img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/b8960097f729d56abeb9d1b0f5931e7d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nO <noindex><a rel=\"nofollow\" href=\"https:\/\/newrelic.com\/\"><b>New Relic<\/b><\/a><\/noindex>, pewnie ka\u017cdy s\u0142ysza\u0142? Us\u0142uga ta rozpocz\u0119\u0142a swoj\u0105 dzia\u0142alno\u015b\u0107 ponad 10 lat temu, w 2008 roku. Aktywnie korzystamy z niej od 2012 roku i nie mieli\u015bmy problem\u00f3w z integracj\u0105 naprawd\u0119 du\u017cej liczby aplikacji w j\u0119zykach PHP, Ruby i Python, a tak\u017ce mieli\u015bmy do\u015bwiadczenie w integracji z C# i Go. Tw\u00f3rcy us\u0142ugi maj\u0105 rozwi\u0105zania do monitorowania aplikacji, infrastruktury, \u015bledzenia mikroserwisowych infrastruktur, stworzyli wygodne aplikacje dla urz\u0105dze\u0144 u\u017cytkownik\u00f3w i wiele wi\u0119cej.<\/p>\n<p>Jednak agent New Relic dzia\u0142a na w\u0142asnych protoko\u0142ach, nie ma wsparcia dla OpenTracing. Aby uzyska\u0107 rozszerzon\u0105 instrumentacj\u0119, nale\u017cy wprowadza\u0107 poprawki specjalnie dla New Relic. W ko\u0144cu wsparcie dla Kubernetes ma obecnie status eksperymentalny.<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/6807ed78ff3d053d0aa910dbc81f1414.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nRozpocz\u0105\u0142 swoj\u0105 dzia\u0142alno\u015b\u0107 w 2010 roku <noindex><a rel=\"nofollow\" href=\"https:\/\/www.datadoghq.com\/\"><b>Datadog<\/b><\/a><\/noindex> wygl\u0105da znacznie ciekawiej ni\u017c New Relic, zw\u0142aszcza w kontek\u015bcie u\u017cycia w \u015brodowiskach Kubernetes. W szczeg\u00f3lno\u015bci wspiera integracj\u0119 z NGINX Ingress, zbieranie log\u00f3w, protoko\u0142y statsd i OpenTracing, co pozwala na \u015bledzenie \u017c\u0105da\u0144 u\u017cytkownik\u00f3w od momentu ich po\u0142\u0105czenia do zako\u0144czenia pracy oraz na odnajdywanie log\u00f3w zwi\u0105zanych z tym \u017c\u0105daniem (zar\u00f3wno po stronie serwera WWW, jak i po stronie konsument\u00f3w).<\/p>\n<p>Podczas korzystania z Datadog napotkali\u015bmy na to, \u017ce czasami b\u0142\u0119dnie budowa\u0142 map\u0119 mikroserwis\u00f3w oraz mia\u0142 pewne techniczne niedoci\u0105gni\u0119cia. Na przyk\u0142ad, b\u0142\u0119dnie okre\u015bla\u0142 typ us\u0142ugi (przek\u0142ada\u0142 Django na us\u0142ug\u0119 cache'owania) i wywo\u0142ywa\u0142 b\u0142\u0119dy 500 w aplikacji PHP, wykorzystuj\u0105cej popularn\u0105 bibliotek\u0119 Predis.<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/dd1f3f840cd686265a1616343d832f28.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.atatus.com\/\"><b>Atatus<\/b><\/a><\/noindex> \u2014 najnowsze narz\u0119dzie; us\u0142uga uruchomiona w 2014 roku. Jego bud\u017cet marketingowy wyra\u017anie ust\u0119puje wymienionym konkurentom, a wzmianki pojawiaj\u0105 si\u0119 znacznie rzadziej. Niemniej jednak, samo narz\u0119dzie jest bardzo podobne do New Relic, nie tylko pod wzgl\u0119dem funkcji (APM, monitorowanie przegl\u0105darki itp.), ale tak\u017ce w wygl\u0105dzie.<\/p>\n<p>Istotn\u0105 wad\u0105 jest wsparcie tylko dla Node.js i PHP. Z drugiej strony, jest ono zrealizowane znacznie lepiej ni\u017c w Datadog. W przeciwie\u0144stwie do tego, Atatus nie wymaga od aplikacji poprawek i dodawania dodatkowych etykiet w kodzie.<\/p>\n<h2>Jak pracujemy z New Relic<\/h2>\n<p>\nTeraz zrozumiemy, jak zazwyczaj korzystamy z New Relic. Za\u0142\u00f3\u017cmy, \u017ce mamy problem do rozwi\u0105zania:<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/615f56cd69a4360f5a659d135840ad8a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNa wykresie \u0142atwo zauwa\u017cy\u0107 <b>skok<\/b> \u2014 przeanalizujemy go. W New Relic dla aplikacji webowej od razu wybrane s\u0105 transakcje webowe, na wykresie wydajno\u015bci wskazane s\u0105 wszystkie komponenty, dost\u0119pne s\u0105 panele error-rate, request-rate\u2026 Co najwa\u017cniejsze \u2014 bezpo\u015brednio z tych paneli mo\u017cna przechodzi\u0107 mi\u0119dzy r\u00f3\u017cnymi cz\u0119\u015bciami aplikacji (na przyk\u0142ad klikni\u0119cie na MySQL przeniesie nas do sekcji baz danych).<\/p>\n<p>Poniewa\u017c w omawianym przyk\u0142adzie widzimy skok aktywno\u015bci <b>PHP<\/b>, kliknijmy na ten wykres i automatycznie przejd\u017amy do <b>Transakcje<\/b>:<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/9fbbde055a88d6f63aa6dca4998f925b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLista transakcji, kt\u00f3re w zasadzie s\u0105 kontrolerami z modelu MVC, ju\u017c posortowana wed\u0142ug <b>Najbardziej czasoch\u0142onnych<\/b>, co jest bardzo wygodne: od razu widzimy, czym zajmuje si\u0119 aplikacja. Tutaj znajduj\u0105 si\u0119 r\u00f3wnie\u017c przyk\u0142ady d\u0142ugich zapyta\u0144, kt\u00f3re automatycznie zbiera New Relic. Prze\u0142\u0105czaj\u0105c sortowanie, w \u0142atwy spos\u00f3b mo\u017cna znale\u017a\u0107:<\/p>\n<ul>\n<li> najbardziej obci\u0105\u017cony kontroler aplikacji;<\/li>\n<li> najcz\u0119\u015bciej wywo\u0142ywany kontroler;<\/li>\n<li> najwolniejszy z kontroler\u00f3w.<\/li>\n<\/ul>\n<p>\nDodatkowo, mo\u017cna rozwin\u0105\u0107 ka\u017cd\u0105 transakcj\u0119 i zobaczy\u0107, czym zajmowa\u0142a si\u0119 aplikacja w momencie wykonania kodu:<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/9c3136cb973a1f47729c305256ee1836.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nW ko\u0144cu w aplikacji zapisywane s\u0105 przyk\u0142ady tras d\u0142ugich zapyta\u0144 (kt\u00f3re trwaj\u0105 d\u0142u\u017cej ni\u017c 2 sekundy). Oto panel dla d\u0142ugiej transakcji:<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/bca8a9f1b0ccd8158eaff41067681e2a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWida\u0107, \u017ce du\u017co czasu zajmuj\u0105 dwie metody, a wraz z tym pokazane jest r\u00f3wnie\u017c czas, kiedy zapytanie zosta\u0142o wykonane, jego URI i domena. Bardzo cz\u0119sto pomaga to znale\u017a\u0107 zapytanie w logach. Przechodz\u0105c do <b>Szczeg\u00f3\u0142y tras<\/b>, mo\u017cna zobaczy\u0107, sk\u0105d te metody s\u0105 wywo\u0142ywane:<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/aef8bbd86278aa31d595aa353e6387e0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA w <b>Zapytania do bazy danych<\/b> \u2014 oceni\u0107 zapytania do baz danych, kt\u00f3re by\u0142y wykonywane w momencie pracy aplikacji:<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/40d942b57b87237f378dc617676f00fc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUzbrojeni w t\u0119 wiedz\u0119, mo\u017cemy oceni\u0107 przyczyn\u0119 spowolnienia aplikacji i wsp\u00f3lnie z deweloperem wypracowa\u0107 strategi\u0119 rozwi\u0105zania problemu. W rzeczywisto\u015bci New Relic nie zawsze daje wyra\u017any obraz, jednak pomaga wybra\u0107 kierunek \u015bledztwa:<\/p>\n<ul>\n<li> d\u0142ugi <code>PDO::Construct<\/code> doprowadzi\u0142 nas do dziwnego dzia\u0142ania pgpoll;<\/li>\n<li> niestabilno\u015b\u0107 w czasie <code>Memcache::Get<\/code> wskaza\u0142a na nieprawid\u0142ow\u0105 konfiguracj\u0119 maszyny wirtualnej;<\/li>\n<li> podejrzanie wyd\u0142u\u017cony czas przetwarzania szablonu doprowadzi\u0142 do zagnie\u017cd\u017conej p\u0119tli sprawdzaj\u0105cej obecno\u015b\u0107 500 avatar\u00f3w w magazynie obiekt\u00f3w;<\/li>\n<li> i tak dalej\u2026<\/li>\n<\/ul>\n<p>\nCzasami zdarza si\u0119, \u017ce zamiast wykonywania kodu na g\u0142\u00f3wnym ekranie ro\u015bnie co\u015b zwi\u0105zanego z zewn\u0119trznym magazynem danych \u2014 niewa\u017cne, co to b\u0119dzie: Redis czy PostgreSQL \u2014 wszystkie one ukrywaj\u0105 si\u0119 w zak\u0142adce <b>Bazy Danych<\/b>.<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/5ff39a5a6e02be329e3c40d54c3b4a1d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMo\u017cna wybra\u0107 konkretn\u0105 baz\u0119 do analizy i przeprowadzi\u0107 sortowanie zapyta\u0144 \u2014 podobnie jak robi si\u0119 to w Transactions. A przechodz\u0105c do zak\u0142adki zapytania, mo\u017cna zobaczy\u0107, jak cz\u0119sto to zapytanie wyst\u0119puje w ka\u017cdym z kontroler\u00f3w aplikacji oraz oceni\u0107, jak cz\u0119sto jest wywo\u0142ywane. To bardzo wygodne:<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/92b3bca78f0aa0f27e5700cd6fe283fe.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPodobne dane zawiera zak\u0142adka <b>External Services<\/b>, kt\u00f3ra ukrywa w sobie zapytania do zewn\u0119trznych us\u0142ug HTTP, takich jak odwo\u0142ania do magazynu obiekt\u00f3w, wysy\u0142anie zdarze\u0144 do sentry lub podobne. Pod wzgl\u0119dem zawarto\u015bci zak\u0142adka jest ca\u0142kowicie analogiczna do Databases:<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/417d6ed0d5fb266e1a338d8277278000.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Konkurenci: mo\u017cliwo\u015bci i wra\u017cenia<\/h2>\n<p>\nTeraz najciekawsze \u2014 por\u00f3wnajmy mo\u017cliwo\u015bci New Relic z tym, co oferuj\u0105 konkurenci. Niestety, nie uda\u0142o nam si\u0119 przetestowa\u0107 wszystkich trzech narz\u0119dzi na jednej wersji dzia\u0142aj\u0105cej aplikacji produkcyjnej. Niemniej jednak, starali\u015bmy si\u0119 por\u00f3wna\u0107 maksymalnie identyczne sytuacje\/configuracje.<\/p>\n<h3>1. Datadog<\/h3>\n<p>\nDatadog wita nas panelem ze \u015bcian\u0105 us\u0142ug:<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/fa4eb4ba2349b900d5c04238552e5329.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPr\u00f3buje podzieli\u0107 aplikacje na komponenty\/mikroserwisy, dlatego w przedstawionym przyk\u0142adzie aplikacji Django zobaczymy 2 po\u0142\u0105czenia do PostgreSQL (<code>defaultdb<\/code> i <code>postgres<\/code>), a tak\u017ce Celery, Redis. Praca z Datadogiem wymaga od Ciebie minimalnej wiedzy na temat zasad MVC: musisz rozumie\u0107, gdzie w og\u00f3le przychodz\u0105 zapytania u\u017cytkownik\u00f3w. Zwykle w tym pomaga <b>mapa us\u0142ug<\/b>:<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/2f5f7c9ce171af671a65fb41401451e5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSwoj\u0105 drog\u0105, co\u015b podobnego jest te\u017c w New Relic:<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/b4e14f15b900f5c19856f1077873c9c0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u2026 a ich mapa, moim zdaniem, jest prostsza i bardziej przejrzysta: pokazuje nie komponenty jednej aplikacji (co uczyni\u0142oby j\u0105 zbyt szczeg\u00f3\u0142ow\u0105, jak w przypadku Datadog), a tylko konkretne us\u0142ugi lub mikrous\u0142ugi.<\/p>\n<p>Wracaj\u0105c do Datadog: z mapy us\u0142ug wida\u0107, \u017ce zapytania u\u017cytkownik\u00f3w docieraj\u0105 do Django. Przejd\u017amy do us\u0142ugi Django i w ko\u0144cu zobaczymy to, czego oczekiwali\u015bmy:<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/fe907532184004ec02238ccd5e7d0ce6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNiestety, domy\u015blnie brakuje tutaj wykresu <b>Czas transakcji w sieci<\/b>, podobnego do tego, co widzimy na g\u0142\u00f3wnym pulpicie New Relic. Jednak mo\u017cna go skonfigurowa\u0107 w miejscu wykresu <b>% czasu sp\u0119dzonego<\/b>. Wystarczy prze\u0142\u0105czy\u0107 go na <b>\u015aredni czas na zapytanie wed\u0142ug typu<\/b>\u2026 i oto znany wykres patrzy na nas!<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/4576b27658d257fa5b062ffc7bb5464a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDlaczego w Datadog wybrano inny wykres \u2014 dla nas to zagadka. Rozczarowa\u0142o te\u017c, \u017ce system nie zapami\u0119tuje wyboru u\u017cytkownika (w przeciwie\u0144stwie do obu konkurent\u00f3w), dlatego jedynym rozwi\u0105zaniem jest tworzenie pulpit\u00f3w u\u017cytkownik\u00f3w.<\/p>\n<p>Za to zaskoczy\u0142a mo\u017cliwo\u015b\u0107 w Datadog przej\u015bcia z tych wykres\u00f3w na metryki zwi\u0105zanych serwer\u00f3w, przeczytania log\u00f3w i ocenienia obci\u0105\u017cenia handler\u00f3w serwera webowego (Gunicorn). Wszystko prawie jak w New Relic\u2026 a nawet troch\u0119 wi\u0119cej (logi)!<\/p>\n<p>Poni\u017cej wykres\u00f3w znajduj\u0105 si\u0119 transakcje, kt\u00f3re s\u0105 ca\u0142kowicie analogiczne do New Relic:<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/3ab831fce57abe39e27bea12b6eb0f67.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nW Datadog transakcje nazywaj\u0105 si\u0119 <b>zasobami<\/b>. Mo\u017cna posortowa\u0107 kontrolery wed\u0142ug liczby zapyta\u0144, \u015bredniego czasu odpowiedzi oraz maksymalnego czasu po\u015bwi\u0119conego w wybranym okresie. <\/p>\n<p>Zas\u00f3b mo\u017cna rozwin\u0105\u0107 i zobaczy\u0107 wszystko, co ju\u017c obserwowali\u015bmy w New Relic:<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/8005dfb15d878c6025d745982114cc02.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDost\u0119pna jest zar\u00f3wno statystyka zasobu, jak i zwi\u0119z\u0142a lista wywo\u0142a\u0144 wewn\u0119trznych oraz przyk\u0142ady zapyta\u0144, kt\u00f3re mo\u017cna sortowa\u0107 wed\u0142ug kodu odpowiedzi\u2026 Nota bene, to sortowanie bardzo spodoba\u0142o si\u0119 naszym in\u017cynierom.<\/p>\n<p>Ka\u017cdy przyk\u0142ad zasobu w Datadog mo\u017cna rozwija\u0107 i bada\u0107:<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/0e98c9c3924bd248d048b8587f19f922.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPrezentowane s\u0105 parametry zapytania, diagram podsumowuj\u0105cy czas sp\u0119dzony na ka\u017cdym z komponent\u00f3w oraz wykres wodospadowy, na kt\u00f3rym wida\u0107 sekwencj\u0119 wywo\u0142a\u0144. Mo\u017cna r\u00f3wnie\u017c prze\u0142\u0105czy\u0107 na widok drzewa wykresu wodospadowego:<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/c1d12e79d5c170bb88d9261267756fb8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nI co najciekawsze \u2014 przegl\u0105d obci\u0105\u017cenia hosta, na kt\u00f3rym wykonano zapytanie, oraz przegl\u0105d log\u00f3w zapytania. <\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/849a299b05596eb6ba4906c7f3851de0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u015awietna integracja!<\/p>\n<p>Mo\u017ce pojawi\u0107 si\u0119 pytanie, gdzie s\u0105 zak\u0142adki <b>Bazy Danych<\/b> i <b>External Services<\/b>, jak w New Relic. Tutaj ich nie ma: poniewa\u017c Datadog rozdziela aplikacj\u0119 na sk\u0142adniki, PostgreSQL b\u0119dzie traktowany jako <b>osobna us\u0142uga<\/b>, a zamiast Us\u0142ug Zewn\u0119trznych nale\u017cy szuka\u0107 <code>aws.storage<\/code> (analogicznie b\u0119dzie te\u017c w przypadku ka\u017cdego innego zewn\u0119trznego serwisu, do kt\u00f3rego aplikacja mo\u017ce si\u0119 odnosi\u0107).<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/7a2585778478cdd7abab2e31c1858e68.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA oto przyk\u0142ad z <code>postgres<\/code>:<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/76710537a8c7f436d207ef52efb50214.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nW zasadzie jest wszystko, co chcieli\u015bmy:<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/152e882d964bd5c77aef69f9c140f350.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWida\u0107, z jakiego \u201eserwisu\u201d przysz\u0142o zapytanie. <\/p>\n<p>Nie b\u0119dzie zb\u0119dne przypomnienie, \u017ce Datadog doskonale integruje si\u0119 z NGINX Ingress i pozwala na przeprowadzanie pe\u0142nej \u015bledzenia od momentu przyj\u0119cia zapytania do klastra, a tak\u017ce umo\u017cliwia przyjmowanie metryk statsd, zbieranie log\u00f3w i metryk host\u00f3w.<\/p>\n<p>Ogromnym plusem Datadog jest to, \u017ce jego cena <i>sk\u0142ada si\u0119<\/i> z monitorowania infrastruktury, APM, zarz\u0105dzania logami i test\u00f3w syntetycznych, tzn. mo\u017cna elastycznie dobra\u0107 plan.<\/p>\n<h3>2. Atatus<\/h3>\n<p>\nZesp\u00f3\u0142 Atatus twierdzi, \u017ce ich serwis to \u201eto samo, co New Relic, ale lepsze\u201d. Zobaczmy, czy rzeczywi\u015bcie tak jest.<\/p>\n<p>G\u0142\u00f3wna tabela wygl\u0105da rzeczywi\u015bcie podobnie, ale nie uda\u0142o si\u0119 zidentyfikowa\u0107 u\u017cywanych w aplikacji Redis i memcached.<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/1b2271bf779f93d4696b8f5fb90c548b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAPM domy\u015blnie wybiera wszystkie transakcje, chocia\u017c zazwyczaj potrzebne s\u0105 tylko WEB. Tak jak w Datadog, nie ma mo\u017cliwo\u015bci przej\u015bcia do potrzebnego serwisu z g\u0142\u00f3wnego panelu. Co wi\u0119cej, transakcje s\u0105 w li\u015bcie po b\u0142\u0119dach, co wygl\u0105da do\u015b\u0107 nielogicznie dla APM.<\/p>\n<p>W transakcjach w Atatus wszystko maksymalnie przypomina New Relic. Minusem jest to, \u017ce od razu nie wida\u0107 dynamiki dla ka\u017cdego z kontroler\u00f3w. Trzeba to szuka\u0107 w tabeli kontroler\u00f3w, sortuj\u0105c wed\u0142ug <b>Most Time Consumed<\/b>:<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/57a1640dc1c99732e5d008051ea08f4a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZnany nam wykaz kontroler\u00f3w dost\u0119pny jest w zak\u0142adce <b>Explore<\/b>:<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/9f77e8af1b19460a490f6d57f57c7902.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nW pewnym sensie ta tabela przypomina Datadog i bardziej podoba mi si\u0119 ni\u017c ta podobna w New Relic.<\/p>\n<p>Ka\u017cd\u0105 transakcj\u0119 mo\u017cna rozwin\u0105\u0107 i zobaczy\u0107, czym zajmowa\u0142a si\u0119 aplikacja:<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/7a74af09bc90449557a797b7898aa827.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPanel r\u00f3wnie\u017c raczej przypomina Datadog: jest liczba zapyta\u0144, og\u00f3lny obraz wezwa\u0144. G\u00f3rny panel udost\u0119pnia zak\u0142adk\u0119 z b\u0142\u0119dami <b>HTTP Failures<\/b> i przyk\u0142ady wolnych zapyta\u0144 <b>Session Traces<\/b>:<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/d528b528b14e3e0ba0550296a07d27db.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJe\u015bli przejdziesz do transakcji, zobaczysz przyk\u0142ad \u015bledzenia, mo\u017cesz uzyska\u0107 list\u0119 zapyta\u0144 do bazy i sprawdzi\u0107 nag\u0142\u00f3wki zapytania. Wszystko podobnie jak w New Relic:<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/297cee55b9b32383c607eb6860ffe20e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOg\u00f3lnie rzecz bior\u0105c, Atatus zadowoli\u0142 szczeg\u00f3\u0142owymi \u015bledzeniami \u2014 bez typowych dla New Relic zlepie\u0144 wywo\u0142a\u0144 w bloku przypomnienia:<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/eb40bb051d7a5435072b96cd659bfebf.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/0232a197ee2d28489fcf86c4921f7080.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJednak brakuje tutaj filtra, kt\u00f3ry (jak w New Relic) odcina\u0142by bardzo szybkie zapytania (&lt;5ms). Z drugiej strony, wy\u015bwietlenie ko\u0144cowej odpowiedzi transakcji (sukces lub b\u0142\u0105d) mi si\u0119 podoba\u0142o.<\/p>\n<p>Panel <b>Bazy Danych<\/b> pomo\u017ce zbada\u0107 zapytania do zewn\u0119trznych baz danych, kt\u00f3re wykonuje aplikacja. Przypominam, \u017ce Atatus znalaz\u0142 tylko PostgreSQL i MySQL, chocia\u017c w projekcie zaanga\u017cowane s\u0105 r\u00f3wnie\u017c Redis i memcached.<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/01bd3b1f4e5f25bb86e9aa79a22588c0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZapytania s\u0105 sortowane wed\u0142ug znanych kryteri\u00f3w: cz\u0119sto\u015b\u0107 wyst\u0119powania, \u015bredni czas odpowiedzi i tak dalej. Warto r\u00f3wnie\u017c zwr\u00f3ci\u0107 uwag\u0119 na zak\u0142adk\u0119 z najwolniejszymi zapytaniami \u2014 to bardzo wygodne. Co wi\u0119cej, dane w tej zak\u0142adce dla PostgreSQL pokry\u0142y si\u0119 z danymi z rozszerzenia <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/11\/pgstatstatements.html\">pg_stat_statements<\/a><\/noindex> \u2014 \u015bwietny wynik!<\/p>\n<p><img decoding=\"async\" alt=\"Nie tylko New Relic: spojrzenie na Datadog i Atatus\" src=\"\/wp-content\/uploads\/2019\/09\/128b3eb7ac1e636e47d4a66a292ca872.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZak\u0142adka <b>Zapytania zewn\u0119trzne<\/b> jest ca\u0142kowicie identyczna z Bazami Danymi.<\/p>\n<h2>Wnioski<\/h2>\n<p>\nObydwa przedstawione narz\u0119dzia dobrze sprawdza\u0142y si\u0119 w roli APM. Ka\u017cde z nich mo\u017ce zaoferowa\u0107 niezb\u0119dne minimum. Kr\u00f3tko podsumowuj\u0105c nasze wra\u017cenia, mo\u017cna powiedzie\u0107:<\/p>\n<h3>Datadog<\/h3>\n<p>\nZalety:<\/p>\n<ul>\n<li> wygodna siatka taryfowa (APM kosztuje 31 USD za hosting);<\/li>\n<li> \u015bwietnie sprawdzi\u0142 si\u0119 z Pythonem;<\/li>\n<li> mo\u017cliwo\u015b\u0107 integracji z OpenTracing<\/li>\n<li> Integracja z Kubernetes;<\/li>\n<li> integracja z NGINX Ingress.<\/li>\n<\/ul>\n<p>\nWady:<\/p>\n<ul>\n<li> jedyny APM, kt\u00f3ry spowodowa\u0142 niedost\u0119pno\u015b\u0107 aplikacji z powodu b\u0142\u0119du modu\u0142u (predis);<\/li>\n<li> s\u0142aba auto-instrumentacja PHP;<\/li>\n<li> cz\u0119\u015bciowo dziwne okre\u015blenie us\u0142ug i ich przeznaczenia.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Atatus<\/h3>\n<p>\nZalety:<\/p>\n<ul>\n<li> g\u0142\u0119boka instrumentacja PHP;<\/li>\n<li> interfejs u\u017cytkownika podobny do New Relic.<\/li>\n<\/ul>\n<p>\nWady:<\/p>\n<ul>\n<li> nie dzia\u0142a na starych systemach operacyjnych (Ubuntu 12.05, CentOS 5);<\/li>\n<li> s\u0142aba auto-instrumentacja;<\/li>\n<li> wsparcie tylko dla dw\u00f3ch j\u0119zyk\u00f3w programowania (Node.js i PHP);<\/li>\n<li> wolna praca interfejsu.<\/li>\n<\/ul>\n<p>\nBior\u0105c pod uwag\u0119 cen\u0119 Atatus wynosz\u0105c\u0105 69 USD miesi\u0119cznie za serwer, woleliby\u015bmy u\u017cywa\u0107 Datadog, kt\u00f3ry doskonale integruje si\u0119 z naszymi potrzebami (aplikacje webowe w K8s) i ma wiele przydatnych funkcji.<\/p>\n<h2>P.S.<\/h2>\n<p>\nPrzeczytaj tak\u017ce na naszym blogu:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/462707\/\">Narz\u0119dzia dla programist\u00f3w aplikacji dzia\u0142aj\u0105cych w Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/436112\/\">Plugin kubectl-debug do debugowania w pod\u2019ach Kubernetes.<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/424531\/\">Mikroserwisy: wielko\u015b\u0107 ma znaczenie, nawet je\u015bli masz Kubernetes<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/465177\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u0441\u0440\u0435\u0434\u0435 SRE-\/DevOps-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435 \u0443\u0434\u0438\u0432\u0438\u0448\u044c, \u0447\u0442\u043e \u043e\u0434\u043d\u0430\u0436\u0434\u044b \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043b\u0438\u0435\u043d\u0442 (\u0438\u043b\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430) \u0438 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442, \u0447\u0442\u043e \u00ab\u0432\u0441\u0451 \u043f\u0440\u043e\u043f\u0430\u043b\u043e\u00bb: \u0441\u0430\u0439\u0442 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043e\u043f\u043b\u0430\u0442\u044b \u043d\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442, \u0436\u0438\u0437\u043d\u044c \u2014 \u0442\u043b\u0435\u043d\u2026 \u041a\u0430\u043a \u0431\u044b \u043d\u0438 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043f\u043e\u043c\u043e\u0447\u044c \u0432 \u0442\u0430\u043a\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0431\u0435\u0437 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0431\u044b\u0432\u0430\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u043e. \u0417\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441\u043a\u0440\u044b\u0442\u0430 \u0432 \u043a\u043e\u0434\u0435 \u0441\u0430\u043c\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u2014 \u043d\u0443\u0436\u043d\u043e \u043b\u0438\u0448\u044c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28443,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37901","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u0441\u0440\u0435\u0434\u0435 SRE-\/DevOps-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/ne-new-relic-om-odnim-vzglyad-na-datadog-i-atatus\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041d\u0435 New Relic\u2019\u043e\u043c \u043e\u0434\u043d\u0438\u043c: \u0432\u0437\u0433\u043b\u044f\u0434 \u043d\u0430 Datadog \u0438 Atatus | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u0441\u0440\u0435\u0434\u0435 SRE-\/DevOps-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/ne-new-relic-om-odnim-vzglyad-na-datadog-i-atatus\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:20:26+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:20:26+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Nie tylko New Relic: spojrzenie na Datadog i Atatus | ProHoster","description":"W\u015br\u00f3d in\u017cynier\u00f3w SRE-\/DevOps nikogo nie ma.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/ne-new-relic-om-odnim-vzglyad-na-datadog-i-atatus","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041d\u0435 New Relic\u2019\u043e\u043c \u043e\u0434\u043d\u0438\u043c: \u0432\u0437\u0433\u043b\u044f\u0434 \u043d\u0430 Datadog \u0438 Atatus | ProHoster","og:description":"\u0412 \u0441\u0440\u0435\u0434\u0435 SRE-\/DevOps-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/ne-new-relic-om-odnim-vzglyad-na-datadog-i-atatus","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:20:26+00:00","article:modified_time":"2019-10-31T19:20:26+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37901","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 19:41:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 18:39:28","updated":"2026-01-23 19:41:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/37901","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=37901"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/37901\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/28443"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=37901"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=37901"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=37901"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}