Nga tatauranga me te aro turuki i nga tuhinga PHP i roto i te waa tuuturu. Ka haere mai a ClickHouse me Grafana ki te awhina i a Pinba

I roto i tenei tuhinga ka korero ahau ki a koe me pehea te whakamahi i te pinba me te clickhouse me te grafana hei utu mo te pinba_engine me te pinboard.

I runga i te kaupapa PHP, ko te pinba anake te huarahi pono ki te mohio ki nga mahi e pa ana ki te mahi. He pono, ka mahia te pinba i te wa kua kitea nga raru kaore i te maarama "kei hea te keri."

I te nuinga o nga wa karekau he tangata e mohio ana e hia nga wa mo ia hekona/meneti e karangahia ana tenei tuhinga, tera ranei ka timata ratou ki te arotau "ma te pa", ka timata mai i nga waahi e ahua pai ake ana.

Ko etahi ka tarai i nga raarangi nginx, ko etahi ka tarai i nga patai puhoi purongo.

Ae ra, karekau he nui o te pinba, engari he maha nga take kaore he kaupapa katoa.

Nga tatauranga me te aro turuki i nga tuhinga PHP i roto i te waa tuuturu. Ka haere mai a ClickHouse me Grafana ki te awhina i a Pinba

A ko te take tuatahi ko te whakaurunga.

Kia nui ake, iti ake ranei te tiki i etahi momo "ngoikore" mai i te whakatinanatanga o Pinba, he tino hiahia ki te kite i nga inenga mo nga meneti whakamutunga, engari mo te wa roa (mai i nga ra ki nga marama).

Mo tenei e hiahia ana koe:

  • whakauruhia te toronga mo te php (a ka hiahia pea koe ki tetahi waahanga mo te nginx)
  • whakahiato toronga mo mysql
  • tāuta te papa tohu me te whirihora cron

Na te iti o nga korero e pa ana ki a Pinba, he maha nga tangata e whakaaro ana i mahi noa i runga i te PHP5, a kua roa noa atu te ahua o mua, engari ka kite tatou i muri mai, ehara tenei i te ahua.

Ko te taahiraa tuatahi ko te ngawari, ko nga mea katoa e hiahia ana koe ki te mahi ko te whakahaere i te whakahau:

apt install php-pinba

Kei te waatea tenei toronga i roto i nga whare putunga tae atu ki te php 7.3 karekau koe e hiahia ki te whakahiato i tetahi mea.

Whai muri i te mahi i te whakahau whakaurunga, ka whiwhi tonu matou i tetahi toronga mahi e kohikohi ana, e tuku ana i nga inenga mo ia tuhinga (wa rere, mahara, me etahi atu) kei te whakatakotoranga. protobuf mā te udp ki 127.0.0.1:30002.

I tenei wa karekau he tangata i mau, i tukatuka ranei i enei paatete UDP, engari kaore tenei e pa kino ki te tere me te pumau o o tuhinga PHP.

I mua tata nei, ko te tono anake ka taea te hopu me te tukatuka i enei paatete UDP pinba_engine. Whakaahuatanga "ngawari me te poto" ka whakakorehia e te whakaurunga te hiahia ki te panui me te tirotiro ano. Kei roto i nga rarangi ti'aturi te roa kiromita nga ingoa o nga kohinga me nga ingoa o nga papatono me nga hononga ki nga wharangi takitahi me o raatau whakaurunga, a kei a raatau ano o raatau hononga ki etahi atu whakawhirinaki. Kaore he tangata e whai wa, e hiahia ana ranei ki te whakahaere i tenei mahi kino.

Te tukanga whakauru pinba2 kaore rawa ngawari.

Akene pea i tetahi ra ka taea te whakauru i te pinba10 me nga whakahau kotahi, e rua ranei, me te kore e panui i te tini o nga rauemi kia mohio ai koe me pehea te mahi, engari mo tenei wa kaore tenei.

Mena ka whakauruhia e koe te pinba_engine, koinei anake te haurua o te pakanga. I muri i nga mea katoa, kaore papa titi me whakawhäiti koe ki nga raraunga mai i nga meneti kua pahure ake nei, me whakahiato ranei koe, ka penapena, ka tiro ano koe i nga raraunga. He pai he tino ngawari te whakamahi i te papa pine whakauru.

Ko te ahua nei, he aha te mamaetanga mena kua tukuna katoa nga inenga mai i te php ki te tauranga udp i roto i te whakatakotoranga protobuf a ko nga mea katoa e hiahia ana koe ko te tuhi i tetahi tono ka mau i a raatau ka tuu ki etahi momo rokiroki? Ko te ahua nei, i noho tonu era kaiwhakawhanake i puta mai i tenei whakaaro ki te tuhi i o raatau ake whakaaro, ko etahi i mutu ki runga i a GitHub.

E whai ake nei he tirohanga whanui mo nga kaupapa puna tuwhera e wha e tiaki ana i nga inenga i roto i te rokiroki, mai i enei raraunga ka ngawari te tiki me te tirohanga, hei tauira, ma te whakamahi i te grafana.

olegfedoseev/pinba-tūmau (Noema 2017)

Kei te haere te tūmau udp e penapena inenga ki OpenTSDB. Akene mehemea kei te whakamahi koe i te OpenTSDB i roto i to kaupapa, ka pai tenei otinga ki a koe, ki te kore ka tūtohu ahau kia paahitia.

olegfedoseev/pinba-influxdb (Pipiri 2018)

udp tūmau kei te haere, mai i te taua habrowser, i tenei wa ka penapena nga inenga i roto i te InfluxDB. He maha nga kaupapa kei te whakamahi i te InfluxDB mo te aro turuki, no reira ka tino pai tenei otinga mo ratou.

Kaupapa:

  • InfluxDB āhei te reira whakahiatohia nga inenga kua riro mai, ka mukua te mea taketake i muri i te waa kua tohua.

Cons:

ClickHouse-Ninja/Proton (Hānuere 2019)

udp tūmau kei te haere, e penapena inenga i ClickHouse. Koinei te otinga o taku hoa. I muri i taku mohiotanga ki a ia ka whakatau ahau kua tae ki te wa ki te tango i a Pinbu me Clickhouse.

Kaupapa:

  • He pai te Clickhouse mo nga mahi penei; ka taea e koe te kopiri i nga raraunga ka taea e koe te penapena i nga raraunga mata katoa ahakoa kaore he whakahiato.
  • ki te hiahiatia, ka ngawari te whakahiato i nga inenga ka puta
  • tauira kua rite mo te grafana
  • ka tiaki i nga korero i runga i nga taima

Cons:

  • koha mate
  • Karekau he whirihora e taea ai e koe te whirihora i te ingoa o te putunga raraunga me nga ripanga, te wahitau me te tauranga o te tūmau.
  • i te wa e rongoa ana i nga raraunga mata, ka whakamahia he ripanga papakupu awhina hei penapena i nga wharangi me nga wahitau rohe, e whakararu ana i nga patai ka whai ake.
  • etahi atu mea iti ka whai mai i te itinga tuatahi

pinba-server/pinba-server (Paenga-whāwhā 2019)

udp tūmau i roto i te php, e whakaora inenga i ClickHouse. Ko taku otinga tenei, ko te hua o te mohio ki te pinba, ClickHouse me te protobuf. I a au e whakariterite ana i tenei roopu katoa, ka tuhia e ahau he "tohu o te ariā", he mea ohorere mo au, kaore i pau nga rauemi nui (30 MB o te RAM me te iti iho i te 1% o tetahi o te waru o nga punaha tukatuka), no reira ahau ka whakatau ki te whakapuaki ki te marea.

Ko nga painga he rite ki te otinga o mua, i whakamahia ano e ahau nga ingoa o mua mai i te pinba_engine taketake. I tapiritia ano e ahau he whirihora e taea ai e koe te whakarewa i nga waahi maha o nga tuunga pinbase i te wa kotahi hei tiaki i nga inenga i roto i nga ripanga rereke - he pai tenei ki te hiahia koe ki te kohikohi raraunga ehara i te php anake, engari mai i te nginx.
Nga ngoikoretanga - "te koha mate" me era mea iti kaore e pai ki a koe ake, engari ko taku otinga he "he ngawari ki te hepa" me te 100 noa nga rarangi tohu, na reira ka taea e tetahi kaiwhakawhanake PHP te whakarereke i nga mea kaore e pai ki a ia. i roto i nga meneti e rua.

Kia pehea te mahi i te reira

Ka whakarongohia te tauranga UDP 30002. Ka wetewetehia nga paanui taumai katoa i runga i te kaupapa protobuf me te whakahiato. Kia kotahi meneti, ka whakaurua he putea ki roto i te whare panui ki te ripanga pinba.requests. (kua whirihorahia nga tawhā katoa ki roto whirihora)

He iti mo te clickhouse

Ka tautoko a Clickhouse i nga miihini rokiroki raraunga rereke. Ko te mea tino whakamahia ko MergeTree.

Mena i etahi wa ka whakatau koe ki te penapena i nga raraunga whakahiato mo nga wa katoa, me nga raraunga mata anake mo te mea whakamutunga, katahi ka taea e koe te hanga i tetahi tirohanga whai kiko me te whakarōpūtanga, me te horoi i ia wa i te tepu pinba.requests matua, ka noho tonu nga raraunga katoa ki te tirohanga hanga. I tua atu, i te wa e hanga ana i te tepu pinba.requests, ka taea e koe te tohu "engine = Null", katahi ka kore e tiakina nga raraunga mata ki te kopae, i te wa ano ka mutu tonu ki te tirohanga whakahiato me te penapena whakahiato. . Ka whakamahi ahau i tenei kaupapa mo nga inenga nginx, na te mea i runga i te nginx he 50 nga wa nui atu i aku tono i runga i te php.

Na, kua tae mai koe ki tawhiti, kaore au e pai ki te wehe atu i a koe ki te haurua, na ko te mea e whai ake nei ko te whakamaarama taipitopito mo te whakaurunga me te whirihoranga o taku otinga me nga mea katoa e hiahia ana koe, me nga mahanga kua nui ake i te kotahi te kaipuke. ki te tukinga. Ko te tukanga whakaurunga katoa e whakaahuatia ana mo Ubuntu 18.04 LTS me Centos 7; he rereke pea te tukanga ki etahi atu tohatoha me nga putanga.

tāutanga

Ka hoatu e ahau nga whakahau katoa e tika ana Dockerfile kia pai ai te whakaputa i nga tohutohu. Ko nga mahanga anake ka korerohia i raro nei.

php-pinba

I muri i te whakaurunga, kia mohio kei roto i te konae /etc/php/7.2/fpm/conf.d/20-pinba.ini kua whakakorea e koe nga whiringa katoa. I etahi o nga tohatoha (hei tauira, centos) ka taea te korero.

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

whare clickhouse

I te wa o te whakaurunga, ka tono a clickhouse ki a koe kia tautuhia he kupuhipa mo te kaiwhakamahi taunoa. Ma te taunoa, ka uru mai tenei kaiwhakamahi mai i nga IP katoa, na mena karekau he papaahi i runga i to tuumau, me whakarite he kupuhipa mo taua mea. Ka taea hoki tenei i muri i te whakaurunga ki te konae /etc/clickhouse-server/users.xml.

Me mahara ano ka whakamahia e clickhouse etahi tauranga, tae atu ki te 9000. Ka whakamahia ano tenei tauranga mo te php-fpm i etahi tohatoha (hei tauira, centos). Mena kua whakamahi koe i tenei tauranga, ka taea e koe te huri ki tetahi atu i roto i te konae /etc/clickhouse-server/config.xml.

grafana ki te mono clickhouse

I muri i te whakauru i a Grafana, whakamahia te kaiwhakahaere takiuru me te kaiwhakahaere kupuhipa. Ina takiuru koe mo te wa tuatahi, ka tono a Grafana ki a koe ki te whakatakoto kupuhipa hou.

I muri mai, haere ki te "+" -> tahua kawemai me te tohu i te nama papatohu mo te kawemai 10011. I whakareri ahau, i tuku ake i tenei papatohu kia kore ai koe e mahi ano.

E tautoko ana a Grafana i te mahi me te clickhouse ma te mono-tuatoru, engari kaore he matohi a Grafana mo nga mono-tuatoru (he tikiti mo tenei mo etahi tau).

pinba-tūmau

Ko te whakauru i te protobuf me te libevent he mea whiriwhiri, engari he pai ake te mahi a te pinba-server. Mena ka whakauruhia e koe te pinba-server ki roto i te kōpaki i tua atu i te / opt, me whakatika ano koe tuhinga systemd konae

kōwae pinba mo te nginx

Hei whakahiato i tetahi kōwae, me hiahia koe ki nga waehere puna o te momo momo nginx kua oti te whakauru ki runga i to kaimau, me nga whiringa whakahiato ano, ki te kore ka angitu te hanga, engari ka honoa te waahanga, ka puta he hapa tera. "Karekau te kōwae i te hototahi rua." Ka taea te tiro i nga whiringa whakahiato ma te whakamahi i te nginx -V whakahau

Nga hacks o te ora

Ko aku pae katoa e mahi ana i runga https anake. Ka kore he tikanga o te mara aronuinga, no reira ka whakamahia e au hei wehe i te paetukutuku/whakahoahoa.

I roto i nga tuhinga e waatea ana mai i te paetukutuku ka whakamahia e au:

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

A i roto i nga tuhinga papatohu (hei tauira, nga tuhinga cron):

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

Kei roto i taku papatohu i Grafana he whakawhiti tukutuku/papatohu mo te tiro motuhake i nga tatauranga.

Ka taea hoki e koe te tuku i o tohu ki Pinba, hei tauira:

pinba_tag_set('country', $countryCode);

Heoi ano.

Tena koa whakautuhia nga pooti i raro i te tuhinga.

Ka rite ki o mua, ka whakatupato ahau ki a koe kaore au e tohutohu, e awhina ranei ma nga karere whaiaro i runga i te Habr me nga whatunga hapori.

Waihangatia he tikiti ki Github.

Tena koa tautoko me te pai Putanga Ingarihi tenei tuhinga i runga i te reddit.

Ko nga kaiwhakamahi kua rehita anake ka uru ki te rangahau. Waitohu maitēnā.

He aha te OS e whakamahia ana e koe i runga i te tūmau?

  • Ubuntu

  • CentOS

  • Debian

  • Gentoo

  • Red Hat

  • Fedora

  • OpenSUSE

  • Rauemi

  • Unix

  • Windows

  • atu

114 nga kaiwhakamahi i pooti. 11 nga kaiwhakamahi i aukati.

He aha te putanga php e whakamahia ana e koe i runga i te tūmau?

  • 7.3

  • 7.2

  • 7.1

  • 7.0

  • 5

  • atu

105 nga kaiwhakamahi i pooti. 17 nga kaiwhakamahi i aukati.

Kua whakamahi koe i te pinba?

  • ae

  • kaore, engari ka pirangi ahau

  • kaore, kaore au e pai

  • kahore a kahore i rongo ki a ia

100 nga kaiwhakamahi i pooti. 14 nga kaiwhakamahi i aukati.

Ko tehea putanga o te tūmau Pinba e hiahia ana koe ki te whakamatau?

  • pinba_engine (mysql engine)

  • pinba2 (mysql engine)

  • papa tohu (php + mysql)

  • olegfedoseev/pinba-tūmau (haere + OpenTSDB)

  • olegfedoseev/pinba-influxdb (haere + influxdb)

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

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

  • Maku ano ahau e tuhi

  • atu

39 nga kaiwhakamahi i pooti. 47 nga kaiwhakamahi i aukati.

Source: will.com

Tāpiri i te kōrero