Mata'ituina e pei o se auaunaga: o se faiga fa'apitoa mo le fa'ata'ita'iga o auaunaga laiti

I aso nei, e faaopoopo atu i le monolithic code, o la matou poloketi e aofia ai le tele o microservices. O i latou ta'itasi e mana'omia le mata'ituina. O le faia o lenei mea i luga ole fua faʻaaoga DevOps inisinia e faʻafitauli. Ua matou atinaʻeina se faiga mataʻituina e galue o se auaunaga mo tagata atiae. E mafai ona latou tusia tutoʻatasi metrics i totonu o le mataʻituina faiga, faʻaogaina, fausia dashboards faʻavae i luga o latou, ma faʻapipiʻi faʻasalalauga ia i latou o le a faʻaosoina pe a oʻo i tulaga taua. Mo DevOps inisinia, naʻo atinaʻe ma faʻamaumauga.

O lenei pou o se tusitusiga o laʻu tautalaga ma la matou vaega ile RIT++. E to'atele tagata na fai mai matou te faia ni fa'amatalaga tusitusia o lipoti mai iina. Afai na e i ai i le konafesi pe matamata i le vitio, e te le mauaina se mea fou. Ma isi tagata uma - faʻafeiloaʻi i le pusi. O le a ou taʻu atu ia te oe le auala na matou oʻo mai ai i se faiga faʻapea, pe faʻafefea ona aoga ma pe faʻapefea ona matou fuafua e faʻafouina.

Mata'ituina e pei o se auaunaga: o se faiga fa'apitoa mo le fa'ata'ita'iga o auaunaga laiti

Le taimi ua tuanaʻi: fuafuaga ma fuafuaga

Na fa'apefea ona tatou taunu'u i le faiga o le mata'ituina o lo'o iai nei? Ina ia taliina lenei fesili, e tatau ona e alu i le 2015. O le mea lea na foliga i ai i lena taimi:

Mata'ituina e pei o se auaunaga: o se faiga fa'apitoa mo le fa'ata'ita'iga o auaunaga laiti

E tusa ma le 24 nodes sa nafa ma le mataituina. O loʻo i ai se pusa atoa o pale eseese, tusitusiga, daemons e mataʻituina se mea, auina atu feʻau, ma faʻatino galuega. Sa matou manatu o le a atili ai ona matou agai i luma, o le itiiti foi lea o le aoga o sea faiga. E leai se aoga o le atiina ae: e faigata tele.
Na matou filifili e filifili na elemene mataʻituina o le a matou tausia ma atiina ae, ma mea o le a matou lafoaia. E 19 i latou. Na o graphites, aggregators ma Grafana o se dashboard na totoe. Ae o le a le foliga o le faiga fou? Faapei o lea:

Mata'ituina e pei o se auaunaga: o se faiga fa'apitoa mo le fa'ata'ita'iga o auaunaga laiti

O loʻo i ai a matou metrics teuina: o graphites nei, lea o le a faʻavae i luga o le SSD vave, o ni faʻasalalauga faʻapitoa mo metrics. Sosoo ai - Grafana mo le faʻaalia o dashboards ma Moira mo le mataala. Sa matou manana'o fo'i e fausia se faiga e su'e ai fa'aletonu.

Tulaga Fa'atonu: Mata'ituina 2.0

O foliga ia o fuafuaga i le 2015. Ae sa tatau ona matou saunia e le gata o atinaʻe ma le auaunaga lava ia, ae faʻapea foʻi ma faʻamaumauga mo ia. Ua matou atiina ae se tulaga faʻapitoa mo i matou lava, lea matou te taʻua o le mataʻituina 2.0. O a mea e mana'omia mo le faiga?

  • maua pea;
  • metrics taimi e teu ai = 10 sekone;
  • teuina fa'atulagaina o metrics ma dashboards;
  • SLA > 99,99%
  • aoina o fua fa'atatau e ala ile UDP (!).

Matou te manaʻomia le UDP ona o loʻo i ai le tele o a matou feʻaveaʻi ma mea tutupu e faʻatupuina ai fua. Afai e te tusia uma i le graphite i le taimi e tasi, o le a malepe le teuina. Na matou filifilia fo'i fa'amuamua tulaga muamua mo metric uma.

Mata'ituina e pei o se auaunaga: o se faiga fa'apitoa mo le fa'ata'ita'iga o auaunaga laiti

O prefix taitasi e iai ni mea totino. O loʻo i ai fua faʻatatau mo 'auʻaunaga, fesoʻotaʻiga, pusa, punaoa, talosaga, ma isi. Ua mae'a ona fa'atinoina le fa'amama manino, fa'amaoni, fa'aigoaina, lea matou te talia ai fua fa'atatau muamua ma na'o le tu'uina o le vaega o totoe. O le auala lea na matou fuafuaina ai lenei faiga i le 2015. O le a le mea o iai i le taimi nei?

Le taimi nei: ata o fegalegaleaiga o vaega mata'ituina

Muamua lava, matou te mataʻituina talosaga: matou PHP code, talosaga ma microservices - i se faapuupuuga, mea uma e tusia e matou tagata atiae. O talosaga uma e lafo fua e ala ile UDP ile Brubeck aggregator (statsd, toe tusia ile C). Na fa'aalia e sili ona vave i su'ega fa'akomepiuta. Ma e tu'uina atu fua fa'atatau i le Graphite e ala i le TCP.

O lo'o i ai se ituaiga metric e ta'ua o timers. O se mea faigofie tele lea. Mo se faʻataʻitaʻiga, mo soʻotaga faʻaoga taʻitasi i le auaunaga, e te lafoina se metric ma le taimi tali i Brubeck. E miliona tali na oo mai, ae na o le 10 metric na toe faafoi mai e le aggregator. O lo'o ia te oe le aofa'i o tagata na o mai, o le maualuga, la'ititi ma le averesi taimi tali, o le vaeluagalemu ma le 4 pasene. Ona tuʻuina atu lea o faʻamatalaga i le Graphite ma matou vaʻaia uma.

E iai fo'i a matou fa'aputuga mo fua fa'atatau i masini, polokalama fa'akomepiuta, fua fa'atonu ma la matou masini mata'ituina Munin tuai (na aoga mo i matou seia o'o i le 2015). Matou te aoina uma nei mea e ala i le C daemon CollectD (o loʻo i ai le tele o faʻapipiʻi eseese o loʻo fausia i totonu, e mafai ona suʻesuʻeina uma punaoa o le host system o loʻo faʻapipiʻiina ai, naʻo le faʻamaonia i le faʻatulagaina o mea e tusi ai faʻamatalaga) ma tusi le faʻamatalaga i le Graphite e ala i ai. E lagolagoina foʻi faʻapipiʻi python ma faʻamaumauga atigi, o lea e mafai ai ona e tusia au lava fofo masani: CollectD o le a aoina mai nei faʻamatalaga mai se faʻalapotopotoga faʻapitonuʻu poʻo mamao (faʻapea Curl) ma lafo i le Graphite.

Ona matou auina atu lea o fua uma na matou aoina i le Carbon-c-relay. Ole fofo lea ole Carbon Relay mai le Graphite, ua suia ile C. Ole alalaupapa lea e aoina uma metric tatou te lafo mai a tatou aggregators ma fa'asolo atu i nodes. E fa'apea fo'i i le fa'asologa o auala, e siaki ai le fa'amaoni o fua fa'atatau. Muamua, e tatau ona fetaui ma le prefix scheme na ou faʻaalia muamua ma, lona lua, e aoga mo graphite. A leai o le a latou pauu.

O le carbon-c-relay ona tu'uina atu lea o metric i le fuifui Graphite. Matou te faʻaogaina le Carbon-cache, toe tusia i le Go, e avea ma faʻamaumauga autu o metrics. Go-carbon, ona o le tele o filo, e sili mamao atu i le Carbon-cache. Na te mauaina faʻamatalaga ma tusia i tisiki e faʻaaoga ai le pusa musumusu (tulaga masani, tusia i le python). Ina ia mafai ona faitau faʻamatalaga mai a matou mea e teu ai, matou te faʻaogaina le Graphite API. E sili atu le saoasaoa nai lo tulaga masani Graphite WEB. O le a le mea e tupu i faʻamatalaga e sosoo ai?

Latou te o atu i Grafana. Matou te fa'aogaina a matou fuifui graphite e fai ma fa'apogai autu o fa'amaumauga, fa'atasi ai ma le Grafana e fai ma 'upega tafa'ilagi mo le fa'aalia o fua fa'atatau ma fau laupapa laupapa. Mo a latou 'au'aunaga ta'itasi, e faia e le au atina'e a latou lava dashboard. Ona latou fausia lea o kalafi e faʻatatau ia i latou, lea e faʻaalia ai metric latou te tusia mai a latou talosaga. I le faaopoopo atu ia Grafana, e iai foi a matou SLAM. Ole temoni python lea e fa'atatauina le SLA e fa'atatau i fa'amaumauga mai le graphite. E pei ona ou fai atu, e tele a matou microservices, e tofu lava ma ona manaʻoga. I le faʻaaogaina o le SLAM, matou te o atu i faʻamaumauga ma faʻatusatusa i mea o loʻo i totonu o le Graphite ma faʻatusatusa pe o le a le lelei o manaʻoga e fetaui ma le avanoa oa matou auaunaga.

Tatou agai atili i luma: mataala. O loʻo faʻatulagaina e faʻaaoga ai se faiga malosi - Moira. E tuto'atasi ona e iai lana lava Graphite i lalo ole pulou. Atinaʻe e tama mai le SKB "Kontur", tusia i le python ma Alu, tatala atoatoa punaoa. E maua e Moira le tafe tutusa e alu i graphites. Afai o nisi mafuaaga ua mate lau teuina, o le a aoga pea lau mataala.

Na matou faʻapipiʻiina Moira i Kubernetes; e faʻaaogaina se fuifui o Redis servers e fai ma faʻamaumauga autu. O le taunuuga o se faiga faapalepale masei. E faʻatusatusa le tafe o metrics ma le lisi o faʻaosoina: afai e leai ni taʻua i totonu, ona paʻu ai lea o le metric. O lea e mafai ai ona eliina gigabytes o metric i le minute.

Na matou fa'apipi'iina fo'i se LDAP fa'apitoa i ai, fa'atasi ai ma le fesoasoani lea e mafai ai e tagata ta'ito'atasi o lo'o fa'aogaina le faiga fa'apitoa ona faia fa'amatalaga mo i latou lava e fa'atatau i mea o lo'o iai (po'o fa'atupu fou). Talu ai o Moira e iai le Graphite, e lagolagoina uma ona foliga. O lea e te ave muamua le laina ma kopi i le Grafana. Va'ai pe fa'apefea ona fa'aalia fa'amaumauga i luga o kalafi. Ona e ave lea o le laina tutusa ma kopi i totonu o Moira. E te tautauina i tapula'a ma maua se mataala i le gaosiga. Ina ia faia nei mea uma, e te le manaʻomia se poto faʻapitoa. E mafai e Moira ona mataala e ala i SMS, imeli, Jira, Slack ... E lagolagoina foi le faʻatinoina o tusitusiga masani. Pe a tupu se fa'aoso ia te ia, ma ua ia lesitala i se tusitusiga masani poʻo le binary, na te faʻatautaia ma auina atu JSON i stdin mo lenei binary. E tusa ai, e tatau i lau polokalama ona faʻavasegaina. O le a lau mea e fai i lenei JSON e pule lava oe. Afai e te manaʻo, lafo i Telegram, afai e te manaʻo ai, tatala galuega i Jira, fai soʻo se mea.

Matou te faʻaogaina foʻi a matou lava atinaʻe mo le mataala - Imagotag. Na matou fetuunai le laulau, lea e masani ona faʻaogaina mo faʻailoga tau eletise i faleoloa, e fetaui ma o matou manaʻoga. Na matou aumaia faʻaoso mai Moira i ai. O lo'o fa'ailoa mai ai le tulaga o lo'o i ai ma le taimi na tupu ai. O nisi o le au atinaʻe na lafoaia faʻamatalaga i Slack ma imeli e fiafia i lenei laulau.

Mata'ituina e pei o se auaunaga: o se faiga fa'apitoa mo le fa'ata'ita'iga o auaunaga laiti

Ia, talu ai o matou o se kamupani alualu i luma, matou te mataʻituina foi Kubernetes i lenei faiga. Matou te faʻapipiʻiina i totonu o le faiga e faʻaaoga ai Heapster, lea na matou faʻapipiʻiina i le fuifui, e aoina faʻamaumauga ma auina atu i le Graphite. O se taunuuga, o le ata e pei o lenei:

Mata'ituina e pei o se auaunaga: o se faiga fa'apitoa mo le fa'ata'ita'iga o auaunaga laiti

Vaega Mataitu

Ole lisi lea o feso'ota'iga i vaega na matou fa'aogaina mo lenei galuega. O i latou uma e tatala fa'apogai.

kafite:

Carbon-c-relay:

github.com/grobian/carbon-c-relay

Brubeck:

github.com/github/brubeck

Aoina:

collectd.org

Moira:

github.com/moira-alert

Grafana:

grafana.com

Heapster:

github.com/kubernetes/heapster

Faʻamatalaga

Ma o nisi nei o numera e uiga i le auala e aoga ai le faiga mo tatou.

Agregator (brubeck)

Numera o fua: ~300/sec
Vaeluaga mo le auina atu o fua faatatau ile Graphite: 30 sec
Fa'aoga punaoa a le 'au'aunaga: ~ 6% CPU (o lo'o matou talanoa e uiga i 'au'aunaga atoatoa); ~ 1Gb RAM; ~3 Mbps LAN

Kafite (go-carbon)

Numera o fuataga: ~ 1 / min
Va'aiga fa'afouina o fua: 30 sec
Fuafuaga e teu ai fua: 30sec 35d, 5min 90d, 10min 365d (e te maua ai se malamalama i le mea e tupu i le auaunaga i se taimi umi)
Fa'aaogāina puna'oa a le 'au'aunaga: ~10% CPU; ~ 20Gb RAM; ~30 Mbps LAN

Faʻaliega

O matou i Avito e matua fa'atauaina le fetuutuunai i la matou auaunaga mata'ituina. Aisea na ia iu moni ai faapea? Muamua, o ona vaega e fesuiaʻi: o vaega uma lava ma a latou faʻaliliuga. Lona lua, lagolago. Talu ai o le poloketi atoa o se punaoa tatala, e mafai ona e faʻasaʻo le code oe lava ia, fai suiga, ma faʻatino galuega e le o maua mai le pusa. O fa'aputu masani e fa'aaogaina, e masani lava o le Go ma le Python, o lea e fai faigofie lava.

O se faʻataʻitaʻiga lenei o se faʻafitauli moni. O se metric i le Graphite o se faila. E iai lona igoa. Igoa faila = igoa metric. Ma o loʻo i ai se auala e oʻo ai iina. O igoa faila ile Linux e gata ile 255 mataitusi. Ma o loʻo i ai a matou (o "tagata faʻatau i totonu") tama mai le matagaluega o faʻamaumauga. Latou te taʻu mai ia i matou: "Matou te mananaʻo e mataʻituina a matou fesili SQL. Ma e le o 255 mataitusi, ae 8 MB taitasi. Matou te mananaʻo e faʻaalia i latou i Grafana, vaʻai i faʻamaufaʻailoga mo lenei talosaga, ma sili atu, matou te fia vaʻai i le pito i luga o ia talosaga. O le a sili pe a faʻaalia i le taimi moni. E manaia tele le tuʻuina atu i latou i le mataala. ”

Mata'ituina e pei o se auaunaga: o se faiga fa'apitoa mo le fa'ata'ita'iga o auaunaga laiti
O le faʻataʻitaʻiga SQL query ua avea o se faʻataʻitaʻiga mai nofoaga postgrespro.ru

Matou te setiina se Redis server ma faʻaoga a matou Collectd plugins, lea e alu i Postgres ma ave uma faʻamatalaga mai iina, auina atu metrics i le Graphite. Ae matou te suia le igoa metric i faʻailoga. Matou te lafoina i le taimi lava e tasi le hash tutusa i Redis o se ki, ma le fesili SQL atoa o se tau. Pau lava le mea e tatau ona matou faia o le faʻamautinoa e mafai e Grafana ona alu i Redis ma ave lenei faʻamatalaga. Matou te tatalaina le Graphite API ona... o le autu autu lea mo le fegalegaleaiga o vaega uma mataʻituina ma graphite, ma tatou ulu atu i se galuega fou iina e taʻua aliasByHash() - mai Grafana tatou maua le igoa o le metric, ma faaaoga i se talosaga i Redis o se ki, i. tali tatou te maua le taua o le ki, o la tatou "SQL query" " O le mea lea, na matou faʻaalia i Grafana se faʻaaliga o se fesili SQL, lea e le mafai ona faʻaalia iina, faʻatasi ai ma faʻamaumauga i luga (valaau, laina, total_time, ...).

O taunuʻuga

Faʻamatalaga O loʻo avanoa la matou tautua mataʻituina 24/7 mai soʻo se talosaga ma soʻo se code. Afai e te maua le avanoa i nofoaga e teu ai, e mafai ona e tusia faʻamatalaga i le tautua. E le taua le gagana, e le taua foi faaiuga. Pau lava le mea e tatau ona e iloa pe faapefea ona tatala se socket, tuʻu se metric iina ma tapuni le socket.

Tausiga O vaega uma lava e fa'apalepale i mea sese ma taulima lelei a tatou uta.

Pava maualalo e ulufale ai. Ina ia faʻaaogaina lenei faiga, e te le manaʻomia le aʻoaʻoina o gagana polokalame ma fesili i Grafana. Naʻo le tatalaina o lau talosaga, faʻapipiʻi se socket i totonu o le a tuʻuina atu metrics i le Graphite, tapuni, tatala le Grafana, faʻapipiʻi laupapa iina ma vaʻai i amioga a au metotia, mauaina o faʻamatalaga e ala i Moira.

Tutoatasi. E mafai ona e faia nei mea uma e oe lava, e aunoa ma le fesoasoani a DevOps inisinia. Ma o se faʻamanuiaga lea, aua e mafai ona e mataʻituina lau poloketi i le taimi nei, e te le tau fesili i se tasi - pe amata galue pe fai ni suiga.

O le a le mea o loo tatou tulimata'ia?

O mea uma o lo'o lisiina atu i lalo e le na'o ni mafaufauga fa'apitoa, ae o se mea e sili atu i la'asaga muamua na faia.

  1. Fa'ailoga fa'aletonu. Matou te mananaʻo e fai se 'auʻaunaga e alu i la matou Graphite storages ma siaki metric taʻitasi e faʻaaoga ai algorithms eseese. Ua uma ona iai algorithms tatou te fia vaʻai i ai, o loʻo i ai faʻamaumauga, tatou te iloa le auala e galulue ai.
  2. Metadata. E tele a matou tautua, e suia i le taimi, e pei lava o tagata o loʻo galulue ma i latou. O le tausia pea o fa'amaumauga ma le lima e le o se filifiliga. O le mea lea ua matou faʻapipiʻi ai metadata i totonu oa matou microservices. O loʻo taʻu mai ai poʻo ai na atiaeina, gagana e fegalegaleai ai, manaʻoga SLA, o fea ma o ai e tatau ona lafoina faʻamatalaga. A fa'apipi'i se tautua, e fa'atupu tuto'atasi fa'amaumauga a le fa'alapotopotoga uma. O le iʻuga, e te mauaina ni fesoʻotaʻiga se lua - tasi e faʻaoso, o le isi i dashboards i Grafana.
  3. Mataituina i totonu o fale uma. Matou te talitonu e tatau i tagata atiae uma ona faʻaogaina sea faiga. I lenei tulaga, e te malamalama i taimi uma po o fea o loʻo i ai au fefaʻatauaiga, o le a le mea e tupu i ai, o fea e pa'ū ai, o fea o loʻo i ai ona vaivaiga. Afai, mo se faʻataʻitaʻiga, e oʻo mai se mea ma faʻalavelaveina lau 'auʻaunaga, ona e aʻoaʻoina lea e le o le taimi o le telefoni mai le pule, ae mai se mataala, ma e mafai ona e tatalaina vave ogalaau lata mai ma vaʻai i le mea na tupu iina.
  4. Fa'atinoga maualuga. O loʻo faʻaauau pea le faʻatupulaia o la matou poloketi, ma o aso nei o loʻo faʻagasoloina e uiga i le 2 metric values ​​i le minute. I le tausaga talu ai, o lenei fuainumera e 000. Ma o loʻo faʻaauau pea le tuputupu aʻe, ma o lona uiga a maeʻa sina taimi o le Graphite (musumusu) o le a amata ona mamafa le utaina o le disk subsystem. E pei ona ou fai atu, o lenei faiga mataʻituina e matua lautele ona o le fesuiaiga o vaega. O lo'o fa'atumauina ma fa'alauteleina e se tasi a latou atina'e fa'apitoa mo le Graphite, ae na matou filifili e alu i se isi auala: fa'aoga Kiliki Fale e fai ma faleteuoloa mo a tatou metrics. O lenei suiga ua toetoe lava a maeʻa, ma e le o toe mamao, o le a ou taʻu atu ia te oe i auiliiliga atili pe na faapefea ona faia lenei mea: o a faigata na i ai ma pe na faapefea ona foia, pe na faapefea ona alu le faagasologa o femalagaiga, o le a ou faamatalaina vaega ua filifilia e fusifusia ma a latou faatulagaga.

Faafetai mo lou gauai mai! Fai au fesili i le autu, o le a ou taumafai e tali iinei poʻo i pou nei. Masalo o loʻo i ai i se tasi le poto masani i le fausiaina o se faiga mataʻituina tutusa poʻo le fesuiaiga i le Clickhouse i se tulaga talitutusa - faʻasoa i faʻamatalaga.

puna: www.habr.com

Faaopoopo i ai se faamatalaga