{"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\/hr\/blog\/administrirovanie\/statistika-i-monitoring-php-skriptov-v-realnom-vremeni-clickhouse-i-grafana-idut-na-pomoshh-k-pinba","title":{"rendered":"Statistika i pra\u0107enje PHP skripti u stvarnom vremenu. ClickHouse i Grafana poma\u017eu Pinbi","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>U ovom \u010dlanku \u0107u objasniti kako koristiti pinbu zajedno s clickhouse i grafana umjesto pinba_engine i pinboard.<\/p>\n<p>Na PHP projektu, pinba je vjerojatno jedini pouzdan na\u010din da razumijemo \u0161to se doga\u0111a s performansama. Na\u017ealost, pinba se obi\u010dno implementira tek kada ve\u0107 postoje problemi i nije jasno \"gdje kopati\".<\/p>\n<p>\u010cesto nitko nema pojma koliko se puta u sekundi\/minuti poziva odre\u0111ena skripta i po\u010dinju optimizirati \"na osje\u0107aj\", po\u010dinju\u0107i od onih mjesta koja se \u010dine logi\u010dnim.<\/p>\n<p>Netko analizira nginx logove, a netko spore upite u bazi podataka.<\/p>\n<p>Naravno, pinba ne bi bila suvi\u0161na, ali postoji nekoliko razloga za\u0161to nije na svakom projektu.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/br\/zm\/qz\/brzmqzc8itwc2lt3gjp0q2p-kse.png\"><img decoding=\"async\" alt=\"Statistika i pra\u0107enje PHP skripti u stvarnom vremenu. ClickHouse i Grafana poma\u017eu Pinbi\" 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 \/>\nPrvi razlog je instalacija.<\/p>\n<p>Da bismo dobili neki \"izlaz\" od implementacije pinbe, vrlo je po\u017eeljno vidjeti metrike ne samo za posljednje minute, ve\u0107 i na du\u017eem vremenskom razdoblju (od dana do mjeseci).<\/p>\n<p>Za to je potrebno:<\/p>\n<ul>\n<li>instalirati ekstenziju za php (i mo\u017eda \u017eelite modul za nginx)<\/li>\n<li>kompajlirati ekstenziju za mysql<\/li>\n<li>instalirati pinboard i postaviti cron<\/li>\n<\/ul>\n<p>\nZbog malog broja informacija o pinbi, mnogi su zaklju\u010dili da je radila samo na php5 i da je odavno ostavljena u pro\u0161losti, ali kao \u0161to \u0107emo vidjeti dalje \u2014 to nije to\u010dno.<\/p>\n<p>Prvi korak \u2014 najlak\u0161i, samo trebate izvr\u0161iti naredbu:<\/p>\n<pre><code class=\"bash\">apt install php-pinba<\/code><\/pre>\n<p>\nU repozitorijima ova ekstenzija se nalazi \u010dak do php 7.3 uklju\u010divo i ne trebate ni\u0161ta kompajlirati.<\/p>\n<p>Nakon izvr\u0161enja naredbe za instalaciju, odmah dobivamo ve\u0107 funkcionalnu ekstenziju koja prikuplja i \u0161alje metrike svake skripte (vrijeme izvo\u0111enja, memorija itd.) u formatu <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Protocol_Buffers\">, generiraju\u0107i je prema proto datotekama, mnogo je te\u017ee pogrije\u0161iti.<\/a><\/noindex> putem udp na 127.0.0.1:30002.<\/p>\n<p>Ovi udp paketi trenutno ne hvata nitko i ne obra\u0111uju, ali to nikako ne utje\u010de na brzinu ili stabilnost rada va\u0161ih php skripti.<\/p>\n<p>Do nedavno, kao aplikacija koja je mogla hvatati i obra\u0111ivati ove udp pakete bio je samo <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/tony2001\/pinba_engine\">pinba_engine<\/a><\/noindex>. \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 &#171;<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/tony2001\/pinba_engine\/wiki\/Installation\">jednostavan i sa\u017eet<\/a><\/noindex>&#187; \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043e\u0442\u0431\u0438\u0432\u0430\u0435\u0442 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043a\u043e\u0433\u0434\u0430-\u043b\u0438\u0431\u043e \u0435\u0449\u0451 \u0440\u0430\u0437 \u044d\u0442\u043e \u0447\u0438\u0442\u0430\u0442\u044c \u0438 \u0432\u043d\u0438\u043a\u0430\u0442\u044c. \u0412 \u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440\u043e\u0432\u044b\u0445 \u0441\u043f\u0438\u0441\u043a\u0430\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0435\u0441\u0442\u044c \u043a\u0430\u043a \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0442\u0430\u043a \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0438 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0441 \u0438\u0445 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439, \u0430 \u0443 \u0442\u0435\u0445 \u0441\u0432\u043e\u0438 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438. \u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u044d\u0442\u043e\u0439 \u043b\u0430\u0431\u0443\u0434\u043e\u0439 \u043d\u0438 \u0443 \u043a\u043e\u0433\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u043d\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043d\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u044f.<\/p>\n<p>Postupak instalacije <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/badoo\/pinba2\">pinba2<\/a><\/noindex> nije postao <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/badoo\/pinba2\/blob\/master\/docs\/index.md#installation\">posebno lak\u0161i<\/a><\/noindex>.<\/p>\n<p>Mo\u017eda \u0107e jednog dana pinba10 mo\u0107i instalirati s jednom ili dvije naredbe bez potrebe za \u010ditanjem mno\u0161tva materijala kako biste razumjeli kako to u\u010diniti, ali zasad to nije slu\u010daj.<\/p>\n<p>Ako ste ipak instalirali pinba_engine, to je samo pola posla. Jer bez <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/intaro\/pinboard\">pinboard<\/a><\/noindex> bit \u0107ete ograni\u010deni na podatke samo za posljednjih nekoliko minuta ili \u0107ete morati samostalno agregirati, pohranjivati i vizualizirati podatke. Dobro je \u0161to je pinboard dovoljno jednostavan. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/intaro\/pinboard\/wiki\/Installation\">instalaciju<\/a><\/noindex>.<\/p>\n<p>Naizgled, za\u0161to takva patnja kada sve metrike iz php-a ve\u0107 idu na udp-port u protobuf formatu i sve \u0161to trebate je napisati aplikaciju koja \u0107e ih uhvatiti i pohraniti negdje? \u010cini se da su oni programeri kojima se ova misao pojavila odmah sjeli napisati svoje bicikle, a dio njih je zavr\u0161io na GitHubu.<\/p>\n<p>Slijedi pregled od \u010detiri open-source projekta koja pohranjuju metrike u spremi\u0161ta iz kojih se ovi podaci lako mogu dohvatiti i vizualizirati, primjerice, uz pomo\u0107 grafana.<\/p>\n<h4><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/olegfedoseev\/pinba-server\">olegfedoseev\/pinba-server<\/a><\/noindex> (studeni 2017) <\/h4>\n<p>\nudp server na go, koji pohranjuje metrike u OpenTSDB. Ako ve\u0107 koristite OpenTSDB za svoj projekt, ovo rje\u0161enje bi vam moglo odgovarati, ina\u010de preporu\u010dujem da ga presko\u010dite.<\/p>\n<h4><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/olegfedoseev\/pinba-influxdb\">olegfedoseev\/pinba-influxdb<\/a><\/noindex> (jun 2018)<\/h4>\n<p>\nudp server na go, od istog <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/Aryoh\/\">hubruzera<\/a><\/noindex>, koji ovaj put pohranjuje metrike u InfluxDB. Na mnogim projektima za pra\u0107enje ve\u0107 se sada koristi InfluxDB, pa bi ovo rje\u0161enje moglo odli\u010dno odgovarati za njih.<\/p>\n<p>Prednosti:<\/p>\n<ul>\n<li>InfluxDB <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/olegfedoseev\/pinba-influxdb#influxdb-preparation\">omogu\u0107ava<\/a><\/noindex> agregirati primljene metrike, a izvorne brisati nakon odre\u0111enog vremena.<\/li>\n<\/ul>\n<p>\nMane:<\/p>\n<ul>\n<li>ovo rje\u0161enje ne pohranjuje informacije o tajmerima.<\/li>\n<li>InfluxDB \u0107e pohranjivati adrese stranica va\u0161eg weba kao oznake i ako imate puno jedinstvenih adresa stranica, to \u0107e dovesti do <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/449352\/#comment_20085878\">pove\u0107ane potro\u0161nje<\/a><\/noindex> \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438. \u0421 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043e\u043d &#171;<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/2v\/68\/th\/2v68thch8ajln7abt-ghsmsbxgs.png\">po\u010det \u0107e tro\u0161iti memoriju kao luda<\/a><\/noindex>&#171;. (<noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@valyala\/insert-benchmarks-with-inch-influxdb-vs-victoriametrics-e31a41ae2893\">izvor<\/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> (sije\u010danj 2019) <\/h4>\n<p>\nUDP server written in Go that saves metrics to ClickHouse. This is a solution from my friend. It was after learning about it that I decided it was time to tackle Pinba and ClickHouse.<\/p>\n<p>Prednosti:<\/p>\n<ul>\n<li>ClickHouse is ideal for such tasks; it allows for data compression to the extent that you can store all raw data even without aggregations.<\/li>\n<li>If necessary, you can easily aggregate the received metrics.<\/li>\n<li>A ready-made template for Grafana.<\/li>\n<li>Stores information by timers.<\/li>\n<\/ul>\n<p>\nMane:<\/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\">Fatal drawback.<\/a><\/noindex><\/li>\n<li>There is no configuration where you can set the database and table names, server address, and port.<\/li>\n<li>When saving raw data, a helper table-dictionary is used for storing page addresses and domains, which complicates subsequent queries.<\/li>\n<li>Other minor issues that arise from the first drawback.<\/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> (April 2019) <\/h4>\n<p>\nUDP server written in PHP that saves metrics to ClickHouse. This is my solution, resulting from my acquaintance with Pinba, ClickHouse, and Protobuf. While figuring out this whole setup, I wrote a 'proof of concept' that unexpectedly didn't consume significant resources (30 MB of RAM and less than 1% of one of the eight CPU cores), so I decided to share it with the public.<\/p>\n<p>The advantages are the same as the previous solution; I also used familiar names from the original pinba_engine. I also added a configuration that allows launching multiple instances of the Pinba server at once to store metrics in different tables, which is useful if you want to collect data not only from PHP but also from Nginx.<br \/>\nDisadvantages - 'fatal drawback' and minor issues that may not suit you personally, but my solution is 'as simple as a shoe' and consists of only about 100 lines of code, so any PHP developer can change what they dislike in a couple of minutes.<\/p>\n<p><b>Na\u010delo rada<\/b><\/p>\n<p>UDP port 30002 is being listened to. All incoming packets are decoded according to the Protobuf schema and aggregated. Once a minute, a batch is inserted into ClickHouse in the table pinba.requests. (all parameters are configured in <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/pinba-server\/pinba-server\/blob\/master\/config.json\">the configuration)<\/a><\/noindex>)<\/p>\n<p><b>A bit about ClickHouse.<\/b><\/p>\n<p>ClickHouse supports various data storage engines. The most commonly used one is MergeTree. <\/p>\n<p>Ako u nekom trenutku odlu\u010dite pohranjivati agregirane podatke za cijelo vrijeme, dok sirove podatke samo za najnovije, mo\u017eete stvoriti materialized view s grupiranjem, dok glavnu tablicu pinba.requests povremeno \u010distite, pri \u010demu \u0107e svi podaci ostati u materialized view. \u0160tovi\u0161e, prilikom stvaranja tablice pinba.requests mo\u017eete navesti \u00abengine = Null\u00bb, tada sirovi podaci ne\u0107e uop\u0107e biti pohranjeni na disk, a ipak \u0107e i dalje ulaziti u materialized view i pohranjivati se agregirani. Ovu shemu koristim za metrike nginx, jer na nginx imam 50 puta vi\u0161e zahtjeva nego na php.<\/p>\n<p>Dakle, pro\u0161li ste dug put i ne bih vas \u017eelio ostaviti na pola puta, pa \u0107e sljede\u0107e biti detaljan opis instalacije i konfiguracije mog rje\u0161enja i svega \u0161to \u0107e vam trebati, kao i zamke o koje se brodovi nisu jednom nasukali. Cijeli proces instalacije opisan je za Ubuntu 18.04 LTS i Centos 7, na drugim distribucijama i verzijama proces mo\u017ee malo varirati.<\/p>\n<h4>Instalacija<\/h4>\n<p>\nSve potrebne naredbe sam izdvojio u <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/pinba-server\/pinba-server\/tree\/master\/docker\">Dockerfile<\/a><\/noindex> za olak\u0161anje reproducibilnosti uputa. U nastavku \u0107e biti opisane samo zamke.<\/p>\n<p><b>php-pinba<\/b><\/p>\n<p>Nakon instalacije provjerite da li su u datoteci \/etc\/php\/7.2\/fpm\/conf.d\/20-pinba.ini odkomentirane sve opcije. U nekim distribucijama (na primjer, centos) mogu biti zakomentarirane.<\/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>Tijekom instalacije clickhouse \u0107e vas zamoliti da postavite lozinku za korisnika default. Prema zadanim postavkama ovaj korisnik je dostupan sa svih IP adresa, stoga, ako na serveru nemate vatrozid, obavezno mu postavite lozinku. To se tako\u0111er mo\u017ee u\u010diniti nakon instalacije u datoteci \/etc\/clickhouse-server\/users.xml.<\/p>\n<p>Tako\u0111er, treba napomenuti da clickhouse koristi nekoliko portova, uklju\u010duju\u0107i 9000. Ovaj port se tako\u0111er koristi za php-fpm u nekim distribucijama (na primjer, centos). Ako se ovaj port ve\u0107 koristi, mo\u017eete ga promijeniti na drugi u datoteci \/etc\/clickhouse-server\/config.xml.<\/p>\n<p><b>grafana s dodacima za clickhouse<\/b><\/p>\n<p>Nakon instalacije grafane upotrijebite korisni\u010dko ime admin i lozinku admin. Prilikom prvog prijavljivanja grafana \u0107e vas zamoliti da postavite novu lozinku.<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0437\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u043c\u0435\u043d\u044e &#171;+&#187; -&gt; import \u0438 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043d\u043e\u043c\u0435\u0440 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430 \u0434\u043b\u044f \u0438\u043c\u043f\u043e\u0440\u0442\u0430 <noindex><a rel=\"nofollow\" href=\"https:\/\/grafana.com\/dashboards\/10011\">10011<\/a><\/noindex>. Ova nadzorna plo\u010da je pripremljena i u\u010ditana kako vam ne bi bilo potrebno ponovno je izra\u0111ivati.<\/p>\n<p>Grafana podr\u017eava rad s ClickHouseom putem dodatka tre\u0107e strane, no upozorenja ne rade za dodatke tre\u0107e strane (zahtjev za to postoji ve\u0107 godinama).<\/p>\n<p><b>pinba-server<\/b><\/p>\n<p>Instalacija protobuf i libevent nije obavezna, ali pobolj\u0161ava performanse pinba-servera. Ako instalirate pinba-server u direktorij razli\u010dit od \/opt, tako\u0111er \u0107ete morati prilagoditi <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/pinba-server\/pinba-server\/blob\/master\/systemd\/pinba-server.service\">systemd skriptu<\/a><\/noindex> datoteke.<\/p>\n<p><b>pinba-modul za nginx<\/b><\/p>\n<p>Za kompilaciju modula potrebni su izvori iste verzije nginxa koja je ve\u0107 instalirana na va\u0161em poslu\u017eitelju, kao i iste opcije kompilacije, ina\u010de \u0107e kompilacija pro\u0107i uspje\u0161no, ali \u0107e prilikom povezivanja modula do\u0107i do gre\u0161ke da je \"modul binarno nekompatibilan\". Opcije kompilacije mo\u017eete vidjeti pomo\u0107u naredbe nginx -V.<\/p>\n<p><b>Life hacks<\/b><\/p>\n<p>Sve moje web stranice rade samo putem https. Polje shema postaje besmisleno, stoga ga koristim za razdvajanje web\/konsole.<\/p>\n<p>U skriptama dostupnim s weba koristi se:<\/p>\n<pre><code class=\"php\">if (ini_get('pinba.enabled')) {\n    pinba_schema_set('web');\n}\n<\/code><\/pre>\n<p>\nA u konzolnim (na primjer, cron skripte):<\/p>\n<pre><code class=\"php\">if (ini_get('pinba.enabled')) {\n    pinba_schema_set('console');\n}<\/code><\/pre>\n<p>\nNa mom kontrolnom panelu u Grafani postoji prekida\u010d web\/konsole za pregled statistike odvojeno.<\/p>\n<p>Tako\u0111er u Pinbi mo\u017eete prenijeti svoje oznake, na primjer:<\/p>\n<pre><code class=\"php\">pinba_tag_set('country', $countryCode);<\/code><\/pre>\n<p>\n<b>To je to. <\/b><\/p>\n<p>Temeljito vas molim da odgovorite na ankete ispod \u010dlanka.<\/p>\n<p>Tradicionalno upozoravam da ne konzultiram i ne poma\u017eem putem privatnih poruka na Habu i dru\u0161tvenim mre\u017eama.<\/p>\n<p>Otvorite zahtjev na GitHubu.<\/p>\n<p>Tako\u0111er molim da podr\u017eite lajkovima <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/449818\/\">englesku verziju<\/a><\/noindex> ovog \u010dlanka <noindex><a rel=\"nofollow\" href=\"https:\/\/www.reddit.com\/r\/PHP\/comments\/bigszu\/statistics_and_monitoring_of_php_scripts_in_real\/\">na Redditu<\/a><\/noindex>.<\/p>\n<p class=\"for_users_only_msg\">Samo registrirani korisnici mogu sudjelovati u anketi. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Prijavite se<\/a><\/noindex>, molimo.<\/p>\n<h2 class=\"default-block__polling-title\">Koji OS koristite na poslu\u017eitelju?<\/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>                    Dostupna je prva verzija skripte Archify koja omogu\u0107ava prelazak na Arch Linux s drugih distribucija, zadr\u017eavaju\u0107i korisnike, sadr\u017eaj direktorija \/home i to\u010dke montiranja.<\/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>                    drugo<\/p>\n<\/li>\n<\/ul>\n<p>    Glasalo je 114 korisnika. Suzdr\u017ealo se 11 korisnika.<\/p>\n<h2 class=\"default-block__polling-title\">Koju verziju PHP-a koristite na poslu\u017eitelju?<\/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>                    drugo<\/p>\n<\/li>\n<\/ul>\n<p>    Glasalo je 105 korisnika. Suzdr\u017ealo se 17 korisnika.<\/p>\n<h2 class=\"default-block__polling-title\">Jeste li ikada koristili Pinbu?<\/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>                    ne, ali bih volio<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    ne i ne bih volio<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    ne i nisam \u010duo za nju<\/p>\n<\/li>\n<\/ul>\n<p>    Glasalo je 100 korisnika. Suzdr\u017ealo se 14 korisnika.<\/p>\n<h2 class=\"default-block__polling-title\">Koju verziju pinba-servera biste \u017eeljeli isprobati?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    pinba_engine (mysql engine)<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    pinba2 (mysql engine)<\/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>                    napisat \u0107u svoju verziju<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    drugo<\/p>\n<\/li>\n<\/ul>\n<p>    Glasalo je 39 korisnika. Suzdr\u017ealo se 47 korisnika.<br \/>\n<br \/>Izvor: <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.4 - 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\/hr\/blog\/administrirovanie\/statistika-i-monitoring-php-skriptov-v-realnom-vremeni-clickhouse-i-grafana-idut-na-pomoshh-k-pinba\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"hr_HR\" \/>\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\/hr\/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\udd47Statistika i nadzor PHP skripti u stvarnom vremenu. ClickHouse i Grafana poma\u017eu Pinbi | ProHoster","description":"U ovom \u010dlanku \u0107u objasniti kako koristiti pinba zajedno s ClickHouse-om i Grafana-om umjesto pinba_engine-a i pinboard-a. Na PHP projektu pinba je vjerojatno jedini pouzdani na\u010din da se shvati \u0161to se doga\u0111a s.","canonical_url":"https:\/\/prohoster.info\/hr\/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":"hr_HR","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\/hr\/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\/hr\/wp-json\/wp\/v2\/posts\/32681","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/comments?post=32681"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/32681\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media\/24468"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media?parent=32681"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/categories?post=32681"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/tags?post=32681"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}