
Hazvishamisi kune mainjiniya eSRE/DevOps kuti rimwe zuva mutengi (kana sisitimu yekutarisa) anosvika ovaudza kuti "zvese zvarasika": webhusaiti haina kushanda, mari yekubhadhara haisi kufamba, hupenyu hwakaoma ... Kunyangwe uchida kubatsira mumamiriro ezvinhu akadaro, kuita izvozvo pasina chishandiso chiri nyore uye chakajeka kunogona kuoma. Kazhinji, dambudziko racho rakavanzwa mukodhi yeapplication - chaunongoda kuita kungoriona.
Mukurwadziwa uye mumufaro...
Zvinongoitika kuti tave tichida New Relic kwenguva yakati rebei ikozvino. Yave iri uye ichiri chishandiso chakanaka chekutarisa mashandiro eapplication, uye inobvumirawo hunyanzvi hwe microservice architecture (ichishandisa agent yayo), nezvimwe zvakawanda. Uye zvese zvingadai zvakanaka, dai pasina shanduko mumutemo wemitengo webasa: mutengo yakawedzera nekatatu zvichikwiraPamusoro pezvo, kubvira gore rapfuura, kuwana account yekuedza kunoda kutaurirana nemaneja wega, izvo zvinoita kuti zviome kuratidza chigadzirwa kune mutengi angangovepo.
Mamiriro ezvinhu akajairika: New Relic haidiwi "chigarire"; inongotaurwa chete kana paine matambudziko. Asi ichiri kuda muripo wenguva dzose (US$140 pasevha pamwedzi), uye nekuvandudzwa kwegore, mitengo inowedzera. Kunyange zvazvo paine sarudzo ye "Pay-As-You-Go", kugonesa New Relic kunoda kutangazve application, izvo zvinogona kukonzera kurasikirwa nemamiriro ezvinhu ane dambudziko iro raive chinangwa chikuru. New Relic ichangobva kuunza hurongwa hutsva hwemitengo: , iyo pakutanga inotaridzika seimwe nzira inonzwisisika panzvimbo peNyanzvi... asi kana yanyatso tarisa, zvinoonekwa kuti pane zvimwe zvinhu zvakakosha zvisipo (kunyanya, haina Kutengeserana Kunokosha, Kutevedza Maitiro Ekushandisa Pamuchinjikwa, Distributed Tracing).
Nekuda kweizvozvo, takatanga kutsvaga imwe nzira yakachipa, uye sarudzo yedu yakawira pamasevhisi maviri: Datadog naAtatus. Sei izvi zviviri?
Nezvevakwikwidzi
Regai ndijekese kuti kune dzimwe mhinduro dziri pamusika. Takatofunga nezvesarudzo dze open source, asi havasi vese vatengi vane mukana wekugamuchira mhinduro dzinozvigadzirira ivo pachavo… uyezve, dzinoda kugadziriswa kwakawedzerwa. Peya yatakasarudza ndiyo yaive pedyo zvikuru. zvatinoda:
- Rutsigiro rwakavakirwa mukati uye rwepamusoro rwemapurogiramu ePHP (vatengi vedu vane zvakawanda zvakasiyana-siyana, asi uyu ndiye mutungamiri akajeka mukutsvaga imwe nzira panzvimbo peNew Relic);
- mutengo unokwanisika (uri pasi pe100 USD pamwedzi pamunhu wese anotambira);
- zvishandiso otomatiki;
- kubatanidzwa neKubernetes;
- Kufanana neNew Relic interface chinhu chakanaka chinoonekwa (nekuti mainjiniya edu akajaira).
Saka, panguva yekutanga sarudzo, takabvisa dzimwe mhinduro dzakakurumbira, kunyanya:
- Tideways, AppDynamics uye Dynatrace - pamutengo wakaderera;
- Stackify yakavharwa muRussia uye inoratidza data shoma.
Zvimwe zvese zviri muchinyorwa chino zvakarongeka kuitira kuti nditange ndataura muchidimbu nezvemhinduro dziri kukurukurwa, mushure mezvo ndichakurukura nezvekudyidzana kwatinoita neNew Relic uye ruzivo rwangu/maonero angu kubva pakuita mabasa akafanana mune mamwe masevhisi.
Mharidzo yemakwikwi akasarudzwa

pamusoro Pamwe wakambonzwa nezvazvo here? Sevhisi iyi yakatanga kugadzirwa makore anopfuura gumi apfuura, muna 2008. Tave tichiishandisa kubvira muna 2012 uye hatina kusangana nematambudziko ekubatanidza nhamba yakakura yemapurogiramu ePHP, Ruby, nePython, uye takabatanawo neC# neGo. Vagadziri vesevhisi iyi vanopa mhinduro dzekutarisa mashandisirwo esoftware nezvivakwa, kutsvaga mapurojekiti emicroservice, maapplication ari nyore kushandisa evashandisi vekupedzisira, nezvimwe zvakawanda.
Zvisinei, mumiriri weNew Relic anoshandisa maprotocol ega ega uye haana rutsigiro rweOpenTracing. Zvishandiso zvepamusoro zvinoda kugadziriswa zvakanangana neNew Relic. Chekupedzisira, rutsigiro rweKubernetes ruchiri kuyedzwa.

Yakatanga kugadzirwa kwayo muna 2010 New Relic inotaridzika zvakanaka kupfuura New Relic yekushandisa munzvimbo dzeKubernetes. Zvikuru, inotsigira kubatanidzwa neNGINX Ingress, kuunganidzwa kwemagwaro, uye statsd neOpenTracing protocols, zvichikubvumidza kuteedzera chikumbiro chemushandisi kubva pakubatana kwacho kusvika chapera, pamwe nekuwana magwaro echikumbiro ichocho (pawebhu server uye kudivi remutengi).
Pandaishandisa Datadog, takasangana nematambudziko nekuti dzimwe nguva yaikanganisa kugadzira ma microservices nemazvo uye mamwe matambudziko ehunyanzvi. Semuenzaniso, yakaona mhando yebasa zvisirizvo (ichifunga kuti Django ibasa rekuchengetedza data) uye yakakonzera zvikanganiso mazana mashanu muPHP application ichishandisa raibhurari yakakurumbira yePredis.

— chishandiso chitsva; sevhisi iyi yakatanga muna 2014. Bhajeti rayo rekushambadzira riri pachena kuti harina kunyanya kuderera pane makwikwi ataurwa pamusoro apa, uye kutaurwa kwacho hakuna kuwanda zvakanyanya. Kunyange zvakadaro, chishandiso ichi chakafanana zvikuru neNew Relic, kwete chete mukushanda kwacho (APM, browser monitoring, nezvimwewo) asiwo muchimiro chayo.
Dambudziko guru nderekuti inotsigira Node.js nePHP chete. Kune rumwe rutivi, yakaitwa zviri nani kupfuura Datadog. Kusiyana neDatadog, Atatus haidi kugadziriswa kweapplication kana mamwe macode tag.
Mashandiro atinoita neNew Relic
Iye zvino ngatitarisei mashandisiro atinoita New Relic. Ngatitii tine dambudziko rinoda kugadziriswa:

Zviri nyore kuona pagirafu splash — ngatizviongororei. MuNew Relic, mawebhusaiti akatosarudzwa kare ewebhusaiti, girafu yekushanda inoratidza zvikamu zvese, uye kune mapaneru echiyero chekukanganisa uye chiyero chekukumbira. Chinonyanya kukosha, unogona kufamba pakati pezvikamu zvakasiyana zveapplication zvakananga kubva pamapaneru aya (semuenzaniso, kudzvanya paMySQL kunokusvitsa kuchikamu chedatabases).
Sezvo mumuenzaniso uri kufungwa nezvawo tichiona kuwedzera kwebasa PHP, tinya pachati iyi uye tichaenda otomatiki ku Transactions:

Rondedzero yekutengeserana, iyo inonyanya kuve vanodzora kubva kuMVC model, yakatorongwa zvichienderana ne Zvinotora nguva yakawanda, izvo zviri nyore kwazvo: tinogona kuona zviri kuitwa neapplication ipapo ipapo. Kunewo mienzaniso yemibvunzo inogara kwenguva refu iyo New Relic inounganidza otomatiki. Nekuchinja kurongeka, zviri nyore kuwana:
- mutariri wekushandisa ane basa guru;
- mutongi anonyanya kukumbirwa;
- inononoka kupfuura dzose pane dzinodzora.
Pamusoro pezvo, unogona kutarisisa kutengeserana kwega kwega kuti uone zvaiitwa neapplication payakaitwa kodhi:

Chekupedzisira, app inochengetedza mienzaniso yemibvunzo yagara ichibvunzwa (iyo inotora anopfuura masekondi maviri). Heino dashboard yekutengeserana kwenguva refu:

Zviri pachena kuti nzira mbiri dziri kutora nguva yakareba, uye nguva yakaitwa chikumbiro, URI yaro, uye domain zvinoratidzwawo. Izvi zvinowanzobatsira kuwana chikumbiro mumalogi. Nekuenda ku Ruzivo rwekutevera, unogona kuona kuti nzira idzi dzinodanwa kubva kupi:

Uye mukati Mibvunzo yedatabase — ongorora mibvunzo yedatabase yakaitwa apo application yaishanda:

Tiine ruzivo urwu, tinogona kuongorora chikonzero chekudzikira kwekushanda kweapplication uye kushanda nemugadziri weapplication kugadzira nzira yekugadzirisa dambudziko. Muchokwadi, New Relic haisi nguva dzose inopa mufananidzo wakajeka, asi inotibatsira kusarudza nzira yekuferefeta:
- refu
PDO::Constructzvakatitungamirira kukushanda kusinganzwisisike kwepgpoll; - kusagadzikana nekufamba kwenguva
Memcache::Getyakaratidza gadziriro yemuchina wevirtual isiriyo; - nguva yakawedzerwa zvinofungidzirwa yekugadzirisa template yakatungamira kurobho rakaiswa nested ne cheki yekuvapo kwemaavatar mazana mashanu mukuchengetedza chinhu;
- nezvimwe…
Zvinoitikawo kuti pachinzvimbo chekushandisa kodhi, chimwe chinhu chine chekuita nekuchengetwa kwedata rekunze chinoonekwa pachiratidziro chikuru - uye hazvina basa kuti chii: Redis kana PostgreSQL - zvese zvakavanzwa mu tab Databases.

Unogona kusarudza database chaiyo yekuongorora nekuronga mibvunzo—yakafanana nemaitiro aunoita muTransactions. Uye nekuenda ku query tab, unogona kuona kuti query yakapihwa inoonekwa kangani mu controllers yega yega yeapplication, pamwe nekufungidzira kuti inodanwa kangani. Izvi zviri nyore kwazvo:

Tabhu ine data rakafanana. Mabasa Ekunze, iyo inovanza zvikumbiro kumasevhisi ekunze eHTTP, akadai sekuwana nzvimbo yekuchengetera zvinhu, kutumira zviitiko kune sentry, nezvimwewo. Zviri mukati meiyi tab zvakafanana zvachose neDatabases tab:

Vakwikwidzi: Mikana uye Maonero
Zvino panouya chikamu chinonakidza zvikuru: kuenzanisa kugona kweNew Relic nekwevakwikwidzi vayo. Zvinosuwisa kuti hatina kukwanisa kuyedza maturusi ese matatu pashanduro imwe chete yekugadzira application. Zvisinei, takaedza nepese patinogona kuenzanisa mamiriro ezvinhu nemagadzirirwo akafanana sezvinobvira.
1.Datadog
Datadog inotikwazisa nepaneru ine madziro emabasa:

Inoedza kupatsanura maapplication kuita zvikamu/microservices, saka semuenzaniso Django application tichaona 2 connections kuPostgreSQL (defaultdb и postgres), pamwe neCelery neRedis. Kushanda neDatadog kunoda ruzivo rushoma rwemitemo yeMVC: unofanirwa kunzwisisa kuti zvikumbiro zvevashandisi zviri kubva kupi. Kazhinji, kushandisa mepu yebasa:

Nenzira, New Relic ine chimwe chinhu chakafanana:

...uye mepu yavo, mukuona kwangu, inogadzirwa nyore uye yakajeka: hairatidzi zvikamu zve application imwe chete (izvo zvinoita kuti ive yakadzama zvakanyanya, sezvakaita Datadog), asi masevhisi chaiwo kana microservices chete.
Ngatidzokerei kuDatadog: mepu yebasa inoratidza kuti zvikumbiro zvevashandisi zviri kuuya kuDjango. Ngatiendei kuDjango service tozoona zvataitarisira:

Zvinosuwisa kuti hapana girafu iripo. Nguva yekutengeserana pawebhu, zvakafanana nezvatinoona padashboard huru yeNew Relic. Zvisinei, inogona kugadziriswa pachinzvimbo chegirafu. % yenguva inopedzerwaZvakakwana kuchinjira ku Nguva yepakati pechikumbiro nerudzi...uye ikozvino girafu inozivikanwa iri kutitarisa!

Kuti sei Datadog yakasarudza chati yakasiyana hazvitizivikanwi. Takaodzwawo mwoyo kuti sisitimu iyi haiyeuki sarudzo dzevashandisi (kusiyana nedzevakwikwidzi vese), saka mhinduro chete ndeyekugadzira madhibhodhi akagadzirwa.
Ndakafara kuziva kuti muDatadog, ndaigona kuchinja kubva pamagirafu aya kuenda kuma linked server metrics, kuverenga malog, uye kuongorora web server worker load (Gunicorn). Zvakafanana neNew Relic... uye zvakatowanda (malogs)!
Pasi pemagrafu pane kutengeserana kwakafanana zvachose neNew Relic:

MuDatadog, kutengeserana kunonzi zviwanikwaUnogona kuronga ma controllers nenhamba yezvikumbiro, avhareji yenguva yekupindura, kana nguva yepamusoro inopedzerwa munguva yakasarudzwa.
Chiwanikwa ichi chinogona kuwedzerwa uye unogona kuona zvese zvatakatoona muNew Relic:

Tine nhamba dzezvishandiso, runyorwa rwemafoni emukati, uye zvikumbiro zvemuenzaniso zvinogona kurongwa nekodhi yekupindura... Nenzira, mainjiniya edu akafarira chaizvo basa iri rekuronga.
Chero muenzaniso wezviwanikwa muDatadog unogona kuwedzerwa uye kuongororwa:

Zvinodiwa zvinoratidzwa, pamwe chete nechati pfupiso yenguva inoshandiswa pachikamu chimwe nechimwe, uye chati yemvura inoratidza kufona. Unogona zvakare kushandura kuenda kumufananidzo wemuti wechati yemvura:

Uye chinhu chinonyanya kufadza ndechekuona mutoro wehost iyo chikumbiro chakaitwa, uye kuona magwaro ekukumbira.

Kubatanidzwa kwakanaka!
Ungashamisika kuti ma tabo ari kupi. Databases и Mabasa Ekunze, sezvakaita muNew Relic. Hapana aripo pano: sezvo Datadog ichiparadzanisa application kuita zvikamu, PostgreSQL ichatariswa sevhisi yakasiyana, uye panzvimbo peExternal Services unofanira kutsvaga aws.storage (zvichave zvakafanana kune mamwe masevhisi ese ekunze ayo application inogona kuwana).

Heino muenzaniso ne postgres:

Chaizvoizvo, ine zvese zvataida:

Zviri pachena kuti chikumbiro chakabva pa "basa" ripi.
Zvakakosha kuziva kuti Datadog inobatanidza zvakanaka neNGINX Ingress uye inobvumira kuteverwa kwese kubva panguva iyo chikumbiro chinopinda muboka, pamwe nekugamuchira metrics dze statsd uye kuunganidza magwaro uye metrics dze host.
Chinhu chikuru chinobatsira Datadog ndechekuti mutengo wayo inovandudza kubva pakuongorora zvivakwa, APM, Log Management uye Synthetics test, kureva kuti unogona kusarudza chirongwa nenzira inochinjika.
2. Atatus
Chikwata cheAtatus chinoti basa ravo "rakafanana neNew Relic, asi riri nani." Ngationei kana izvozvo zviri zvechokwadi.
Bhawa remusoro rinotaridzika zvakafanana, asi handina kukwanisa kuziva kuti ndeapi Redis nememcached akashandiswa mukushandisa.

APM inosarudza kutengeserana kwese, kunyangwe kazhinji kutengeserana kwepaWebhu chete ndiko kunodiwa. Sezvakaita neDatadog, hapana nzira yekuenda kune sevhisi yaunoda kubva pane guru remain panel. Uyezve, kutengeserana kwakanyorwa mushure mezvikanganiso, izvo zvinoita sezvisina musoro kune APM.
Kutengeserana kwaAtatus kwakafanana zvikuru nekwaNew Relic. Dambudziko nderekuti mashandiro emutongi wega wega haaonekwe pakarepo. Unofanira kuatsvaga mutafura yemutongi, uchironga ne Nguva Yakawanda Inodyiwa:

Rondedzero inozivikanwa yevanodzora inowanikwa pane tab pasura:

Tafura iyi inoyeuchidza nezveDatadog uye ndinoifarira kupfuura yakafanana nayo muNew Relic.
Kutengeserana kwega kwega kunogona kuwedzerwa kuratidza zvaiitwa neapplication:

Dashboard inoyeuchidzawo Datadog zvakanyanya: inoratidza huwandu hwezvikumbiro uye ongororo yakajairika yekufona. Paneri yepamusoro inopa tabu yekukanganisa. Kukundikana kweHTTP uye mienzaniso yemibvunzo inononoka Mafambiro eSession:

Kana ukapinda mukutengeserana, uchaona muenzaniso wekutevera. Unogona kuwana runyorwa rwezvikumbiro zve database uye kuona misoro yezvikumbiro. Zvese zvakafanana neNew Relic:

Kazhinji, Atatus yakandifadza nezviratidzo zvayo zvakadzama—pasina kubatanidzwa kwemafoni eNew Relic kuita chiyeuchidzo:


Zvisinei, haina firita (sezvakaita muNew Relic) iyo yaizosefa zvikumbiro zvinokurumidza (<5ms). Kune rumwe rutivi, ndakafarira kuratidzwa kwemhinduro yekupedzisira yekutengeserana (kubudirira kana kukanganisa).
Panel Databases ichakubatsira kuongorora mibvunzo yekunze yedatabase inogadzirwa neapp. Sechiyeuchidzo, Atatus yakawana PostgreSQL neMySQL chete, kunyangwe purojekiti iyi ichishandisawo Redis nememcached.

Mibvunzo inorongwa zvichienderana nezvinodiwa: frequency, avhareji yenguva yekupindura, nezvimwewo. Tabhu yemibvunzo inononoka inonyanya kubatsira—iri nyore kwazvo. Uyezve, data riri muiyi tab yePostgreSQL rakafanana nedata kubva mukuwedzera. - mhedzisiro yakanaka kwazvo!

Tab Zvikumbiro zvekunze zvakafanana zvachose neDatabases.
zvakawanikwa
Zvishandiso zvese zviri zviviri zvakaratidzwa zvakashanda zvakanaka sezvishandiso zveAPM. Chero chipi zvacho chinogona kupa zvishoma. Zvatinofunga zvinogona kupfupikiswa seizvi:
datadog
Pros:
- hurongwa hwemitengo huri nyore (APM inodhura USD 31 pamunhu wese anotambira);
- yakashanda zvakanaka nePython;
- Kugona kubatanidzwa neOpenTracing
- kubatanidzwa neKubernetes;
- Kubatanidzwa ne NGINX Ingress.
Cons:
- iyo chete APM yakakonzera kusawanikwa kweapplication nekuda kwemodule error (predis);
- PHP isina simba otomatiki-zvishandiso;
- Tsanangudzo isingawanzoitiki yemasevhisi nechinangwa chawo.
Atatus
Pros:
- zvishandiso zvePHP zvakadzika;
- chiratidziro chemushandisi chakafanana neNew Relic.
Cons:
- haishande pama operating system ekare (Ubuntu 12.05, CentOS 5);
- kushandisa otomatiki zvisina simba;
- rutsigiro rwemitauro miviri chete yekuronga mapurogiramu (Node.js nePHP);
- Kushanda zvishoma nezvishoma kweinterface.
Tichifunga nezvemutengo waAtatus we$69 pamwedzi pasevha imwe neimwe, tingada kushandisa Datadog, iyo inoenderana zvakanaka nezvatinoda (mapurogiramu ewebhu muK8s) uye ine zvinhu zvakawanda zvinobatsira.
PS
Verenga zvakare pablog yedu:
- «";
- «";
- «".
Source: www.habr.com
