Fuainumera ma le mataituina o PHP scripts i le taimi moni. ClickHouse ma Grafana e sau e fesoasoani ia Pinba

I lenei tusiga o le a ou taʻuina atu ia te oe le faʻaogaina o le pinba ma le clickhouse ma le grafana nai lo le pinba_engine ma le pinboard.

I luga o se poloketi PHP, o le pinba atonu e na o le pau lea o le auala faʻalagolago e malamalama ai i mea o loʻo tupu i le faʻatinoga. E moni, e masani lava ona faʻatinoina le pinba pe a uma ona matauina faʻafitauli ma e le o manino "mea e eli ai."

E masani lava e leai se tasi e iloa pe fia taimi i le sekone / minute e taʻua ai lea poʻo lena tusitusiga ma amata ona latou faʻaogaina "e ala i le paʻi", amata mai i na nofoaga e foliga mai e sili atu ona talafeagai.

O nisi e suʻesuʻeina ogalaau nginx, aʻo isi e suʻesuʻe lemu fesili faʻamaumauga.

Ioe, o le pinba o le a le faʻafefe, ae e tele mafuaʻaga e le maua ai e poloketi uma.

Fuainumera ma le mataituina o PHP scripts i le taimi moni. ClickHouse ma Grafana e sau e fesoasoani ia Pinba

Ma o le mafuaaga muamua o le faʻapipiʻiina.

Ina ia sili atu pe itiiti ifo le mauaina o se ituaiga o "vaivai" mai le faʻatinoga o Pinba, e matua manaʻomia lava le vaʻaia o fua faʻatatau e le gata mo minute mulimuli, ae faʻapea foʻi mo se taimi umi (mai aso i masina).

Mo lenei mea e te manaʻomia:

  • faʻapipiʻi faʻaopoopoga mo php (ma atonu e te manaʻo i se module mo nginx)
  • tuufaatasia faʻaopoopoga mo mysql
  • fa'apipi'i pine laupapa ma fa'atulaga le cron

Ona o le itiiti o faʻamatalaga e uiga ia Pinba, e toʻatele tagata e iai le manatu e naʻo le PHP5 na galue ma ua leva ona avea ma mea o le taimi ua tuanaʻi, ae o le a tatou vaʻai mulimuli ane, e le o le tulaga lea.

O le laasaga muamua e sili ona faigofie, pau lava le mea e tatau ona e faia o le faʻatonuina o le poloaiga:

apt install php-pinba

O loʻo avanoa lenei faʻaopoopoga i fale teu oloa e oʻo atu i le php 7.3 ma e te le manaʻomia le faʻapipiʻiina o se mea.

A maeʻa le faʻatinoina o le faʻatonuga faʻapipiʻi, matou te mauaina vave se faʻaopoopoga galue e aoina ma auina atu metrics mo tusitusiga taʻitasi (taimi taʻavale, manatua, ma isi) i le faatulagaga protobuf e ala i le udp i le 127.0.0.1:30002.

E oʻo mai i le taimi nei e leai se tasi na maua pe faʻatautaia nei pepa UDP, ae e le afaina ai le saoasaoa poʻo le mautu o au PHP scripts.

Se'ia o'o mai talu ai nei, na'o le pau lava le talosaga e mafai ona pu'eina ma fa'agaoioia nei pepa UDP pinba_engine. Fa'amatalaga"faigofie ma pupuu"O le faʻapipiʻiina e faʻavaivaia ai le manaʻo e faitau ma toe suʻesuʻe i ai. O lisi o fa'alagolago i le kilomita o lo'o iai uma igoa o afifi ma igoa o polokalame ma feso'ota'iga i itulau ta'itasi ma latou fa'apipi'iina, ma e iai a latou lava so'otaga i isi fa'alagolago. E leai se tasi e i ai se taimi poʻo se manaʻoga e faʻafetaui ai lenei mea leaga.

Faapipiiina faagasologa pinba2 e le'i faia aemaise le faigofie.

Masalo e iai se aso e mafai ai ona faʻapipiʻi le pinba10 ma se tasi pe lua faʻatonuga ma e le tatau ona faitau se tele o mea e malamalama ai pe faʻapefea ona fai, ae mo le taimi nei e le o le tulaga lea.

Afai e te faʻapipiʻi pinba_engine, ona naʻo le afa lea o le taua. A uma, e leai laupapa fa'amau e tatau ona fa'atapula'aina oe i fa'amatalaga mai na'o nai minute mulimuli, pe e tatau ona e fa'apotopotoina, teu, ma va'ava'ai oe lava ia fa'amaumauga. E lelei o le pine laupapa e fai si faigofie ona fa'aoga faʻapipiʻiina.

E foliga mai, aisea e mafatia ai pe afai o metric uma mai le php ua uma ona auina atu i le udp port i le protobuf format ma pau lava le mea e te manaʻomia o le tusia lea o se talosaga e puʻeina ma tuʻu i totonu o se ituaiga o teuina? E foliga mai, o na tagata atiaeina na o mai ma lenei manatu na vave ona nonofo i lalo e tusi a latou lava manatu, o nisi na iu i luga ole GitHub.

O loʻo i lalo se faʻamatalaga lautele o galuega faʻavae e fa e faʻasaoina ai metric i le teuina, lea e mafai ai ona faigofie ona toe maua ma vaʻaia nei faʻamatalaga, mo se faʻataʻitaʻiga, faʻaaogaina grafana.

olegfedoseev/pinba-server (Novema 2017)

udp server o loʻo alu e faʻasaoina metrics i OpenTSDB. Masalo afai o loʻo e faʻaaogaina OpenTSDB i lau poloketi, o le a fetaui lenei fofo ia te oe, a leai ou te fautuaina e pasi.

olegfedoseev/pinba-influxdb (Iuni 2018)

udp server i le alu, mai le mea lava e tasi habrowser, lea o le taimi lenei e teu ai fua fa'atatau ile InfluxDB. Tele poloketi o loʻo faʻaaogaina le InfluxDB mo le mataʻituina, o lea e mafai ai ona lelei lenei fofo mo i latou.

Pros:

  • InfluxDB e mafai ai fa'a'oto'oto metric na maua, ma tape le ulua'i fua pe a mae'a se taimi fa'apitoa.

Cons:

ClickHouse-Ninja/Proton (Ianuari 2019)

udp server i luga o le alu, lea e teu ai metrics i ClickHouse. O le fofo lea a la'u uo. Ina ua uma ona ou faamasani i ai na ou filifili ai ua oo i le taimi e ave ai Pinbu ma Clickhouse.

Pros:

  • Clickhouse e lelei mo ia galuega; e mafai ai e oe ona faʻapipiʻi faʻamaumauga i le tele o mea e mafai ai ona e teuina uma faʻamaumauga e tusa lava pe leai ni faʻaopoopoga
  • pe a mana'omia, e faigofie ona e fa'aputuina fua fa'atatau
  • fa'ata'ita'iga ua saunia mo grafana
  • fa'asaoina fa'amatalaga i taimi

Cons:

  • sese oti
  • e leai se config e mafai ona e configure le igoa o le database ma laulau, le tuatusi ma le taulaga o le server.
  • pe a teuina faʻamatalaga mataʻutia, e faʻaaogaina se laulau lolomifefiloi fesoasoani e teu ai itulau ma tuatusi tuatusi, lea e faʻalavelave ai fesili mulimuli ane.
  • isi mea laiti e mulimuli mai i le toese muamua

pinba-server/pinba-server (Aperila 2019)

udp server i le php, lea e teu ai metrics i ClickHouse. O laʻu fofo lea, o le taunuuga lea o le iloa pinba, ClickHouse ma protobuf. Aʻo ou faʻavasegaina lenei vaega atoa, na ou tusia se "faʻamaoniga o manatu", lea, faʻafuaseʻi mo aʻu, e leʻi faʻaaogaina punaoa taua (30 MB o le RAM ma le itiiti ifo i le 1% o se tasi o le valu faʻasologa o meaʻai), o lea na ou na tonu e faasoa atu i tagata lautele.

O mea lelei e tutusa ma le fofo muamua, na ou faʻaaogaina foi igoa masani mai le uluai pinba_engine. Na ou faʻaopoopoina foʻi se faʻapipiʻi e mafai ai ona e faʻalauiloaina ni faʻasologa o le pinbase server i le taimi e tasi ina ia mafai ai ona sefe metrics i laulau eseese - e aoga pe afai e te manaʻo e aoina faʻamatalaga e le gata mai le php, ae mai le nginx.
Faʻaletonu - "faʻaletonu mataʻutia" ma na mea laiti e le fetaui mo oe lava ia, ae o laʻu fofo e "faʻafaigofie pei o se seasea" ma e aofia ai naʻo le 100 laina o le code, o lea e mafai ai e soʻo se PHP atiaʻe ona suia mea e le fiafia i ai. i ni nai minute.

Pe faapefea ona galue

UDP port 30002 o lo'o fa'alogo i ai. O pepa uma e sau e fa'avasegaina e tusa ai ma le protobuf scheme ma tu'ufa'atasia. E tasi i le minute, e tuʻuina se afifi i totonu o le clickhouse i le laulau pinba.requests. (o faʻamaufaʻailoga uma o loʻo faʻatulagaina i totonu config)

O sina mea itiiti e uiga i le clickhouse

E lagolagoina e le Clickhouse masini e teu ai faʻamatalaga eseese. Ole mea e masani ona fa'aaogaina ole MergeTree.

Afai i se taimi e te filifili e teuina faʻamaumauga faʻapipiʻi mo taimi uma, ma faʻamatalaga mataʻutia mo naʻo le taimi mulimuli, ona mafai lea ona e fatuina se vaaiga faʻapitoa i le faʻavasegaina, ma faʻamama faʻavaitaimi le laulau pinba.requests autu, aʻo faʻamaumauga uma o le a tumau i le vaai tino. E le gata i lea, pe a fatuina le laulau pinba.requests, e mafai ona e faʻamaonia le "engine = Null", ona le faʻasaoina lea o faʻamatalaga mataʻutia i le tisiki, ma i le taimi lava e tasi o le a faʻamutaina i le vaʻaiga faʻapitoa ma faʻasaoina faʻatasi. . Ou te faʻaogaina lenei polokalame mo le nginx metrics, aua i luga o le nginx e 50 taimi sili atu talosaga nai lo le php.

O lea la, ua e sau i se auala umi ma ou te le manaʻo e tuʻua oe i le afa, o le mea lea o loʻo mulimuli mai o se faʻamatalaga auiliili o le faʻapipiʻiina ma le faʻatulagaina o laʻu fofo ma mea uma e te manaʻomia, faʻapea foʻi ma faʻalavelave na mafua ai le sili atu ma le tasi le vaʻa. e pa'u. O le faagasologa atoa o le faʻapipiʻiina o loʻo faʻamatalaina mo Ubuntu 18.04 LTS ma Centos 7; o le faagasologa e ono ese laʻititi i isi tufatufaga ma faʻaliliuga.

faatulagaga

Ou te tuuina uma poloaiga e tatau ai faila faila e faafaigofie ai le toe faia o faatonuga. Na'o fa'alavelave o le a fa'amatalaina i lalo.

php-pinba

A maeʻa faʻapipiʻi, ia mautinoa i totonu o le /etc/php/7.2/fpm/conf.d/20-pinba.ini faila ua e le faʻaalia uma filifiliga. I nisi o tufatufaga (eg centos) e ono fa'ailoa mai.

extension=pinba.so
pinba.enabled=1
pinba.server=127.0.0.1:30002

fale kiliki

I le taimi o le faʻapipiʻiina, o le a talosagaina oe e le clickhouse e seti se faʻaupuga mo le tagata le faʻaaogaina. Ona o le faaletonu, o lenei tagata faʻaoga e mafai ona maua mai IP uma, o lea afai e leai sau pa puipui i luga o lau 'auʻaunaga, ia mautinoa e setiina se faʻaupuga mo ia. E mafai foi ona faia lenei mea pe a uma ona faʻapipiʻi i le /etc/clickhouse-server/users.xml faila.

E taua foi le matauina o le clickhouse e faʻaogaina le tele o ports, e aofia ai le 9000. O lenei taulaga e faʻaaogaina foi mo php-fpm i nisi o tufatufaga (mo se faʻataʻitaʻiga, centos). Afai ua uma ona e fa'aogaina lenei uafu, e mafai ona e suia i se isi i le faila /etc/clickhouse-server/config.xml.

tusi fa'atasi ma le fa'apipi'i clickhouse

A maeʻa ona faʻapipiʻi le Grafana, faʻaaoga le login admin ma le password admin. A e saini i totonu mo le taimi muamua, o le a fai atu Grafana ia te oe e seti se upu fou.

Le isi, alu i le "+" -> faʻaulufale mai lisi ma faʻaalia le numera dashboard mo le faʻaulufale mai 10011. Na ou saunia ma faʻapipiʻi lenei lisi laupapa ina ia e le toe faia e oe lava ia.

E lagolagoina e Grafana le galulue faatasi ma le clickhouse e ala i se masini lona tolu, ae e leai ni faʻaaliga a Grafana mo faʻapipiʻi isi vaega (sa i ai se tiketi mo le tele o tausaga).

pinba-server

O le fa'apipi'iina o le protobuf ma le libevent e filifili, ae fa'aleleia le fa'atinoga o le pinba-server. Afai e te faʻapipiʻi le pinba-server i totonu o se pusa e ese mai i le / opt, ona e manaʻomia foʻi lea e faʻasaʻo systemd script faila

Pinba module mo nginx

Ina ia tuʻufaʻatasia se module, e te manaʻomia ni faʻamatalaga autu o le lava lava version o le nginx ua uma ona faʻapipiʻiina i luga o lau 'auʻaunaga, faʻapea foʻi ma le tuʻufaʻatasiga tutusa filifiliga, a leai o le a manuia le fausiaina, ae a faʻafesoʻotaʻi le module, o le a lafoina se mea sese. "O le module e le fetaui ma binary." E mafai ona vaʻaia filifiliga tuʻufaʻatasia e faʻaaoga ai le nginx -V poloaiga

Olaga hacks

O a'u nofoaga uma e galue i luga ole https. E leai se uiga o le fanua o le fuafuaga, o lea ou te faʻaaogaina e vavae ese ai le upega tafaʻilagi/console.

I tusitusiga e mafai ona maua mai le upega tafaʻilagi ou te faʻaogaina:

if (ini_get('pinba.enabled')) {
    pinba_schema_set('web');
}

Ma i faʻamaumauga faʻamafanafana (mo se faʻataʻitaʻiga, cron scripts):

if (ini_get('pinba.enabled')) {
    pinba_schema_set('console');
}

I la'u dashboard i Grafana o lo'o i ai se suiga i luga ole laiga/console mo le va'aiga fa'afuainumera eseese.

E mafai foi ona e lafoina au pine i Pinba, mo se faʻataʻitaʻiga:

pinba_tag_set('country', $countryCode);

Pau lava lena.

Fa'amolemole tali le palota i lalo ole tala.

E pei ona masani ai, ou te lapataia oe ou te le fautuaina pe fesoasoani e ala i savali patino ile Habr ma fesoʻotaʻiga lautele.

Fausia se tiketi ile Github.

Fa'amolemole lagolago ma fiafia Fa'aPeretania fa'aliliuga lenei tusiga luga reddit.

Na'o tagata fa'aigoaina e mafai ona auai i le su'esu'ega. Saini ese j, faʻamolemole.

O le a le OS o lo'o e fa'aogaina ile server?

  • Ubuntu

  • CentOS

  • Debian

  • Gentoo

  • Red Hat

  • Fedora

  • OpenSUSE

  • Manuia

  • Unix

  • pupuni

  • isi

114 tagata fa'aoga na palota. 11 tagata fa'aoga na le fa'aaogaina.

O le a le fa'amatalaga o le php o lo'o e fa'aogaina i luga ole server?

  • 7.3

  • 7.2

  • 7.1

  • 7.0

  • 5

  • isi

105 tagata fa'aoga na palota. 17 tagata fa'aoga na le fa'aaogaina.

Na e fa'aogaina le pinba?

  • ioe

  • leai, ae ou te manao i ai

  • leai ma ou te le manao i ai

  • leai ma e le'i fa'alogo ia te ia

100 tagata fa'aoga na palota. 14 tagata fa'aoga na le fa'aaogaina.

O le fea ituaiga o Pinba server e te mana'o e taumafai?

  • pinba_engine (mysql engine)

  • pinba2 (mysql afi)

  • pine laupapa (php + mysql)

  • olegfedoseev/pinba-server (go + OpenTSDB)

  • olegfedoseev/pinba-influxdb (go + influxdb)

  • pinba-server/pinba-server (go + clickhouse)

  • pinba-server/pinba-server (php + clickhouse)

  • O le a ou tusia a'u lava

  • isi

39 tagata fa'aoga na palota. 47 tagata fa'aoga na le fa'aaogaina.

puna: www.habr.com

Faaopoopo i ai se faamatalaga