Nid New Relic yn unig: golwg ar Datadog ac Atatus

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Yn amgylchedd peirianwyr SRE/DevOps, ni fydd yn syndod i unrhyw un bod cleient (neu system fonitro) yn ymddangos un diwrnod ac yn adrodd bod “popeth yn cael ei golli”: nid yw'r wefan yn gweithio, nid yw taliadau'n mynd drwodd, mae bywyd yn pydru ... Ni waeth faint yr hoffech chi helpu mewn sefyllfa o'r fath , gall fod yn anodd iawn gwneud hyn heb offeryn syml a dealladwy. Yn aml mae'r broblem wedi'i chuddio yng nghod y cais ei hun; does ond angen i chi ei lleoleiddio.

Ac mewn tristwch ac mewn llawenydd ...

Digwyddodd felly ein bod wedi cwympo mewn cariad â New Relic ers amser maith ac yn ddwfn. Roedd ac mae'n parhau i fod yn arf rhagorol ar gyfer monitro perfformiad cais, ac mae hefyd yn caniatáu ichi offeryn y bensaernïaeth microwasanaeth (gan ddefnyddio ei asiant) a llawer, llawer mwy. A gallai popeth fod wedi bod yn wych oni bai am newidiadau ym mholisi prisio'r gwasanaeth: hynny costio o flwyddyn 2013 tyfodd 3+ gwaith. Yn ogystal, ers y llynedd, mae cael cyfrif prawf yn gofyn am gyfathrebu â rheolwr personol, sy'n ei gwneud hi'n anodd cyflwyno'r cynnyrch i ddarpar gwsmer.

Y sefyllfa arferol: Nid oes angen New Relic ar sail “barhaol”; dim ond ar hyn o bryd y mae problemau yn cychwyn y maent yn ei gofio. Ond mae angen i chi dalu'n rheolaidd o hyd (140 USD y gweinydd y mis), ac mewn seilwaith cwmwl sy'n graddio'n awtomatig mae'r symiau'n adio braidd yn fawr. Er bod opsiwn Talu Wrth Fynd, bydd galluogi New Relic yn gofyn i chi ailgychwyn y cais, a allai arwain at golli'r sefyllfa broblemus y dechreuwyd y cyfan ar ei chyfer. Ddim yn bell yn ôl, cyflwynodd New Relic gynllun tariff newydd - Hanfodion, - sydd ar yr olwg gyntaf yn edrych fel dewis arall rhesymol i Broffesiynol... ond o edrych yn fanylach arno daeth i'r amlwg bod rhai swyddogaethau pwysig ar goll (yn arbennig, nid oes ganddo Trafodion Allweddol, Olrhain Traws-Gymhwysiad, Olrhain Dosbarthedig).

O ganlyniad, fe ddechreuon ni feddwl am chwilio am ddewis arall rhatach, ac roedd ein dewis yn dibynnu ar ddau wasanaeth: Datadog ac Atatus. Pam arnyn nhw?

Ynglŷn â chystadleuwyr

Gadewch imi ddweud ar unwaith fod yna atebion eraill ar y farchnad. Fe wnaethom hyd yn oed ystyried opsiynau Ffynhonnell Agored, ond nid oes gan bob cleient y gallu am ddim i gynnal datrysiadau hunangynhaliol ... - yn ogystal, bydd angen cynnal a chadw ychwanegol arnynt. Trodd y cwpl a ddewison ni'r rhai agosaf ato ein hanghenion:

  • cefnogaeth adeiledig a datblygedig ar gyfer cymwysiadau PHP (mae pentwr ein cleientiaid yn amrywiol iawn, ond mae hwn yn arweinydd clir yng nghyd-destun chwilio am ddewis arall yn lle New Relic);
  • cost fforddiadwy (llai na 100 USD y mis fesul gwesteiwr);
  • offeryniaeth awtomatig;
  • integreiddio â Kubernetes;
  • Mae'r tebygrwydd i'r rhyngwyneb New Relic yn fantais amlwg (gan fod ein peirianwyr wedi arfer ag ef).

Felly, yn y cam dethol cychwynnol, fe wnaethom ddileu nifer o atebion poblogaidd eraill, ac yn benodol:

  • Tideways, AppDynamics a Dynatrace - am gost;
  • Mae Stackify wedi'i rwystro yn Ffederasiwn Rwsia ac yn dangos rhy ychydig o ddata.

Mae gweddill yr erthygl wedi'i strwythuro yn y fath fodd fel y bydd yr atebion dan sylw yn cael eu cyflwyno'n fyr yn gyntaf, ac ar ôl hynny byddaf yn siarad am ein rhyngweithio nodweddiadol â New Relic a'n profiad / argraffiadau o berfformio gweithrediadau tebyg mewn gwasanaethau eraill.

Cyflwyno cystadleuwyr dethol

Nid New Relic yn unig: golwg ar Datadog ac Atatus
Про New Relic, mae'n debyg bod pawb wedi clywed? Dechreuodd y gwasanaeth hwn ei ddatblygiad fwy na 10 mlynedd yn ôl, yn 2008. Rydym wedi bod yn ei ddefnyddio'n weithredol ers 2012 ac nid ydym wedi cael unrhyw broblemau wrth integreiddio nifer fawr iawn o gymwysiadau yn PHP, Ruby a Python, ac rydym hefyd wedi cael profiad o integreiddio â C# and Go. Mae gan awduron y gwasanaeth atebion ar gyfer monitro cymwysiadau, seilwaith, olrhain seilwaith microwasanaeth, creu cymwysiadau cyfleus ar gyfer dyfeisiau defnyddwyr, a llawer mwy.

Fodd bynnag, mae'r asiant New Relic yn rhedeg ar brotocolau perchnogol ac nid yw'n cefnogi OpenTracing. Mae offeryniaeth uwch yn gofyn am olygiadau yn benodol ar gyfer New Relic. Yn olaf, mae cefnogaeth Kubernetes yn dal i fod yn arbrofol.

Nid New Relic yn unig: golwg ar Datadog ac Atatus
Dechreuodd ei ddatblygiad yn 2010 Ci Data yn edrych yn amlwg yn fwy diddorol na New Relic yn union o ran defnydd yn amgylcheddau Kubernetes. Yn benodol, mae'n cefnogi integreiddio â NGINX Ingress, casglu logiau, statsd a phrotocolau OpenTracing, sy'n eich galluogi i olrhain cais defnyddiwr o'r eiliad y mae'n gysylltiedig â chwblhau, yn ogystal â dod o hyd i logiau ar gyfer y cais hwn (y ddau ar ochr gweinydd gwe ac ar y defnyddiwr).

Wrth ddefnyddio Datadog, gwelsom ei fod weithiau'n adeiladu'r map microwasanaeth yn anghywir, a rhai diffygion technegol. Er enghraifft, fe gamdnabu'r math o wasanaeth (gan gamgymryd Django am wasanaeth caching) ac achosodd 500 o wallau mewn cymhwysiad PHP gan ddefnyddio llyfrgell boblogaidd Predis.

Nid New Relic yn unig: golwg ar Datadog ac Atatus
Atatws — yr offeryn ieuengaf; lansiwyd y gwasanaeth yn 2014. Mae ei gyllideb farchnata yn amlwg yn israddol i'r cystadleuwyr a restrir, mae sôn yn llawer llai cyffredin. Fodd bynnag, mae'r offeryn ei hun yn debyg iawn i New Relic, nid yn unig yn ei alluoedd (APM, monitro Porwr, ac ati), ond hefyd o ran ymddangosiad.

Anfantais sylweddol yw ei fod yn cefnogi Node.js a PHP yn unig. Ar y llaw arall, fe'i gweithredir yn amlwg yn well na Datadog. Yn wahanol i'r olaf, nid yw Atatus yn gofyn am geisiadau i wneud addasiadau nac ychwanegu labeli ychwanegol at y cod.

Sut rydym yn gweithio gyda New Relic

Nawr, gadewch i ni edrych ar sut rydyn ni'n defnyddio New Relic yn gyffredinol. Gadewch i ni ddweud bod gennym broblem y mae angen ei datrys:

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Mae'n hawdd ei weld ar y graff sblash - Gadewch i ni ei ddadansoddi. Yn New Relic, mae trafodion gwe yn cael eu dewis ar unwaith ar gyfer cymhwysiad gwe, mae'r holl gydrannau wedi'u nodi yn y graff perfformiad, mae yna baneli cyfradd gwall, cyfradd cais... Yr hyn sydd bwysicaf yw y gallwch chi symud yn uniongyrchol o'r paneli hyn rhwng gwahanol rhannau o'r cais (er enghraifft, bydd clicio ar MySQL yn arwain at adran y gronfa ddata).

Oherwydd yn yr enghraifft dan sylw gwelwn ymchwydd mewn gweithgaredd PHP, cliciwch ar y siart hwn ac yn awtomatig ewch i Trafodion:

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Mae'r rhestr o drafodion, sydd yn eu hanfod yn rheolwyr o'r model MVC, eisoes wedi'i didoli gan Yn cymryd llawer o amser, sy'n gyfleus iawn: gwelwn ar unwaith beth mae'r cais yn ei wneud. Dyma enghreifftiau o ymholiadau hir sy'n cael eu casglu'n awtomatig gan New Relic. Trwy newid didoli, mae'n hawdd dod o hyd i:

  • y rheolydd cais mwyaf llwythog;
  • rheolwr y gofynnir amdano amlaf;
  • yr arafaf o'r rheolwyr.

Yn ogystal, gallwch ehangu pob trafodiad a gweld beth oedd y cais yn ei wneud ar yr adeg y gweithredwyd y cod:

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Yn olaf, mae'r rhaglen yn storio enghreifftiau o olion ceisiadau hir (y rhai sy'n cymryd mwy na 2 eiliad). Dyma'r panel ar gyfer trafodiad hir:

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Gellir gweld bod dau ddull yn cymryd llawer o amser, ac ar yr un pryd yr amser y gweithredwyd y cais, dangosir ei URI a'i barth hefyd. Yn aml iawn mae hyn yn helpu i ddod o hyd i'r cais yn y logiau. Mynd i Olrhain y manylion, gallwch weld o ble mae'r dulliau hyn yn cael eu galw:

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Ac yn Ymholiadau cronfa ddata — gwerthuso ymholiadau i gronfeydd data a weithredwyd tra roedd y rhaglen yn rhedeg:

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Gyda'r wybodaeth hon, gallwn werthuso pam mae'r cais yn arafu a gweithio gyda'r datblygwr i lunio strategaeth i ddatrys y broblem. Mewn gwirionedd, nid yw New Relic bob amser yn rhoi darlun clir, ond mae'n helpu i ddewis y fector ymchwilio:

  • hir PDO::Construct ein harwain i weithrediad rhyfedd pgpoll ;
  • ansefydlogrwydd dros amser Memcache::Get yn awgrymu bod y peiriant rhithwir wedi'i ffurfweddu'n anghywir;
  • arweiniodd cynnydd amheus yn yr amser ar gyfer prosesu templedi at ddolen nythu yn gwirio presenoldeb 500 avatar yn y storfa gwrthrychau;
  • ac yn y blaen…

Mae hefyd yn digwydd, yn lle gweithredu cod, bod rhywbeth sy'n ymwneud â storio data allanol yn tyfu ar y brif sgrin - ac nid oes ots beth fydd: Redis neu PostgreSQL - maent i gyd wedi'u cuddio yn y tab Cronfeydd Data.

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Gallwch ddewis sylfaen benodol ar gyfer ymchwil a didoli ymholiadau - yn debyg i sut y caiff ei wneud yn Trafodion. A thrwy fynd i'r tab cais, gallwch weld sawl gwaith y mae'r cais hwn yn digwydd ym mhob un o reolwyr y cais, a hefyd amcangyfrif pa mor aml y'i gelwir. Mae'n gyfforddus iawn:

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Mae'r tab yn cynnwys data tebyg Gwasanaethau Allanol, sy'n cuddio ceisiadau i wasanaethau HTTP allanol, megis cyrchu storio gwrthrychau, anfon digwyddiadau at anfonwyr, neu debyg. Mae cynnwys y tab yn hollol debyg i Gronfeydd Data:

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Cystadleuwyr: cyfleoedd ac argraffiadau

Nawr y peth mwyaf diddorol yw cymharu galluoedd New Relic â'r hyn y mae cystadleuwyr yn ei gynnig. Yn anffodus, nid oeddem yn gallu profi pob un o'r tri theclyn ar un fersiwn o un rhaglen a oedd yn rhedeg wrth gynhyrchu. Fodd bynnag, ceisiwyd cymharu sefyllfaoedd/cyfluniadau a oedd mor union yr un fath â phosibl.

1.Datadog

Mae Datadog yn ein cyfarch gyda phanel gyda wal o wasanaethau:

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Mae'n ceisio torri cymwysiadau yn gydrannau / microwasanaethau, felly yn yr enghraifft o raglen Django byddwn yn gweld 2 gysylltiad â PostgreSQL (defaultdb и postgres), yn ogystal a Selery, Redis. Mae gweithio gyda Datadog yn gofyn am wybodaeth fach iawn am egwyddorion MVC: mae angen i chi ddeall o ble y daw ceisiadau defnyddwyr yn gyffredinol. Mae hyn fel arfer yn helpu map gwasanaethau:

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Gyda llaw, mae rhywbeth tebyg yn New Relic:

Nid New Relic yn unig: golwg ar Datadog ac Atatus

... ac mae eu map, yn fy marn i, yn cael ei wneud yn symlach ac yn gliriach: nid yw'n dangos cydrannau un cais (a fyddai'n ei gwneud yn rhy fanwl, fel yn achos Datadog), ond dim ond gwasanaethau neu ficrowasanaethau penodol.

Gadewch i ni ddychwelyd i Datadog: o'r map gwasanaeth gallwn weld bod ceisiadau defnyddwyr yn dod i Django. Awn i'r gwasanaeth Django a gweld yn olaf yr hyn yr oeddem yn ei ddisgwyl:

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Yn anffodus, nid oes graff yma yn ddiofyn Amser trafodiad gwe, yn debyg i'r hyn a welwn ar y prif banel New Relic. Fodd bynnag, gellir ei ffurfweddu yn lle'r amserlen % o'r Amser a dreulir. Mae'n ddigon i newid iddo Cyfradd amser fesul cais yn ôl Math... a nawr mae'r graff cyfarwydd yn edrych arnom ni!

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Mae pam y dewisodd Datadog siart wahanol yn ddirgelwch i ni. Peth rhwystredig arall yw nad yw'r system yn cofio dewis y defnyddiwr (yn wahanol i'r ddau gystadleuydd), ac felly'r unig ateb yw creu paneli arfer.

Ond roeddwn yn falch o allu Datadog i newid o'r graffiau hyn i fetrigau gweinyddwyr cysylltiedig, darllen y logiau a gwerthuso'r llwyth ar y trinwyr gweinydd gwe (Gunicorn). Mae popeth bron yr un fath ag yn New Relic... a hyd yn oed ychydig mwy (boncyffion)!

O dan y graffiau mae trafodion hollol debyg i New Relic:

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Yn Datadog, gelwir trafodion adnoddau. Gallwch ddidoli rheolwyr yn ôl nifer y ceisiadau, yn ôl yr amser ymateb cyfartalog, ac yn ôl yr amser mwyaf a dreulir am gyfnod penodol o amser.

Gallwch ehangu'r adnodd a gweld popeth yr ydym eisoes wedi'i arsylwi yn New Relic:

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Mae ystadegau ar yr adnodd, rhestr gyffredinol o alwadau mewnol, ac enghreifftiau o geisiadau y gellir eu didoli yn ôl cod ymateb... Gyda llaw, roedd ein peirianwyr yn hoff iawn o'r didoli hwn.

Gellir agor ac astudio unrhyw adnodd enghreifftiol yn Datadog:

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Cyflwynir paramedrau cais, siart gryno o'r amser a dreuliwyd ar bob cydran, a siart rhaeadr yn dangos dilyniant y galwadau. Gallwch hefyd newid i olwg coeden o'r siart rhaeadr:

Nid New Relic yn unig: golwg ar Datadog ac Atatus

A'r peth mwyaf diddorol yw edrych ar lwyth y gwesteiwr y gweithredwyd y cais arno a gweld y logiau cais.

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Integreiddio gwych!

Efallai y byddwch yn meddwl tybed ble mae'r tabiau Cronfeydd Data и Gwasanaethau Allanol, fel yn New Relic. Nid oes rhai yma: gan fod Datadog yn dadelfennu'r cais yn gydrannau, bydd PostgreSQL yn cael ei ystyried gwasanaeth ar wahân, ac yn lle Gwasanaethau Allanol mae’n werth chwilio amdano aws.storage (bydd yn debyg ar gyfer pob gwasanaeth allanol arall y gall y rhaglen gael mynediad ato).

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Dyma enghraifft gyda postgres:

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Yn y bôn mae popeth yr oeddem ei eisiau:

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Gallwch weld o ba “wasanaeth” y daeth y cais.

Ni fyddai'n anghywir eich atgoffa bod Datadog yn integreiddio'n berffaith â NGINX Ingress ac yn caniatáu ichi berfformio olrhain o un pen i'r llall o'r eiliad y mae cais yn cyrraedd y clwstwr, a hefyd yn caniatáu ichi dderbyn metrigau statsd, casglu logiau a metrigau cynnal .

Mantais enfawr Datadog yw ei bris yn datblygu o fonitro seilwaith, APM, prawf Rheoli Logiau a Syntheteg, h.y. Gallwch ddewis eich cynllun yn hyblyg.

2.Atatws

Mae tîm Atatus yn honni bod eu gwasanaeth “yr un fath â New Relic, ond yn well.” Gadewch i ni weld a yw hyn yn wir.

Mae'r prif banel yn edrych yn debyg, ond nid oedd yn bosibl pennu'r Redis a'r memcached a ddefnyddiwyd yn y cais.

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Mae APM yn dewis yr holl drafodion yn ddiofyn, er mai dim ond trafodion Gwe sydd eu hangen fel arfer. Fel Datadog, nid oes unrhyw ffordd i lywio i'r gwasanaeth a ddymunir o'r prif banel. Ar ben hynny, rhestrir trafodion ar ôl gwallau, nad yw'n ymddangos yn rhesymegol iawn i APM.

Mewn trafodion Atatus, mae popeth mor debyg â phosibl i New Relic. Yr anfantais yw nad yw dynameg pob rheolydd yn weladwy ar unwaith. Mae'n rhaid i chi edrych amdano yn y tabl rheolydd, gan ddidoli yn ôl Treulio Mwyaf o Amser:

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Mae'r rhestr arferol o reolwyr ar gael yn y tab Archwiliwch:

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Mewn rhai ffyrdd, mae'r tabl hwn yn atgoffa rhywun o Datadog ac rwy'n ei hoffi'n well na'r un tebyg yn New Relic.

Gallwch ehangu pob trafodiad a gweld beth oedd y cais yn ei wneud:

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Mae'r panel hefyd yn fwy atgoffaol o Datadog: mae yna nifer o geisiadau, darlun cyffredinol o alwadau. Mae'r panel uchaf yn darparu tab gwall Methiannau HTTP ac enghreifftiau o ymholiadau araf Olion Sesiwn:

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Os ewch i drafodiad, gallwch weld enghraifft o olrhain, gallwch gael rhestr o geisiadau i'r gronfa ddata ac edrych ar y penawdau cais. Mae popeth yn debyg i New Relic:

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Yn gyffredinol, roedd Atatus yn falch o olion manwl - heb gludo galwadau nodweddiadol New Relic i mewn i floc atgoffa:

Nid New Relic yn unig: golwg ar Datadog ac Atatus
Nid New Relic yn unig: golwg ar Datadog ac Atatus

Fodd bynnag, nid oes ganddo hidlydd a fyddai (fel New Relic) yn dileu ceisiadau tra chyflym (<5ms). Ar y llaw arall, roeddwn i'n hoffi arddangos yr ymateb trafodiad terfynol (llwyddiant neu wall).

Panel Cronfeydd Data yn eich helpu i astudio'r ceisiadau i gronfeydd data allanol y mae'r rhaglen yn eu gwneud. Gadewch imi eich atgoffa bod Atatus wedi dod o hyd i PostgreSQL a MySQL yn unig, er bod Redis a memcached hefyd yn cymryd rhan yn y prosiect.

Nid New Relic yn unig: golwg ar Datadog ac Atatus

Mae ceisiadau'n cael eu didoli yn ôl y meini prawf arferol: amlder ymateb, amser ymateb cyfartalog, ac ati. Hoffwn hefyd sôn am y tab gyda'r ymholiadau arafaf - mae'n gyfleus iawn. Ar ben hynny, roedd y data yn y tab hwn ar gyfer PostgreSQL yn cyd-fynd â'r data o'r estyniad pg_stat_datganiadau - canlyniad ardderchog!

Nid New Relic yn unig: golwg ar Datadog ac Atatus

HMS Ceisiadau Allanol hollol union yr un fath â Chronfeydd Data.

Canfyddiadau

Perfformiodd y ddau offer yn dda yn rôl APM. Gall unrhyw un ohonynt gynnig yr isafswm gofynnol. Gellir crynhoi ein hargraffiadau yn gryno fel a ganlyn:

Ci Data

Manteision:

  • amserlen tariffau cyfleus (mae APM yn costio 31 USD y gwesteiwr);
  • gweithio'n dda gyda Python;
  • Posibilrwydd o integreiddio ag OpenTracing
  • integreiddio â Kubernetes;
  • integreiddio â NGINX Ingress.

Cons:

  • yr unig APM a achosodd i'r cais beidio â bod ar gael oherwydd gwall modiwl (predis);
  • wan PHP auto-offeryn;
  • diffiniad rhannol ryfedd o wasanaethau a'u pwrpas.

Atatws

Manteision:

  • offeryniaeth PHP dwfn;
  • rhyngwyneb defnyddiwr tebyg i New Relic.

Cons:

  • ddim yn gweithio ar systemau gweithredu hŷn (Ubuntu 12.05, CentOS 5);
  • awto-offeryniaeth wan;
  • cefnogaeth ar gyfer dwy iaith yn unig (Node.js a PHP);
  • Rhyngwyneb araf.

O ystyried pris Atatus o 69 USD y mis fesul gweinydd, byddai'n well gennym ddefnyddio Datadog, sy'n integreiddio'n dda â'n hanghenion (cymwysiadau gwe yn K8s) ac sydd â llawer o nodweddion defnyddiol.

PS

Darllenwch hefyd ar ein blog:

Ffynhonnell: hab.com

Ychwanegu sylw