Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Di lingkungan insinyur SRE / DevOps, éta moal kaget saha waé yén hiji dinten klien (atanapi sistem ngawaskeun) némbongan sareng ngalaporkeun yén "sadayana leungit": situsna henteu jalan, pangmayaran henteu ngaliwat, hirup rusak. ... Henteu paduli sabaraha anjeun hoyong ngabantosan dina kaayaan sapertos kitu, tiasa sesah pisan ngalakukeun ieu tanpa alat anu sederhana sareng kaharti. Seringna masalahna disumputkeun dina kode aplikasi sorangan, anjeun ngan ukur kedah ngalokalkeunana.

Sareng dina kasedihan sareng kabagjaan…

Ieu jadi kajadian nu urang geus lila jeung deeply murag asih jeung New Relic. Éta sareng tetep janten alat anu saé pikeun ngawaskeun kinerja aplikasi, sareng ogé ngamungkinkeun anjeun pikeun ngintunkeun arsitéktur microservice (ngagunakeun agénna) sareng seueur deui. Sareng sadayana tiasa saé upami sanés parobihan dina kabijakan harga jasa: éta biaya kalawan 2013 taun tumuwuh 3+ kali. Sajaba ti éta, saprak taun ka tukang, meunangkeun akun sidang merlukeun komunikasi jeung manajer pribadi, nu ngajadikeun hésé nampilkeun produk ka konsumén poténsial.

Kaayaan biasa: Relic Anyar henteu diperyogikeun dina "dasar permanén"; aranjeunna ngan ukur émut nalika masalah dimimitian. Tapi anjeun masih kedah mayar rutin (140 USD per server per bulan), sarta dina infrastruktur awan skala otomatis jumlahna nambahan rada badag. Sanaos aya pilihan Pay-As-You-Go, ngaktifkeun New Relic bakal ngabutuhkeun anjeun ngabalikan deui aplikasi, anu tiasa nyababkeun leungitna kaayaan masalah anu sadayana dimimitian. Teu lami pisan, New Relic ngenalkeun rencana tarif énggal - poko, - nu di glance kahiji Sigana alternatif lumrah mun Profesional ... tapi kana ujian ngadeukeutan tétéla yén sababaraha fungsi penting leungit (khususna, teu boga Transaksi konci, Cross Aplikasi Tracing, Disebarkeun Tracing).

Hasilna, urang mimiti mikir ngeunaan milarian alternatif anu langkung mirah, sareng pilihan urang murag kana dua jasa: Datadog sareng Atatus. Naha on aranjeunna?

Ngeunaan pesaing

Hayu atuh langsung nyarios yén aya solusi sanés dina pasaran. Urang malah dianggap pilihan Open Source, tapi teu unggal klien boga kapasitas bébas host solusi timer hosted ... - salian ti éta, maranéhna bakal merlukeun pangropéa tambahan. Pasangan anu urang pilih tétéla anu pangdeukeutna kabutuhan urang:

  • diwangun-di tur dimekarkeun rojongan pikeun aplikasi PHP (tumpukan klien kami pisan rupa-rupa, tapi ieu téh pamimpin jelas dina konteks neangan alternatif pikeun New Relic);
  • ongkos affordable (kirang ti 100 USD per bulan per host);
  • alat-alat otomatis;
  • integrasi jeung Kubernetes;
  • Kasaruaan sareng antarmuka New Relic mangrupikeun tambah anu jelas (sabab insinyur kami biasa).

Ku alatan éta, dina tahap seleksi awal, urang ngaleungitkeun sababaraha solusi populér séjén, sarta hususna:

  • Tideways, AppDynamics sareng Dynatrace - kanggo biaya;
  • Stackify diblokir di Féderasi Rusia sareng nunjukkeun sakedik data.

Sesa tulisan disusun ku cara anu solusi anu ditaroskeun heula bakal dibere sakedap, saatos éta kuring bakal ngobrol ngeunaan interaksi has urang sareng New Relic sareng pangalaman / kesan tina ngalaksanakeun operasi anu sami dina jasa anu sanés.

Presentasi pesaing dipilih

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus
dina anyar Relic, meureun dulur geus uninga? Ladenan ieu mimiti pangwangunanna langkung ti 10 taun ka pengker, dina taun 2008. Kami geus aktip ngagunakeun eta saprak 2012 sarta teu boga masalah ngahijikeun jumlah bener badag tina aplikasi dina PHP, Ruby jeung Python, sarta kami ogé geus ngalaman integrasi jeung C # na Go. Panulis jasa ngagaduhan solusi pikeun ngawaskeun aplikasi, infrastruktur, ngalacak infrastruktur jasa mikro, nyiptakeun aplikasi anu cocog pikeun alat pangguna, sareng seueur deui.

Nanging, agén New Relic dijalankeun dina protokol proprietary sareng henteu ngadukung OpenTracing. Instrumentasi canggih butuh éditan khusus pikeun New Relic. Tungtungna, dukungan Kubernetes masih ékspériméntal.

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus
Ngamimitian pangwangunan dina 2010 datadog katingalina langkung pikaresepeun tibatan New Relic tepatna dina hal panggunaan di lingkungan Kubernetes. Khususna, éta ngadukung integrasi sareng NGINX Ingress, koléksi log, statsd sareng protokol OpenTracing, anu ngamungkinkeun anjeun ngalacak pamundut pangguna ti mimiti nyambung ka parantosan, ogé milarian log pikeun pamundut ieu (duanana dina sisi server wéb. sareng konsumen).

Nalika nganggo Datadog, urang mendakan yén éta kadang-kadang ngawangun peta microservice teu leres, sareng sababaraha kakurangan téknis. Contona, éta salah nangtukeun jenis jasa (mistaking Django pikeun layanan cache) sarta ngabalukarkeun 500 kasalahan dina aplikasi PHP ngagunakeun perpustakaan Predis populér.

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus
Atatus - instrumen bungsu; jasa ieu diluncurkeun dina 2014. anggaran pamasaran na jelas inferior mun pesaing didaptarkeun, nyebutkeun loba kirang umum. Nanging, alat éta sami pisan sareng New Relic, henteu ngan ukur dina kamampuanna (APM, monitoring Browser, jsb), tapi ogé dina penampilan.

Kelemahan anu signifikan nyaéta ngan ukur ngadukung Node.js sareng PHP. Di sisi séjén, éta dilaksanakeun noticeably hadé ti Datadog. Beda sareng anu terakhir, Atatus henteu ngabutuhkeun aplikasi pikeun ngarobih atanapi nambihan labél tambahan kana kode éta.

Kumaha urang damel sareng New Relic

Ayeuna hayu urang terang kumaha urang umumna nganggo New Relic. Anggap urang gaduh masalah anu peryogi solusi:

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Ieu gampang pikeun nempo dina grafik mumbul - Hayu urang analisa eta. Dina New Relic, transaksi web langsung dipilih pikeun aplikasi wéb, sadaya komponén dituduhkeun dina grafik kinerja, aya kasalahan-rate, panels request-rate... Anu paling penting nyaéta langsung tina panel ieu anjeun tiasa ngalih antara béda. bagian tina aplikasi (contona, ngaklik dina MySQL bakal ngakibatkeun bagian database).

Kusabab dina conto anu ditalungtik urang ningali hiji surge dina kagiatan PHP, klik dina bagan ieu sareng otomatis angkat ka transaksi:

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Daptar transaksi, anu dasarna mangrupikeun pangendali tina modél MVC, parantos diurutkeun Pangpangna waktos, anu pohara merenah: urang langsung ningali naon aplikasi nu teu. Ieu conto patarosan panjang anu otomatis dikumpulkeun ku New Relic. Ku ngaganti asihan, éta gampang pikeun manggihan:

  • controller aplikasi paling dimuat;
  • controller pangseringna dipénta;
  • nu slowest tina controller.

Salaku tambahan, anjeun tiasa ngalegaan unggal transaksi sareng ningali naon anu dilakukeun ku aplikasi dina waktos kodeu dieksekusi:

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Tungtungna, aplikasi nyimpen conto ngambah pamundut panjang (anu nyandak leuwih ti 2 detik). Ieu panel pikeun transaksi anu panjang:

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Ieu bisa ditempo yén dua métode butuh loba waktu, sarta dina waktos anu sareng nalika pamundut ieu dieksekusi, URI na domain na ogé ditémbongkeun. Sering pisan ieu ngabantosan milarian pamundut dina log. Bade ka Rincian ngalacak, anjeun tiasa ningali ti mana metode ieu disebut:

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Jeung dina Patarosan database - Evaluasi patarosan ka pangkalan data anu dieksekusi nalika aplikasi dijalankeun:

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Bersenjata sareng pangaweruh ieu, urang tiasa ngira-ngira naha aplikasina ngalambatkeun sareng damel sareng pamekar pikeun ngadamel strategi pikeun ngabéréskeun masalah. Kanyataanana, New Relic henteu salawasna masihan gambaran anu jelas, tapi ngabantosan milih véktor panalungtikan:

  • panjang PDO::Construct ngarah urang kana fungsi aneh pgpoll;
  • instability kana waktu Memcache::Get ngusulkeun yén mesin virtual ieu ngonpigurasi leres;
  • waktos curiga ngaronjat pikeun ngolah template ngarah ka loop nested mariksa ayana 500 avatars dina gudang obyék;
  • teras salajengna…

Éta ogé kajadian yén tinimbang ngalaksanakeun kode, aya anu aya hubunganana sareng panyimpenan data éksternal tumbuh dina layar utama - sareng henteu masalah naon éta: Redis atanapi PostgreSQL - aranjeunna sadayana disumputkeun dina tab. basis data.

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Anjeun tiasa milih dasar khusus pikeun panalungtikan sareng nyortir patarosan - sami sareng kumaha éta dilakukeun dina Transaksi. Sareng ku buka tab pamundut, anjeun tiasa ningali sabaraha kali pamundut ieu lumangsung dina unggal pangendali aplikasi, sareng ogé estimasi sabaraha sering disebut. Éta pisan nyaman:

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Tab ngandung data anu sami Jasa éksternal, nu nyumputkeun pamundut ka jasa HTTP éksternal, kayaning ngakses gudang obyék, ngirim acara ka sentry, atawa kawas. Eusi tabna sami sareng Databases:

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Pesaing: kasempetan jeung tayangan

Ayeuna anu paling pikaresepeun nyaéta ngabandingkeun kamampuan New Relic sareng anu ditawarkeun pesaing. Hanjakalna, kami henteu tiasa nguji sadaya tilu alat dina hiji vérsi hiji aplikasi anu dijalankeun dina produksi. Najan kitu, urang nyoba ngabandingkeun kaayaan / konfigurasi nu éta salaku idéntik sabisa.

1.Datadog

Datadog ngabagéakeun kami kalayan panel kalayan témbok jasa:

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Ieu nyoba megatkeun aplikasi kana komponén / microservices, jadi dina conto aplikasi Django urang bakal ningali 2 sambungan kana PostgreSQL (defaultdb и postgres), kitu ogé Seledri, Redis. Gawe sareng Datadog merlukeun anjeun gaduh pangaweruh minimal ngeunaan prinsip MVC: Anjeun kudu ngarti ti mana requests pamaké umumna asalna. Ieu biasana mantuan peta jasa:

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Ku jalan kitu, aya anu sami dina New Relic:

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

... jeung peta maranéhanana, dina pamadegan mah, dijieun basajan tur jelas: teu nembongkeun komponén hiji aplikasi (anu bakal nyieun overly lengkep, sakumaha dina kasus Datadog), tapi ngan jasa husus atawa microservices.

Hayu urang balik deui ka Datadog: tina peta jasa urang tiasa ningali yén pamundut pangguna sumping ka Django. Hayu urang angkat ka jasa Django sareng tungtungna ningali naon anu kami ngarepkeun:

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Hanjakal, teu aya grafik di dieu sacara standar waktos urus web, sami sareng anu urang tingali dina panel New Relic utama. Sanajan kitu, eta bisa ngonpigurasi di tempat jadwal % waktos spent. Ieu cukup pikeun pindah ka Rata-rata waktos per pamundut ku Tipe... tur ayeuna grafik akrab keur nempo urang!

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Naha Datadog milih bagan anu béda mangrupikeun misteri pikeun urang. Hal frustrating sejen nyaeta sistem teu apal pilihan pamaké (teu kawas duanana pesaing), sarta ku kituna hijina solusi pikeun nyieun panels custom.

Tapi kuring gumbira kalayan kamampuan Datadog pikeun ngalih tina grafik ieu kana métrik server anu aya hubunganana, maca log sareng ngaevaluasi beban dina pawang server wéb (Gunicorn). Sadayana ampir sami sareng New Relic ... komo deui sakedik (log)!

Di handap ieu grafik aya transaksi anu sami sareng New Relic:

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Dina Datadog, transaksi disebut sumberdaya. Anjeun tiasa nyortir pangendali dumasar kana jumlah pamundut, ku waktos réspon rata-rata, sareng ku waktos maksimal anu dianggo pikeun waktos anu dipilih.

Anjeun tiasa ngalegaan sumberna sareng ningali sadaya anu parantos kami perhatikeun dina New Relic:

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Aya statistik dina sumberdaya, daptar umum telepon internal, sarta conto requests nu bisa diurutkeun ku kode respon ... Ku jalan kitu, insinyur urang bener resep asihan ieu.

Sakur conto sumberdaya di Datadog tiasa dibuka sareng ditalungtik:

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Parameter pamundut, bagan kasimpulan waktos anu dianggo dina unggal komponén, sareng bagan curug anu nunjukkeun urutan telepon anu dibere. Anjeun ogé tiasa ngalih ka tampilan tangkal tina bagan curug:

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Sareng anu paling pikaresepeun nyaéta ningali beban host dimana pamundutna dieksekusi sareng ningali log pamundut.

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Integrasi hébat!

Anjeun tiasa heran dimana tabna basis data и Jasa éksternal, sakumaha dina New Relic. Henteu aya di dieu: kumargi Datadog ngarobih aplikasi kana komponén, PostgreSQL bakal dianggap jasa misah, sarta tinimbang Layanan éksternal éta patut pilari aws.storage (éta bakal sami pikeun unggal jasa éksternal sanés anu tiasa diaksés ku aplikasi).

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Ieu conto sareng postgres:

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Intina aya sadayana anu urang pikahoyong:

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Anjeun tiasa ningali mana "jasa" paménta éta asalna.

Éta moal salah pikeun ngingetkeun yén Datadog ngahijikeun sampurna sareng NGINX Ingress sareng ngamungkinkeun anjeun pikeun ngalacak tungtung-ka-tungtung tina waktos pamundut sumping dina kluster, sareng ogé ngamungkinkeun anjeun nampi métrik statsd, ngumpulkeun log sareng métrik host. .

A tambah badag tina Datadog nyaeta harga na nuju ngawangun ti ngawaskeun infrastruktur, APM, Manajemén Log jeung uji Synthetics, i.e. Anjeun tiasa milih rencana anjeun sacara fleksibel.

2.Atatus

Tim Atatus nyatakeun yén jasana "sarua sareng New Relic, tapi langkung saé." Hayu urang tingali lamun ieu bener kitu.

Panel utama katingalina sami, tapi henteu mungkin pikeun nangtukeun Redis sareng memcached anu dianggo dina aplikasi.

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

APM milih sadaya transaksi sacara standar, sanaos biasana ngan ukur transaksi wéb anu diperyogikeun. Sapertos Datadog, teu aya deui jalan pikeun napigasi ka layanan anu dipikahoyong tina panel utama. Leuwih ti éta, transaksi didaptarkeun sanggeus kasalahan, nu teu sigana pisan logis pikeun APM.

Dina transaksi Atatus, sadayana sami-sami sami sareng New Relic. The downside nyaeta dinamika pikeun tiap controller teu langsung katempo. Anjeun kudu neangan eta dina tabel controller, asihan ku Kalolobaan waktos dihakan:

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Daptar biasa tina Controllers sayogi dina tab ngajajah:

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Dina sababaraha cara, méja ieu ngingetkeun Datadog sareng kuring resep langkung saé tibatan anu sami dina New Relic.

Anjeun tiasa ngalegaan unggal transaksi sareng ningali naon anu dilakukeun ku aplikasi:

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Panel ogé langkung ngingetkeun Datadog: aya sababaraha pamundut, gambaran umum telepon. Panel luhur nyadiakeun tab kasalahan Gagalna HTTP jeung conto queries slow Ngambah Sidang:

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Lamun buka urus a, anjeun tiasa ningali conto renik a, anjeun bisa meunangkeun daptar requests ka database jeung kasampak di headers pamundut. Sadayana sami sareng New Relic:

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Sacara umum, Atatus resep ngambah rinci - tanpa gluing New Relic has telepon kana blok panginget:

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus
Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Nanging, teu aya saringan anu (sapertos New Relic) bakal ngiringan pamenta ultra-gancang (<5ms). Di sisi anu sanésna, kuring resep tampilan réspon transaksi ahir (kasuksésan atanapi kasalahan).

Panél basis data bakal ngabantosan anjeun ngulik pamundut ka pangkalan data éksternal anu didamel ku aplikasi. Hayu atuh ngingetan yén Atatus kapanggih ukur PostgreSQL na MySQL, sanajan Redis na memcached ogé kalibet dina proyék.

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Paménta diurutkeun dumasar kana kritéria biasa: frékuénsi réspon, waktos réspon rata-rata, sareng sajabana. Abdi ogé hoyong nyebatkeun tab kalayan patarosan anu paling laun - éta saé pisan. Leuwih ti éta, data dina tab ieu pikeun PostgreSQL coincided jeung data ti extension nu pg_stat_statements - hasilna alus teuing!

Henteu Anyar Relic nyalira: katingal di Datadog sareng Atatus

Tab Requests éksternal lengkep idéntik jeung Databases.

papanggihan

Duanana parabot dibere dipigawé ogé dina peran APM. Salah sahijina tiasa nawiskeun minimum anu diperyogikeun. Tayangan urang tiasa diringkes sakeudeung kieu:

datadog

pro:

  • jadwal tarif merenah (APM waragad 31 USD per host);
  • digawé ogé kalawan Python;
  • Kamungkinan integrasi sareng OpenTracing
  • integrasi jeung Kubernetes;
  • integrasi sareng NGINX Ingress.

kontra:

  • hiji-hijina APM anu nyababkeun aplikasi henteu sayogi kusabab kasalahan modul (predis);
  • lemah PHP otomatis-instruméntasi;
  • harti sabagean aneh tina jasa jeung tujuanana.

Atatus

pro:

  • jero PHP instrumentation;
  • panganteur pamaké sarupa New Relic.

kontra:

  • teu dianggo dina sistem operasi heubeul (Ubuntu 12.05, CentOS 5);
  • lemah otomatis-instruméntasi;
  • ngadukung ngan ukur dua basa (Node.js sareng PHP);
  • panganteur slow.

Mertimbangkeun harga Atatus 69 USD per bulan per server, urang leuwih resep ngagunakeun Datadog, nu integrates ogé kalawan kaperluan urang (aplikasi web di K8s) sarta ngabogaan loba fitur mangpaat.

PS

Baca ogé dina blog urang:

sumber: www.habr.com

Tambahkeun komentar