{"id":32681,"date":"2019-10-31T21:48:22","date_gmt":"2019-10-31T18:48:22","guid":{"rendered":"https:\/\/prohoster.info\/blog\/statistika-i-monitoring-php-skriptov-v-realnom-vremeni-clickhouse-i-grafana-idut-na-pomoshh-k-pinba\/"},"modified":"2019-10-31T21:48:22","modified_gmt":"2019-10-31T18:48:22","slug":"statistika-i-monitoring-php-skriptov-v-realnom-vremeni-clickhouse-i-grafana-idut-na-pomoshh-k-pinba","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/statistika-i-monitoring-php-skriptov-v-realnom-vremeni-clickhouse-i-grafana-idut-na-pomoshh-k-pinba","title":{"rendered":"Statistic\u0103 \u0219i monitorizare a scripturilor PHP \u00een timp real. ClickHouse \u0219i Grafana vin \u00een ajutorul Pinba","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>\u00cen acest articol, v\u0103 voi explica cum s\u0103 folosi\u021bi pinba \u00eempreun\u0103 cu clickhouse \u0219i grafana \u00een loc de pinba_engine \u0219i pinboard.<\/p>\n<p>Pentru proiectele php, pinba este probabil singura modalitate fiabil\u0103 de a \u00een\u021belege ce se \u00eent\u00e2mpl\u0103 cu performan\u021ba. Totu\u0219i, pinba este de obicei implementat doar atunci c\u00e2nd deja exist\u0103 probleme \u0219i nu se \u0219tie \"de unde s\u0103 \u00eencepem\".<\/p>\n<p>Adesea, nimeni nu are idee c\u00e2te ori pe secund\u0103\/minut este apelat un anumit script \u0219i \u00eencepe s\u0103 optimizeze \"pe nev\u0103zute\", \u00eencep\u00e2nd cu locurile care par mai logice.<\/p>\n<p>Unii analizeaz\u0103 jurnalele nginx, iar al\u021bii interog\u0103rile lente din baza de date.<\/p>\n<p>Desigur, pinba nu ar fi de prisos, dar exist\u0103 c\u00e2teva motive pentru care nu se reg\u0103se\u0219te \u00een toate proiectele.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/br\/zm\/qz\/brzmqzc8itwc2lt3gjp0q2p-kse.png\"><img decoding=\"async\" alt=\"Statistic\u0103 \u0219i monitorizare a scripturilor PHP \u00een timp real. ClickHouse \u0219i Grafana vin \u00een ajutorul Pinba\" src=\"\/wp-content\/uploads\/2019\/04\/cdf2dc9af2a131d1f9aaef6bbde9b914.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nIar primul motiv este instalarea.<\/p>\n<p>Pentru a ob\u021bine oarecum un rezultat din implementarea pinbei, este foarte recomandat s\u0103 vede\u021bi metricile nu doar pentru ultimele minute, ci \u0219i pe o perioad\u0103 mai lung\u0103 (de la zile la luni).<\/p>\n<p>Pentru aceasta, trebuie:<\/p>\n<ul>\n<li>s\u0103 instala\u021bi extensia pentru php (\u0219i poate dori\u021bi un modul pentru nginx)<\/li>\n<li>s\u0103 compila\u021bi extensia pentru mysql<\/li>\n<li>s\u0103 instala\u021bi pinboard \u0219i s\u0103 configura\u021bi cron<\/li>\n<\/ul>\n<p>\nDin cauza informa\u021biilor limitate despre pinba, mul\u021bi au avut impresia c\u0103 a func\u021bionat doar pe php5 \u0219i c\u0103 a r\u0103mas demult \u00een trecut, dar a\u0219a cum vom vedea mai departe, nu este a\u0219a.<\/p>\n<p>Primul pas este cel mai simplu, tot ce trebuie s\u0103 face\u021bi este s\u0103 executa\u021bi comanda:<\/p>\n<pre><code class=\"bash\">apt install php-pinba<\/code><\/pre>\n<p>\n\u00cen repositoare, aceast\u0103 extensie exist\u0103 p\u00e2n\u0103 la php 7.3 inclusiv \u0219i nu trebuie s\u0103 compila\u021bi nimic.<\/p>\n<p>Dup\u0103 executarea comenzii de instalare, ob\u021binem imediat o extensie func\u021bional\u0103 care colecteaz\u0103 \u0219i trimite metricile fiec\u0103rui script (durata de execu\u021bie, memorie etc.) \u00een format <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Protocol_Buffers\">protobuf<\/a><\/noindex> pe udp la 127.0.0.1:30002.<\/p>\n<p>Aceste pachete udp nu sunt \u00eenc\u0103 interceptate \u0219i procesate de nimeni, dar asta nu afecteaz\u0103 negativ viteza sau stabilitatea scripturilor dvs. php.<\/p>\n<p>P\u00e2n\u0103 de cur\u00e2nd, aplica\u021bia care putea intercepta \u0219i procesa aceste pachete udp era doar <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/tony2001\/pinba_engine\">pinba_engine<\/a><\/noindex>. Descriere &#171;<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/tony2001\/pinba_engine\/wiki\/Installation\">simpl\u0103 \u0219i concis\u0103<\/a><\/noindex>&#187; instalarea \u00ee\u021bi taie orice poft\u0103 de a citi din nou \u0219i de a te implica. \u00cen listele kilometrice de dependen\u021be se g\u0103sesc at\u00e2t denumirile pachetelor, c\u00e2t \u0219i denumirile programelor \u0219i linkuri c\u0103tre paginile separate pentru instalarea lor, iar acestea au propriile linkuri c\u0103tre alte dependen\u021be. Nimeni nu are timp sau dorin\u021b\u0103 s\u0103 se ocupe de aceast\u0103 nebunie.<\/p>\n<p>Procesul de instalare <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/badoo\/pinba2\">pinba2<\/a><\/noindex> nu a fost <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/badoo\/pinba2\/blob\/master\/docs\/index.md#installation\">mult mai u\u0219or<\/a><\/noindex>.<\/p>\n<p>Poate c\u0103 \u00eentr-o zi pinba10 va putea fi instalat cu una sau dou\u0103 comenzi \u0219i nu va trebui s\u0103 citim o mul\u021bime de materiale pentru a \u00een\u021belege cum s\u0103 facem asta, dar momentan nu este a\u0219a.<\/p>\n<p>Dac\u0103 l-a\u021bi instalat totu\u0219i pe pinba_engine, atunci este doar jum\u0103tate din lucru. C\u0103ci f\u0103r\u0103 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/intaro\/pinboard\">pinboard<\/a><\/noindex> va trebui s\u0103 te limitezi la datele doar din ultimele c\u00e2teva minute sau s\u0103 agregi, s\u0103 salvezi \u0219i s\u0103 vizualizezi datele singur. E bine c\u0103 pinboard este destul de simplu \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/intaro\/pinboard\/wiki\/Installation\">instalare<\/a><\/noindex>.<\/p>\n<p>Pare ciudat, de ce at\u00e2tea suferin\u021be dac\u0103 toate metricile din php sunt deja trimise pe portul udp \u00een format protobuf \u0219i tot ce trebuie s\u0103 faci este s\u0103 scrii o aplica\u021bie care s\u0103 le capteze \u0219i s\u0103 le depoziteze \u00een orice stocare? Se pare c\u0103 dezvoltatorii c\u0103rorva le-a venit aceast\u0103 idee s-au apucat imediat s\u0103-\u0219i scrie bicicletele, o parte dintre ele ajung\u00e2nd pe github.<\/p>\n<p>Urmeaz\u0103 o revizuire a patru proiecte open-source, care salveaz\u0103 metricile \u00een stoc\u0103ri, din care aceste date pot fi u\u0219or extrase \u0219i vizualizate, de exemplu, folosind grafana.<\/p>\n<h4><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/olegfedoseev\/pinba-server\">olegfedoseev\/pinba-server<\/a><\/noindex> (noiembrie 2017) <\/h4>\n<p>\nserver udp pe go, care salveaz\u0103 metricile \u00een OpenTSDB. Poate c\u0103 dac\u0103 OpenTSDB este deja utilizat \u00een proiectul vostru, atunci aceast\u0103 solu\u021bie vi se va potrivi, altfel v\u0103 recomand s\u0103 o evita\u021bi.<\/p>\n<h4><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/olegfedoseev\/pinba-influxdb\">olegfedoseev\/pinba-influxdb<\/a><\/noindex> (iunie 2018)<\/h4>\n<p>\nserver udp pe go, de la acela\u0219i <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/Aryoh\/\">habrauser<\/a><\/noindex>, care de data aceasta salveaz\u0103 metricile \u00een InfluxDB. Pe multe proiecte pentru monitorizare se folose\u0219te deja InfluxDB, a\u0219a c\u0103 pentru ei aceast\u0103 solu\u021bie poate fi excelent\u0103.<\/p>\n<p>Pro:<\/p>\n<ul>\n<li>InfluxDB <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/olegfedoseev\/pinba-influxdb#influxdb-preparation\">permite<\/a><\/noindex> agreg\u00e2nd metricile ob\u021binute, iar originalul elimin\u00e2ndu-l dup\u0103 un timp stabilit.<\/li>\n<\/ul>\n<p>\nDezavantaje:<\/p>\n<ul>\n<li>aceast\u0103 solu\u021bie nu salveaz\u0103 informa\u021bii despre timere.<\/li>\n<li>InfluxDB va salva adresele paginilor site-ului ca etichete \u0219i dac\u0103 ave\u021bi multe adrese unice, atunci aceasta va duce la <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/449352\/#comment_20085878\">consumul crescut<\/a><\/noindex> memorie RAM. De la un anumit moment, el &#171;<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/2v\/68\/th\/2v68thch8ajln7abt-ghsmsbxgs.png\">va \u00eencepe s\u0103 m\u0103n\u00e2nce memorie ca un nebun<\/a><\/noindex>&#171;. (<noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@valyala\/insert-benchmarks-with-inch-influxdb-vs-victoriametrics-e31a41ae2893\">sursa<\/a><\/noindex>)<\/li>\n<\/ul>\n<p><\/p>\n<h4><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ClickHouse-Ninja\/Proton\">ClickHouse-Ninja\/Proton<\/a><\/noindex> (ianuarie 2019) <\/h4>\n<p>\nserver udp pe go, care salveaz\u0103 metricile \u00een ClickHouse. Aceast\u0103 solu\u021bie este a prietenului meu. Anume dup\u0103 ce m-am familiarizat cu ea, am decis c\u0103 este timpul s\u0103 m\u0103 apuc de pinba \u0219i clickhouse.<\/p>\n<p>Pro:<\/p>\n<ul>\n<li>clickhouse se potrive\u0219te perfect pentru astfel de sarcini, el permite comprimarea datelor at\u00e2t de mult \u00eenc\u00e2t po\u021bi stoca toate datele brute chiar \u0219i f\u0103r\u0103 agreg\u0103ri<\/li>\n<li>dac\u0103 este necesar, po\u021bi agrega u\u0219or metricile ob\u021binute<\/li>\n<li>\u0219ablon gata pentru grafana<\/li>\n<li>salveaz\u0103 informa\u021bii despre timere<\/li>\n<\/ul>\n<p>\nDezavantaje:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/lurkmore.to\/%D0%A4%D0%B0%D1%82%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BD%D0%B5%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D0%BA\">defect fatal<\/a><\/noindex><\/li>\n<li>nu exist\u0103 un fi\u0219ier de configurare \u00een care s\u0103 po\u021bi seta numele bazei de date \u0219i al tabelelor, adresa \u0219i portul serverului.<\/li>\n<li>la salvarea datelor brute se folose\u0219te un tabel auxiliar pentru stocarea adreselor paginilor \u0219i a domeniilor, ceea ce complic\u0103 ulterior interog\u0103rile<\/li>\n<li>alte detalii inferioare care decurg din prima problem\u0103<\/li>\n<\/ul>\n<p><\/p>\n<h4><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/pinba-server\/pinba-server\">pinba-server\/pinba-server<\/a><\/noindex> (aprilie 2019) <\/h4>\n<p>\nserver UDP pe PHP, care salveaz\u0103 metricile \u00een ClickHouse. Aceasta este solu\u021bia mea, rezultatul \u00eent\u00e2lnirii cu pinba, ClickHouse \u0219i protobuf. \u00cen timp ce m\u0103 familiarizam cu toat\u0103 aceast\u0103 combina\u021bie, am scris un \"proof of concept\", care, spre surprinderea mea, nu consuma resurse semnificative (30 MB de memorie RAM \u0219i mai pu\u021bin de 1% din unul dintre cele opt nuclee ale procesorului), a\u0219a c\u0103 am decis s\u0103 o \u00eemp\u0103rt\u0103\u0219esc cu publicul.<\/p>\n<p>Avantaje \u2014 acelea\u0219i ca \u0219i la solu\u021bia anterioar\u0103, de asemenea am folosit denumirile obi\u0219nuite din pinba_engine original. De asemenea, am ad\u0103ugat un fi\u0219ier de configurare care permite lansarea mai multor instan\u021be ale serverului pinba, pentru a salva metricile \u00een tabele diferite \u2014 acest lucru este util dac\u0103 dori\u021bi s\u0103 colecta\u021bi date nu doar din PHP, ci \u0219i din nginx.<br \/>\nDezavantaje \u2014 \"defect fatal\" \u0219i alte mici probleme care nu te vor mul\u021bumi, dar solu\u021bia mea este \"simpl\u0103 ca un pantof\" \u0219i const\u0103 \u00een aproximativ 100 de linii de cod, a\u0219a c\u0103 orice dezvoltator PHP poate schimba \u00een c\u00e2teva minute ce nu \u00eei place.<\/p>\n<p><b>Principiul de func\u021bionare<\/b><\/p>\n<p>Ascult\u0103 pe portul UDP 30002. Toate pachetele de intrare sunt decodificate conform schemei protobuf \u0219i agregate. O dat\u0103 pe minut se face o inser\u021bie a unui lot \u00een ClickHouse \u00een tabelul pinba.requests. (toate parametrii sunt configurabili \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/pinba-server\/pinba-server\/blob\/master\/config.json\">fi\u0219ierul de configurare<\/a><\/noindex>)<\/p>\n<p><b>Pu\u021bin despre ClickHouse<\/b><\/p>\n<p>ClickHouse suport\u0103 diferite motoare de stocare a datelor. Cel mai frecvent utilizat este MergeTree. <\/p>\n<p>Dac\u0103 \u00eentr-un moment dat decizi s\u0103 p\u0103strezi datele agregate pentru tot timpul, iar cele brute doar pentru ultima perioad\u0103, po\u021bi crea o vizualizare materializat\u0103 cu grupare, iar tabelul principal pinba.requests poate fi cur\u0103\u021bat periodic, toate datele r\u0103m\u00e2n\u00e2nd \u00een vizualizarea materializat\u0103. Mai mult, c\u00e2nd creezi tabelul pinba.requests po\u021bi specifica \u201eengine = Null\u201d, astfel \u00eenc\u00e2t datele brute s\u0103 nu fie salvate pe disc, dar totu\u0219i vor ajunge \u00een vizualizarea materializat\u0103 \u0219i vor fi salvate agregate. Folosesc aceast\u0103 schem\u0103 pentru metricile nginx, deoarece pe nginx am de 50 de ori mai multe cereri dec\u00e2t pe PHP.<\/p>\n<p>A\u0219adar, a\u021bi parcurs un drum lung \u0219i nu a\u0219 vrea s\u0103 v\u0103 las pe jum\u0103tate, a\u0219a c\u0103 urmeaz\u0103 o descriere detaliat\u0103 a instal\u0103rii \u0219i configur\u0103rii solu\u021biei mele \u0219i a tot ce ave\u021bi nevoie, precum \u0219i capcanele care au distrus nu un singur vas. \u00centregul proces de instalare este descris pentru Ubuntu 18.04 LTS \u0219i CentOS 7; \u00een alte distribu\u021bii \u0219i versiuni, procesul poate diferi u\u0219or.<\/p>\n<h4>Instalare<\/h4>\n<p>\nToate comenzile necesare le-am scos \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/pinba-server\/pinba-server\/tree\/master\/docker\">Dockerfile<\/a><\/noindex> pentru a facilita reproducerea instruc\u021biunilor. Vor fi descrise doar capcanele.<\/p>\n<p><b>php-pinba<\/b><\/p>\n<p>Dup\u0103 instalare, asigura\u021bi-v\u0103 c\u0103 \u00een fi\u0219ierul \/etc\/php\/7.2\/fpm\/conf.d\/20-pinba.ini ave\u021bi toate op\u021biunile decurtate. \u00cen unele distribu\u021bii (de exemplu, CentOS), ele pot fi comentate.<\/p>\n<pre><code class=\"plaintext\">extension=pinba.so\npinba.enabled=1\npinba.server=127.0.0.1:30002<\/code><\/pre>\n<p>\n<b>clickhouse<\/b><\/p>\n<p>\u00cen timpul instal\u0103rii, ClickHouse v\u0103 va cere s\u0103 seta\u021bi o parol\u0103 pentru utilizatorul default. Implicit, acest utilizator este accesibil din toate IP-urile, a\u0219a c\u0103, dac\u0103 nu ave\u021bi un firewall pe server, asigura\u021bi-v\u0103 c\u0103 \u00eei seta\u021bi o parol\u0103. Acest lucru se poate face \u0219i dup\u0103 instalare \u00een fi\u0219ierul \/etc\/clickhouse-server\/users.xml.<\/p>\n<p>De asemenea, merit\u0103 men\u021bionat c\u0103 ClickHouse utilizeaz\u0103 mai multe porturi, inclusiv 9000. Acest port este folosit, de asemenea, pentru php-fpm \u00een unele distribu\u021bii (de exemplu, CentOS). Dac\u0103 acest port este deja folosit, \u00eel pute\u021bi schimba \u00eentr-unul diferit \u00een fi\u0219ierul \/etc\/clickhouse-server\/config.xml.<\/p>\n<p><b>Grafana cu plugin pentru ClickHouse<\/b><\/p>\n<p>Dup\u0103 instalarea Grafana, utiliza\u021bi loginul admin \u0219i parola admin. La prima autentificare, Grafana v\u0103 va cere s\u0103 seta\u021bi o nou\u0103 parol\u0103.<\/p>\n<p>Apoi mergem \u00een meniul &#171;+&#187; -&gt; import \u0219i indic\u0103m num\u0103rul tabloului de bord pentru import <noindex><a rel=\"nofollow\" href=\"https:\/\/grafana.com\/dashboards\/10011\">10011<\/a><\/noindex>. Acest dashboard l-am preg\u0103tit \u0219i l-am \u00eenc\u0103rcat, astfel \u00eenc\u00e2t s\u0103 nu fie nevoie s\u0103-l crea\u021bi din nou.<\/p>\n<p>Grafana suport\u0103 lucrul cu ClickHouse printr-un plugin ter\u021b, dar pentru pluginurile ter\u021be, alertele Grafana nu func\u021bioneaz\u0103 (ombrele pentru aceasta sunt existente de c\u00e2\u021biva ani).<\/p>\n<p><b>pinba-server<\/b><\/p>\n<p>Instalarea protobuf \u0219i libevent nu este obligatorie, dar \u00eembun\u0103t\u0103\u021be\u0219te performan\u021ba pinba-server. Dac\u0103 instala\u021bi pinba-server \u00eentr-un director diferit de \/opt, atunci va trebui s\u0103 modifica\u021bi \u0219i <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/pinba-server\/pinba-server\/blob\/master\/systemd\/pinba-server.service\">scriptul systemd<\/a><\/noindex> fi\u0219ierului.<\/p>\n<p><b>modulul pinba pentru nginx<\/b><\/p>\n<p>Pentru a compila modulul, ave\u021bi nevoie de sursele acelea\u0219i versiuni de nginx care sunt deja instalate pe serverul dvs. \u0219i de acelea\u0219i op\u021biuni de compilare, altfel compilarea va trece cu succes, dar la conectarea modulului va ap\u0103rea o eroare, c\u0103 \u201emodulul nu este compatibil binar\u201d. Op\u021biunile de compilare pot fi vizualizate folosind comanda nginx -V<\/p>\n<p><b>Sfaturi utile<\/b><\/p>\n<p>Toate site-urile mele func\u021bioneaz\u0103 doar pe https. C\u00e2mpul schema devine f\u0103r\u0103 sens, de aceea \u00eel folosesc pentru a separa web\/console.<\/p>\n<p>\u00cen scripturile care sunt accesibile din web folosesc:<\/p>\n<pre><code class=\"php\">if (ini_get('pinba.enabled')) {\n    pinba_schema_set('web');\n}\n<\/code><\/pre>\n<p>\nIar \u00een cele console (de exemplu, scripturi cron):<\/p>\n<pre><code class=\"php\">if (ini_get('pinba.enabled')) {\n    pinba_schema_set('console');\n}<\/code><\/pre>\n<p>\n\u00cen dashboard-ul meu din Grafana exist\u0103 un comutator web\/console pentru a vizualiza statisticile separat.<\/p>\n<p>De asemenea, \u00een Pinba pot fi transmise propriile etichete, de exemplu:<\/p>\n<pre><code class=\"php\">pinba_tag_set('country', $countryCode);<\/code><\/pre>\n<p>\n<b>Asta e tot. <\/b><\/p>\n<p>V\u0103 rog s\u0103 r\u0103spunde\u021bi la sondajele de sub articol.<\/p>\n<p>\u0218i avertizez tradi\u021bional c\u0103 nu ofer consultan\u021b\u0103 \u0219i nu ajut prin mesaje personale pe Habr\u0103 \u0219i \u00een re\u021belele sociale.<\/p>\n<p>Deschide\u021bi un tichet pe GitHub.<\/p>\n<p>De asemenea, v\u0103 rog s\u0103 sus\u021bine\u021bi cu like-uri <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/449818\/\">varianta \u00een englez\u0103<\/a><\/noindex> acestui articol <noindex><a rel=\"nofollow\" href=\"https:\/\/www.reddit.com\/r\/PHP\/comments\/bigszu\/statistics_and_monitoring_of_php_scripts_in_real\/\">pe Reddit<\/a><\/noindex>.<\/p>\n<p class=\"for_users_only_msg\">Numai utilizatorii \u00eenregistra\u021bi pot participa la sondaj. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Conecta\u021bi-v\u0103<\/a><\/noindex>, v\u0103 rug\u0103m.<\/p>\n<h2 class=\"default-block__polling-title\">Ce sistem de operare folosi\u021bi pe server?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Ubuntu<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    CentOS<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Debian<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Gentoo<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Red Hat<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Fedora<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    OpenSUSE<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    SuSE<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Unix<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Windows<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    altele<\/p>\n<\/li>\n<\/ul>\n<p>    114 utilizatori au votat. 11 utilizatori s-au ab\u021binut.<\/p>\n<h2 class=\"default-block__polling-title\">Ce versiune de PHP folosi\u021bi pe server?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    7.3<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    7.2<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    7.1<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    7.0<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    5<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    altele<\/p>\n<\/li>\n<\/ul>\n<p>    105 utilizatori au votat. 17 utilizatori s-au ab\u021binut.<\/p>\n<h2 class=\"default-block__polling-title\">A\u021bi folosit vreodat\u0103 Pinba?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    da<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    nu, dar mi-ar pl\u0103cea<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    nu \u0219i nu mi-ar pl\u0103cea<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    nu \u0219i nu am auzit despre ea<\/p>\n<\/li>\n<\/ul>\n<p>    100 utilizatori au votat. 14 utilizatori s-au ab\u021binut.<\/p>\n<h2 class=\"default-block__polling-title\">Ce versiune de server Pinba a\u021bi dori s\u0103 \u00eencerca\u021bi?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    pinba_engine (motor mysql)<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    pinba2 (motor mysql)<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    pinboard (php + mysql)<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    olegfedoseev\/pinba-server (go + OpenTSDB)<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    olegfedoseev\/pinba-influxdb (go + influxdb)<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    pinba-server\/pinba-server (go + clickhouse)<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    pinba-server\/pinba-server (php + clickhouse)<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    \u00eemi voi scrie unul eu<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    altele<\/p>\n<\/li>\n<\/ul>\n<p>    39 utilizatori au votat. 47 utilizatori s-au ab\u021binut.<br \/>\n<br \/>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/444610\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c pinba \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 clickhouse \u0438 grafana \u0432\u043c\u0435\u0441\u0442\u043e pinba_engine \u0438 pinboard. \u041d\u0430 php-\u043f\u0440\u043e\u0435\u043a\u0442\u0435 pinba \u2014 \u043f\u043e\u0436\u0430\u043b\u0443\u0439 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e. \u041f\u0440\u0430\u0432\u0434\u0430 \u043e\u0431\u044b\u0447\u043d\u043e pinba \u0432\u043d\u0435\u0434\u0440\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0433\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u0443\u0436\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0438 \u043d\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u00ab\u0433\u0434\u0435 \u043a\u043e\u043f\u0430\u0442\u044c\u00bb. \u0427\u0430\u0441\u0442\u043e \u043d\u0438\u043a\u0442\u043e \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u043d\u0435 \u0438\u043c\u0435\u0435\u0442, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443\/\u043c\u0438\u043d\u0443\u0442\u0443 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":24468,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-32681","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c pinba \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 clickhouse \u0438 grafana \u0432\u043c\u0435\u0441\u0442\u043e pinba_engine \u0438 pinboard. \u041d\u0430 php-\u043f\u0440\u043e\u0435\u043a\u0442\u0435 pinba \u2014 \u043f\u043e\u0436\u0430\u043b\u0443\u0439 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/statistika-i-monitoring-php-skriptov-v-realnom-vremeni-clickhouse-i-grafana-idut-na-pomoshh-k-pinba\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 PHP \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438. ClickHouse \u0438 Grafana \u0438\u0434\u0443\u0442 \u043d\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u043a Pinba | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c pinba \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 clickhouse \u0438 grafana \u0432\u043c\u0435\u0441\u0442\u043e pinba_engine \u0438 pinboard. \u041d\u0430 php-\u043f\u0440\u043e\u0435\u043a\u0442\u0435 pinba \u2014 \u043f\u043e\u0436\u0430\u043b\u0443\u0439 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/statistika-i-monitoring-php-skriptov-v-realnom-vremeni-clickhouse-i-grafana-idut-na-pomoshh-k-pinba\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:48:22+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:48:22+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Statistici \u0219i monitorizare a scripturilor PHP \u00een timp real. ClickHouse \u0219i Grafana vin \u00een ajutorul Pinba | ProHoster","description":"\u00cen acest articol v\u0103 voi povesti cum s\u0103 folosi\u021bi Pinba \u00eempreun\u0103 cu ClickHouse \u0219i Grafana \u00een loc de pinba_engine \u0219i pinboard. \u00cen cadrul proiectului PHP, Pinba este, probabil, singurul mod fiabil de a \u00een\u021belege ce se \u00eent\u00e2mpl\u0103.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/statistika-i-monitoring-php-skriptov-v-realnom-vremeni-clickhouse-i-grafana-idut-na-pomoshh-k-pinba","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 PHP \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438. ClickHouse \u0438 Grafana \u0438\u0434\u0443\u0442 \u043d\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u043a Pinba | ProHoster","og:description":"\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c pinba \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 clickhouse \u0438 grafana \u0432\u043c\u0435\u0441\u0442\u043e pinba_engine \u0438 pinboard. \u041d\u0430 php-\u043f\u0440\u043e\u0435\u043a\u0442\u0435 pinba \u2014 \u043f\u043e\u0436\u0430\u043b\u0443\u0439 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441.","og:url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/statistika-i-monitoring-php-skriptov-v-realnom-vremeni-clickhouse-i-grafana-idut-na-pomoshh-k-pinba","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:48:22+00:00","article:modified_time":"2019-10-31T18:48:22+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"32681","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 12:02:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:54:26","updated":"2026-01-21 12:02:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/32681","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=32681"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/32681\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/24468"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=32681"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=32681"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=32681"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}