Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Di hawîrdora endezyarên SRE / DevOps de, ew ê kesek şaş neke ku rojek xerîdar (an pergalek çavdêriyê) xuya dike û radigihîne ku "her tişt winda ye": malper naxebite, drav derbas nabin, jiyan xera dibe. ... Di rewşek weha de hûn çiqas bixwazin alîkariyê bikin jî, bêyî amûrek hêsan û têgihîştin dikare pir dijwar be. Pir caran pirsgirêk di koda serîlêdanê bixwe de veşartî ye; hûn tenê hewce ne ku wê herêmî bikin.

Û di xemgînî û kêfxweşiyê de…

Wusa çêbû ku em ji mêj ve û ji kûr ve evîndarê New Relic bûne. Ew ji bo şopandina performansa serîlêdanê amûrek hêja bû û dimîne, û di heman demê de dihêle hûn mîmariya mîkroxizmetê (bi karanîna nûnerê wê) û pir, hêj bêtir amûr bikin. Û her tişt dikaribû pir baş bûya heke ne ji bo guhertinên di siyaseta bihayê karûbarê de bûya: ew mesrefa ji 2013 sal 3+ car mezin bû. Wekî din, ji sala borî ve, bidestxistina hesabek ceribandinê pêwendiyek bi rêveberek kesane re hewce dike, ku ev yek zehmet dike ku hilberê ji xerîdarek potansiyel re pêşkêş bike.

Rewşa asayî: Relîka Nû li ser "bingehek daîmî" ne hewce ye; ew tenê di gava ku pirsgirêk dest pê dikin de wê bi bîr tînin. Lê hûn hîn jî hewce ne ku bi rêkûpêk bidin (140 USD ji bo serverê mehê), û di binesaziyek ewr de ku bixweber pîvaz dike de dravê pir zêde zêde dibin. Her çend vebijarkek Pay-As-You-Go heye, çalakkirina New Relic dê ji we hewce bike ku hûn serîlêdanê ji nû ve bidin destpêkirin, ku dibe ku bibe sedema windakirina rewşa pirsgirêkî ya ku ew hemî dest pê kiriye. Ne demek berê, New Relic nexşeyek tarîfê ya nû destnîşan kir - Essentials, - ku di nihêrîna pêşîn de wekî alternatîfek maqûl ji Profesyonel re xuya dike ... lê piştî lêkolînek nêzîk derket holê ku hin fonksiyonên girîng winda ne (bi taybetî, ew tune Danûstendinên Key, Cross Application Tracing, Tracing Belavkirin).

Wekî encamek, me dest pê kir ku li ser lêgerîna alternatîfek erzantir bifikirin, û bijartina me li ser du karûbaran ket: Datadog û Atatus. Çima li ser wan?

Di derbarê pêşbazvanan de

Bila ez tavilê bibêjim ku li sûkê çareseriyên din hene. Me tewra vebijarkên Çavkaniya Vekirî jî fikirand, lê ne her xerîdar xwedan kapasîteya belaş e ku mêvandariya çareseriyên xwe-mêvandar bike ... - ji bilî vê, ew ê hewceyê lênihêrîna zêde jî bikin. Hevjîna ku me hilbijart derket ku herî nêzik bû pêdiviyên me:

  • Piştgiriya çêkirî û pêşkeftî ji bo serîlêdanên PHP-ê (staka xerîdarên me pir cihêreng e, lê ev di çarçoweya lêgerîna alternatîfek ji New Relic re rêberek zelal e);
  • lêçûna erzan (kêmtir ji 100 USD mehê her mêvandar);
  • amûra otomatîk;
  • entegrasyonê bi Kubernetes re;
  • Wekheviya pêwendiya New Relic zêdebûnek berbiçav e (ji ber ku endezyarên me jê re têne bikar anîn).

Ji ber vê yekê, di qonaxa hilbijartina destpêkê de, me gelek çareseriyên din ên populer rakirin, û bi taybetî:

  • Tideways, AppDynamics û Dynatrace - ji bo lêçûn;
  • Stackify li Federasyona Rûsyayê tê asteng kirin û daneyên pir hindik nîşan dide.

Gotara mayî bi vî rengî hatî saz kirin ku dê çareseriyên navborî pêşî bi kurtî werin pêşkêş kirin, pişt re ez ê li ser danûstendina meya tîpîk bi New Relic û ezmûna / bandorên ji kirina operasyonên bi vî rengî di karûbarên din de biaxivim.

Pêşkêşkirina hevrikên hilbijartî

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus
li ser Têkiliyek nû, dibe ku her kesî bihîstiye? Vê karûbarê pêşkeftina xwe ji 10 sal berê, di 2008 de dest pê kir. Em ji sala 2012-an vir ve wê bi rengek çalak bikar tînin û di entegrekirina hejmareke pir mezin a serlêdanan di PHP, Ruby û Python de ti pirsgirêk tunene, û di heman demê de me ezmûna yekbûna bi C# û Go re jî hebû. Nivîskarên karûbar ji bo şopandina sepanan, binesaziyê, şopandina binesaziyên mîkroxizmetê, serîlêdanên hêsan ên ji bo cîhazên bikarhêner afirandin, û hêj bêtir çareseriyên xwe hene.

Lêbelê, nûnerê New Relic li ser protokolên xwedan dimeşîne û OpenTracing piştgirî nake. Amûrên pêşkeftî bi taybetî ji bo New Relic guherandinê hewce dike. Di dawiyê de, piştgiriya Kubernetes hîn jî ceribandin e.

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus
Di sala 2010 de dest bi pêşveçûna xwe kir datadog Bi taybetî di warê karanîna di hawîrdorên Kubernetes de ji New Relic balkêştir xuya dike. Bi taybetî, ew entegrasyonê bi NGINX Ingress, berhevkirina têketinê, statsd û protokolên OpenTracing re piştgirî dike, ku destûrê dide te ku hûn daxwazek bikarhêner ji gava ku ew bi qedandinê ve girêdayî ye bişopînin, û her weha têketinên vê daxwazê ​​bibînin (hem li aliyê servera malperê û li ser xerîdar).

Dema ku Datadog bikar tîne, me rastî wê yekê hat ku ew carinan nexşeya mîkroservisê bi xeletî çêkir, û hin kêmasiyên teknîkî. Mînakî, wî celebê karûbarê xelet nas kir (Django bi karûbarek cachkirinê şaş kir) û di serîlêdanek PHP-a ku pirtûkxaneya populer a Predis bikar tîne de bû sedema 500 xeletî.

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus
Atatus - amûra herî ciwan; xizmet di 2014 de hate destpêkirin. Bûdceya kirrûbirra wê bi eşkere ji pêşbazên navnîşkirî kêmtir e, behs pir hindiktir in. Lêbelê, amûr bi xwe pir dişibihe New Relic, ne tenê di kapasîteyên xwe de (APM, çavdêriya gerok, hwd.), lê di xuyangê de jî.

Kêmasiyek girîng ev e ku ew tenê Node.js û PHP-ê piştgirî dike. Ji hêla din ve, ew ji Datadog-ê pir çêtir tête bicîh kirin. Berevajî ya paşîn, Atatus ne hewce ye ku serîlêdan guheztinan bikin an jî etîketên din li kodê zêde bikin.

Em çawa bi New Relic re dixebitin

Naha em binihêrin ka em çawa bi gelemperî New Relic bikar tînin. Ka em bibêjin pirsgirêkek me heye ku pêdivî bi çareseriyê heye:

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Li ser grafikê dîtina wê hêsan e derzşkirin - Ka em wê analîz bikin. Di New Relic de, danûstendinên webê tavilê ji bo serîlêdanek webê têne hilbijartin, hemî pêkhate di grafiya performansê de têne destnîşan kirin, panelên rêjeya xelet, rêjeya daxwazê ​​hene... Ya herî girîng ew e ku rasterast ji van panelan hûn dikarin di navbera cûda de bigerin. beşên serîlêdanê (mînakek, klîkkirina MySQL dê bibe beşa databasê).

Ji ber ku di mînaka ku li ber çavan tê girtin de em di çalakiyê de zêdebûnek dibînin PHP, li ser vê nexşeyê bikirtînin û bixweber biçin Transactions:

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Navnîşa danûstendinan, ku bi bingehîn ji modela MVC-ê kontrolker in, jixwe ji hêla ve hatî veqetandin Herî dem dixwe, ku pir hêsan e: em tavilê dibînin ku serîlêdan çi dike. Li vir mînakên pirsên dirêj hene ku bixweber ji hêla New Relic ve têne berhev kirin. Bi guheztina cûrbecûr, ew hêsan e ku meriv bibîne:

  • kontrolkera serîlêdanê ya herî barkirî;
  • kontrolkerê herî pir tê xwestin;
  • ya herî hêdî ya kontrolkeran.

Wekî din, hûn dikarin her danûstendinê berfireh bikin û bibînin ka serîlêdan di dema ku kod hate darve kirin de çi dikir:

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Di dawiyê de, serîlêdan nimûneyên şopên daxwazên dirêj (yên ku ji 2 çirkeyan zêdetir digirin) hilîne. Li vir panelek ji bo danûstendinek dirêj e:

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Tê dîtin ku du rêbaz gelek wext digire, û di heman demê de dema ku daxwaz hate bicîh kirin, URI û domaina wê jî têne xuyang kirin. Pir caran ev ji bo dîtina daxwazê ​​di têketinê de dibe alîkar. Diçûn Detayên şopandinê, hûn dikarin bibînin ku van rêbazan ji ku derê têne gazî kirin:

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Û di Pirsên Database - pirsên li ser databasên ku di dema ku serîlêdanê de xebitîn hatine darve kirin binirxînin:

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Bi vê zanînê re, em dikarin binirxînin ka çima serîlêdan hêdî dibe û bi pêşdebir re bixebitin ku stratejiyek ji bo çareserkirina pirsgirêkê peyda bikin. Di rastiyê de, New Relic her gav wêneyek zelal nade, lê ew ji hilbijartina vektorê vekolînê re dibe alîkar:

  • dirêj PDO::Construct me berbi fonksiyona xerîb a pgpoll ve bir;
  • bêîstîqrar bi demê re Memcache::Get pêşniyar kir ku makîneya virtual bi xeletî hate mîheng kirin;
  • zemanek bi guman zêde ya ji bo hilanîna şablonê rê li ber lûpek hêlînkirî vekir ku hebûna 500 avataran di hilanîna tiştan de kontrol dike;
  • hwd

Di heman demê de diqewime ku li şûna darvekirina kodê, tiştek ku bi hilanîna daneya derveyî ve girêdayî ye li ser ekrana sereke mezin dibe - û ne girîng e ku ew ê çi be: Redis an PostgreSQL - ew hemî di tabloyê de têne veşartin. Databases.

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Hûn dikarin bingehek taybetî ji bo lêkolînê hilbijêrin û pirsan birêkûpêk bikin - mîna ku ew di Danûstandinên çawa de tê kirin. Û bi çûna tabloya daxwazê, hûn dikarin bibînin ka ev daxwaz çend caran di her yek ji kontrolkerên serîlêdanê de çêdibe, û her weha texmîn bikin ka çend caran jê re tê gotin. Ew pir rehet e:

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Di tabê de daneyên wekhev hene Xizmetên Derveyî, ku daxwazên karûbarên HTTP yên derveyî vedişêre, wek gihandina hilanînê, şandina bûyeran ji cerdevan re, an jî mîna wan. Naveroka tabê bi tevahî dişibihe Database:

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Pêşbaz: derfet û bandor

Naha ya herî balkêş ev e ku meriv kapasîteyên New Relic bi ya ku pêşbazan pêşkêş dikin re bidin ber hev. Mixabin, me nekarî her sê amûran li ser yek guhertoya yek serîlêdana ku di hilberînê de tê xebitandin ceribandin. Lêbelê, me hewl da ku rewşên / veavakirinên ku bi qasî ku pêkan wekhev bûn bidin ber hev.

1.Datadog

Datadog bi panelek bi dîwarê karûbaran me silav dike:

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Ew hewl dide ku serîlêdanan li hêman / mîkroxizmetan bişkîne, ji ber vê yekê di mînaka serîlêdana Django de em ê 2 girêdan bi PostgreSQL re bibînin (defaultdb и postgres), û her weha Celery, Redis. Karkirina bi Datadog re hewce dike ku hûn xwediyê zanîna hindiktirîn a prensîbên MVC bin: hûn hewce ne ku fêm bikin ku daxwazên bikarhêner bi gelemperî ji ku têne. Ev bi gelemperî alîkarî dike nexşeya xizmetê:

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Bi awayê, di New Relic de tiştek wusa heye:

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

... û nexşeya wan, bi dîtina min, hêsantir û zelaltir tê çêkirin: ew ne hêmanên yek serîlêdanê nîşan dide (ku dê wê pir berfireh bike, wekî di doza Datadog de), lê tenê karûbarên taybetî an mîkroxizmetên taybetî.

Ka em vegerin Datadog: ji nexşeya karûbarê em dikarin bibînin ku daxwazên bikarhêner têne Django. Ka em biçin servîsa Django û di dawiyê de bibînin ka em çi hêvî dikin:

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Mixabin, li vir ji hêla xwerû ve grafiyek tune dema danûstandina webê, mîna ya ku em li ser panela sereke ya New Relic dibînin. Lêbelê, ew dikare li cîhê nexşeyê were mîheng kirin % ji dema derbasbûyî. Veguhastina wê bes e Dema navîn ji bo daxwazek ji hêla Tîpa... û niha grafika nas li me dinêre!

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Çima Datadog nexşeyek cûda hilbijart ji bo me sir e. Tiştek xemgîniyek din jî ev e ku pergal bijartina bikarhêner ji bîr nake (berevajî her du hevrikan), û ji ber vê yekê çareserî tenê afirandina panelên xwerû ye.

Lê ez ji şiyana Datadog kêfxweş bûm ku ji van grafîkan veguhezim metrîkên serverên têkildar, têketinan bixwînim û barkirina li ser hilgirên servera malperê (Gunicorn) binirxînim. Her tişt hema hema wekî New Relic e... û hetta piçek bêtir (log)!

Li jêr grafikan danûstendinên bi tevahî mîna New Relic hene:

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Di Datadog de, danûstandin têne gotin çavkaniyên. Hûn dikarin kontrolkeran li gorî hejmara daxwazan, li gorî dema bersivê ya navîn, û li gorî dema herî zêde ya ku ji bo demek bijartî hatî derbas kirin bi rêz bikin.

Hûn dikarin çavkaniyê berfireh bikin û her tiştê ku me berê di New Relic de dîtiye bibînin:

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Li ser çavkaniyê statîstîk hene, navnîşek giştî ya bangên navxweyî, û nimûneyên daxwaznameyên ku dikarin bi koda bersivê ve werin rêz kirin... Bi awayê, endezyarên me bi rastî ji vê veqetandinê hez kirin.

Di Datadog de çavkaniyek mînakek dikare were vekirin û xwendin:

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Parametreyên daxwazkirinê, nexşeyek kurt a dema ku li ser her pêkhateyê derbas bûye, û nexşeyek avjenî ya ku rêza bangan nîşan dide têne pêşkêş kirin. Di heman demê de hûn dikarin li nexşeya şemitokê li dîmenek darê jî veguherînin:

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Û ya herî balkêş temaşekirina barkirina mêvandarê ku daxwaz lê hatîye kirin û dîtina têketinên daxwazê ​​ye.

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Yekbûnek mezin!

Hûn dikarin meraq bikin ku tablo li ku ne Databases и Xizmetên Derveyî, wek New Relic. Li vir yek tune: ji ber ku Datadog serîlêdanê li hêmanan vediqetîne, PostgreSQL dê were hesibandin xizmetek cuda, û li şûna Karûbarên Derve hêja ye ku lê bigerin aws.storage (ew ê ji bo her karûbarê derveyî din a ku serîlêdan dikare bigihîje wekhev be).

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Li vir mînakek bi postgres:

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Di bingeh de her tiştê ku me dixwest heye:

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Hûn dikarin bibînin ka daxwaz ji kîjan "xizmetê" hatî.

Dê neyê bîra we ku Datadog bêkêmasî bi NGINX Ingress re yek dike û dihêle hûn ji gava ku daxwazek di komê de tê şopandina dawî-bi-dawî pêk bînin, û di heman demê de dihêle hûn metrîkên statsd werbigirin, têketin û metrîkên mêvandar berhev bikin. .

Zehfek mezin a Datadog ew e ku bihayê wê ye pêşdixe ji çavdêriya binesaziyê, APM, Rêvebiriya Têketinê û testa Synthetics, yanî. Hûn dikarin plana xwe bi nermî hilbijêrin.

2.Atatus

Tîma Atatus îdîa dike ku karûbarê wan "eynî New Relic e, lê çêtir e." Ka em bibînin ka ev bi rastî wusa ye.

Panela sereke wekî hev xuya dike, lê ne gengaz bû ku Redis û memcached-a ku di serîlêdanê de têne bikar anîn diyar bikin.

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

APM hemî danûstendinan ji hêla xwerû ve hildibijêre, her çend bi gelemperî tenê danûstandinên Webê hewce ne. Mîna Datadog, rêyek tune ku meriv ji panela sereke berbi karûbarê xwestî vegere. Digel vê yekê, danûstendin piştî xeletiyan têne navnîş kirin, ku ji bo APM pir maqûl xuya nake.

Di danûstendinên Atatus de, her tişt bi qasî ku gengaz dibe mîna New Relic e. Nerazîbûn ev e ku dînamîkên ji bo her kontrolker tavilê nayên dîtin. Pêdivî ye ku hûn di tabloya kontrolkerê de lê bigerin, li gorî rêzkirinê Pir Dem Vexwarin:

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Lîsteya asayî ya kontrolkeran di tabloyê de heye Lêkolîn:

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Bi hin awayan, ev tabloya Datadog tîne bîra min û ez jê hez dikim ji ya mîna ya New Relic çêtir e.

Hûn dikarin her danûstendinê berfireh bikin û bibînin ka serîlêdanê çi dikir:

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Panel di heman demê de bêtir Datadog tîne bîra xwe: hejmarek daxwazî, wêneyek giştî ya bangan hene. Panela jorîn tabloyek xeletiyê peyda dike Têkçûnên HTTP û mînakên pirsên hêdî Şopên rûniştinê:

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Ger hûn biçin danûstendinek, hûn dikarin mînakek şopek bibînin, hûn dikarin navnîşek daxwaznameyên databasê bistînin û li sernavên daxwaznameyê binihêrin. Her tişt mîna New Relic e:

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Bi gelemperî, Atatus ji şopên hûrgulî dilxweş dibe - bêyî ku guheztina tîpên New Relic ya bangan di bloka bîranînê de bike:

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus
Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Lêbelê, ew fîlterek tune ye ku (wek New Relic) daxwazên ultra-lez qut bike (<5ms). Ji hêla din ve, min ji nîşandana bersiva danûstendina paşîn (serkeftin an xeletî) hez kir.

Panelya Databases dê ji we re bibe alîkar ku hûn daxwazên databasên derveyî yên ku serîlêdanê dike bixwînin. Bila ez ji we re bi bîr bînim ku Atatus tenê PostgreSQL û MySQL dît, her çend Redis û memcached jî di projeyê de beşdar in.

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Daxwaz li gorî pîvanên asayî têne rêz kirin: pirbûna bersivê, dema bersivê ya navîn, û hwd. Di heman demê de ez dixwazim tabloya bi pirsên herî hêdî re jî behs bikim - ew pir hêsan e. Digel vê yekê, daneyên di vê tabloyê de ji bo PostgreSQL bi daneyên ji dirêjkirinê re hevûdu bûn pg_stat_statements - Encamek hêja!

Ne Relîka Nû tenê: Nêrînek li Datadog û Atatus

Tab Daxwazên Derveyî bi tevahî bi Databases re wekhev e.

vebiguherin

Her du amûrên pêşkêşkirî di rola APM-ê de baş derketin. Her yek ji wan dikare herî kêm hewce pêşkêşî bike. Nêrînên me dikarin bi kurtî bi vî rengî werin berhev kirin:

datadog

Pros:

  • nexşeya tarîfê ya hêsan (APM ji bo mêvandar 31 USD mesref dike);
  • bi Python re baş xebitî;
  • Ihtîmala entegrasyonê bi OpenTracing re
  • entegrasyonê bi Kubernetes re;
  • entegrasyonê bi NGINX Ingress.

Bawer:

  • yekane APM-a ku bû sedem ku serîlêdan ji ber xeletiyek modulê (predis) neberdest bibe;
  • PHP-a oto-amûrên qels;
  • pênase hinekî xerîb ya karûbar û armanca wan.

Atatus

Pros:

  • amûrkirina kûr a PHP;
  • navrûya bikarhêner a mîna New Relic.

Bawer:

  • li ser pergalên xebitandinê yên kevintir naxebite (Ubuntu 12.05, CentOS 5);
  • qels auto-instrumentation;
  • piştgirî ji bo tenê du zimanan (Node.js û PHP);
  • Navbera hêdî.

Li gorî bihayê Atatus 69 USD her mehê ji bo serverê, em tercîh dikin ku Datadog-ê bikar bînin, ku bi hewcedariyên me re (serlêdanên webê di K8-an de) baş tevdigere û gelek taybetmendiyên bikêr heye.

PS

Li ser bloga me jî bixwînin:

Source: www.habr.com

Add a comment