{"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\/it\/blog\/administrirovanie\/statistika-i-monitoring-php-skriptov-v-realnom-vremeni-clickhouse-i-grafana-idut-na-pomoshh-k-pinba","title":{"rendered":"Statistiche e monitoraggio degli script PHP in tempo reale. ClickHouse e Grafana vengono in aiuto a Pinba","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>In questo articolo parler\u00f2 di come utilizzare pinba insieme a clickhouse e grafana invece di pinba_engine e pinboard.<\/p>\n<p>Nel progetto php, pinba \u00e8 senza dubbio l'unico modo affidabile per capire cosa sta succedendo con le prestazioni. Tuttavia, di solito pinba viene implementato solo quando si osservano gi\u00e0 problemi e non \u00e8 chiaro \"dove scavare\".<\/p>\n<p>Spesso nessuno ha idea di quante volte al secondo\/minuto venga chiamato uno script e iniziano ad ottimizzare \"a tentoni\", partendo dai posti che sembrano pi\u00f9 logici.<\/p>\n<p>Qualcuno analizza i log di nginx, mentre qualcun altro si concentra sulle query lente nel database.<\/p>\n<p>Certo, pinba non sarebbe superflua, ma ci sono diverse ragioni per cui non \u00e8 presente in ogni progetto.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/br\/zm\/qz\/brzmqzc8itwc2lt3gjp0q2p-kse.png\"><img decoding=\"async\" alt=\"Statistiche e monitoraggio degli script PHP in tempo reale. ClickHouse e Grafana vengono in aiuto a 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 \/>\nLa prima ragione \u00e8 l'installazione.<\/p>\n<p>Per ottenere un qualche \"risultato\" dall'implementazione di pinba, \u00e8 molto desiderabile vedere le metriche non solo negli ultimi minuti, ma anche su un lungo intervallo di tempo (da giorni a mesi).<\/p>\n<p>Per questo \u00e8 necessario:<\/p>\n<ul>\n<li>installare l'estensione per php (e forse vorrete un modulo per nginx)<\/li>\n<li>compilare l'estensione per mysql<\/li>\n<li>installare pinboard e configurare cron<\/li>\n<\/ul>\n<p>\nA causa della scarsa informazione su pinba, molti sono rimasti con l'impressione che funzionasse solo su php5 e che fosse rimasta nel passato, ma come vedremo pi\u00f9 avanti, non \u00e8 cos\u00ec.<\/p>\n<p>Il primo passo \u00e8 il pi\u00f9 semplice, \u00e8 sufficiente eseguire il comando:<\/p>\n<pre><code class=\"bash\">apt install php-pinba<\/code><\/pre>\n<p>\nNei repository, questa estensione \u00e8 disponibile fino a php 7.3 incluso e non \u00e8 necessario compilare nulla.<\/p>\n<p>Dopo l'esecuzione del comando di installazione, otteniamo immediatamente un'estensione funzionante che raccoglie e invia le metriche di ogni script (durata, memoria, ecc.) nel formato <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Protocol_Buffers\">, generando attraverso file proto \u00e8 molto pi\u00f9 difficile commettere errori.<\/a><\/noindex> via udp a 127.0.0.1:30002.<\/p>\n<p>Questi pacchetti udp al momento non vengono ancora catturati n\u00e9 elaborati, ma questo non influisce negativamente sulla velocit\u00e0 o stabilit\u00e0 delle vostre script php.<\/p>\n<p>Fino a poco tempo fa, come applicazione in grado di catturare ed elaborare questi pacchetti udp c'era solo <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/tony2001\/pinba_engine\">pinba_engine<\/a><\/noindex>. Descrizione &#171;<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/tony2001\/pinba_engine\/wiki\/Installation\">semplice e concisa<\/a><\/noindex>&#187; l'installazione distrae dall'intenzione di leggerlo e approfondirlo nuovamente. Nei lunghi elenchi delle dipendenze ci sono sia i nomi dei pacchetti che i nomi dei programmi e link a pagine separate con le loro installazioni, e questi hanno i propri link ad altre dipendenze. Nessuno ha n\u00e9 tempo n\u00e9 voglia di affrontare questa confusione.<\/p>\n<p>Il processo di installazione <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/badoo\/pinba2\">pinba2<\/a><\/noindex> non \u00e8 diventato <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/badoo\/pinba2\/blob\/master\/docs\/index.md#installation\">particolarmente pi\u00f9 semplice<\/a><\/noindex>.<\/p>\n<p>Forse un giorno sar\u00e0 possibile installare pinba10 con una o due comandi e senza dover leggere un sacco di materiale per capire come farlo, ma per ora non \u00e8 cos\u00ec.<\/p>\n<p>Se hai comunque installato pinba_engine, questo \u00e8 solo met\u00e0 del lavoro. Perch\u00e9 senza <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/intaro\/pinboard\">pinboard<\/a><\/noindex> sarai costretto a limitarti ai dati solo degli ultimi minuti o a raccogliere, salvare e visualizzare i dati manualmente. \u00c8 un bene che pinboard sia abbastanza semplice da <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/intaro\/pinboard\/wiki\/Installation\">installare<\/a><\/noindex>.<\/p>\n<p>Sembra strano perch\u00e9 subire tali sofferenze, se tutte le metriche da php gi\u00e0 passano su una porta udp in formato protobuf e tutto ci\u00f2 che serve \u00e8 scrivere un'applicazione che le catturi e le memorizzi in qualche archiviazione? A quanto pare, gli sviluppatori a cui era venuta in mente questa idea si sono subito messi a scrivere le proprie soluzioni, alcune delle quali sono finite su GitHub.<\/p>\n<p>Di seguito trovi una panoramica di quattro progetti open source che memorizzano metriche in archiviazioni, da cui \u00e8 facile estrarre e visualizzare questi dati, ad esempio, con grafana.<\/p>\n<h4><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/olegfedoseev\/pinba-server\">olegfedoseev\/pinba-server<\/a><\/noindex> (novembre 2017) <\/h4>\n<p>\nserver udp in go, che memorizza le metriche in OpenTSDB. Se OpenTSDB \u00e8 gi\u00e0 in uso nel tuo progetto, questa soluzione potrebbe adattarsi, altrimenti ti consiglio di evitarla.<\/p>\n<h4><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/olegfedoseev\/pinba-influxdb\">olegfedoseev\/pinba-influxdb<\/a><\/noindex> (giugno 2018)<\/h4>\n<p>\nserver udp in go, dallo stesso <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/Aryoh\/\">hubrauser<\/a><\/noindex>, che questa volta memorizza metriche in InfluxDB. Molti progetti gi\u00e0 utilizzano InfluxDB per il monitoraggio, quindi per loro questa soluzione potrebbe adattarsi perfettamente.<\/p>\n<p>Pro:<\/p>\n<ul>\n<li>InfluxDB <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/olegfedoseev\/pinba-influxdb#influxdb-preparation\">consente<\/a><\/noindex> aggregare le metriche ricevute e cancellare l'originale dopo un certo periodo.<\/li>\n<\/ul>\n<p>\nContro:<\/p>\n<ul>\n<li>questa soluzione non memorizza informazioni sui timer.<\/li>\n<li>InfluxDB memorizzer\u00e0 gli indirizzi delle pagine del sito come tag e se hai molti indirizzi unici, ci\u00f2 porter\u00e0 a un <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/449352\/#comment_20085878\">aumento del consumo<\/a><\/noindex> di memoria operativa. A un certo punto ha &#171;<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/2v\/68\/th\/2v68thch8ajln7abt-ghsmsbxgs.png\">consumare la memoria come se non ci fosse un domani<\/a><\/noindex>&#171;. (<noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@valyala\/insert-benchmarks-with-inch-influxdb-vs-victoriametrics-e31a41ae2893\">fonte<\/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> (gennaio 2019) <\/h4>\n<p>\nserver udp in go, che memorizza le metriche in ClickHouse. Questa \u00e8 una soluzione di un mio amico. \u00c8 stato dopo averne preso visione che ho deciso che era tempo di affrontare pinba e ClickHouse.<\/p>\n<p>Pro:<\/p>\n<ul>\n<li>ClickHouse \u00e8 perfetto per tali compiti, consente di comprimere i dati a tal punto che puoi memorizzare tutti i dati grezzi anche senza aggregazioni<\/li>\n<li>se necessario, puoi facilmente aggregare le metriche ricevute<\/li>\n<li>un modello pronto per grafana<\/li>\n<li>memorizza informazioni sui timer<\/li>\n<\/ul>\n<p>\nContro:<\/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\">un grave difetto<\/a><\/noindex><\/li>\n<li>non c'\u00e8 una configurazione in cui sia possibile impostare il nome del db e delle tabelle, l'indirizzo e la porta del server.<\/li>\n<li>durante il salvataggio dei dati grezzi si utilizza una tabella di supporto per memorizzare gli indirizzi delle pagine e dei domini, il che complica successivamente le query.<\/li>\n<li>altri piccoli dettagli che derivano dal primo svantaggio.<\/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> (aprile 2019) <\/h4>\n<p>\nun server UDP in PHP, che memorizza le metriche in ClickHouse. Questa \u00e8 la mia soluzione, frutto della mia esperienza con pinba, ClickHouse e protobuf. Mentre esploravo questa combinazione, ho scritto un \u00abproof of concept\u00bb, che sorprendentemente non consumava risorse significative (30 MB di RAM e meno dell'1% di uno degli otto core del processore), quindi ho deciso di condividerlo con il pubblico.<\/p>\n<p>Pro: gli stessi vantaggi della soluzione precedente, ho anche utilizzato nomi familiari dall'originale pinba_engine. Inoltre, ho aggiunto una configurazione che consente di avviare pi\u00f9 istanze del pinba-server per memorizzare le metriche in diverse tabelle - utile se desideri raccogliere dati non solo da PHP, ma anche da Nginx.<br \/>\nContro: \u00abdifetto fatale\u00bb e dettagli che potrebbero non soddisfarti, ma la mia soluzione \u00e8 \u00absemplice come una ciabatta\u00bb e consiste di circa 100 righe di codice, quindi qualsiasi sviluppatore PHP pu\u00f2 cambiare ci\u00f2 che non gli piace in pochi minuti.<\/p>\n<p><b>Il principio di funzionamento<\/b><\/p>\n<p>Viene ascoltata la porta UDP 30002. Tutti i pacchetti in ingresso vengono decodificati secondo lo schema protobuf e aggregati. Ogni minuto viene effettuata un'inserzione batch in ClickHouse nella tabella pinba.requests. (tutti i parametri possono essere configurati in <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/pinba-server\/pinba-server\/blob\/master\/config.json\">configurazione<\/a><\/noindex>)<\/p>\n<p><b>Un po' su ClickHouse<\/b><\/p>\n<p>ClickHouse supporta vari motori di archiviazione. Il pi\u00f9 comunemente usato \u00e8 il MergeTree. <\/p>\n<p>Se in un certo momento decidi di memorizzare i dati aggregati per tutto il tempo, e i grezzi solo per l'ultimo periodo, puoi creare una materialized view con raggruppamento, mentre la tabella principale pinba.requests pu\u00f2 essere pulita periodicamente, mantenendo tutti i dati nella materialized view. Inoltre, quando crei la tabella pinba.requests puoi specificare \u00abengine = Null\u00bb, in questo modo i dati grezzi non verranno salvati su disco e continueranno a finire nella materialized view, aggregati. Utilizzo questo schema per le metriche Nginx, perch\u00e9 su Nginx ho circa 50 volte pi\u00f9 richieste rispetto a PHP.<\/p>\n<p>Quindi, hai fatto un lungo percorso e non vorrei lasciarti a met\u00e0 strada, quindi di seguito troverai una descrizione dettagliata dell'installazione e configurazione della mia soluzione e di tutto ci\u00f2 di cui avrai bisogno, oltre a insidie in cui molte navi si sono schiantate. L'intero processo di installazione \u00e8 descritto per Ubuntu 18.04 LTS e Centos 7, su altre distribuzioni e versioni il processo potrebbe differire leggermente.<\/p>\n<h4>Installazione<\/h4>\n<p>\nTutti i comandi necessari li ho estratti in <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/pinba-server\/pinba-server\/tree\/master\/docker\">Dockerfile<\/a><\/noindex> per facilitare la riproduzione delle istruzioni. Di seguito saranno descritte solo le insidie.<\/p>\n<p><b>php-pinba<\/b><\/p>\n<p>Dopo l'installazione assicurati che nel file \/etc\/php\/7.2\/fpm\/conf.d\/20-pinba.ini tutte le opzioni siano decommentate. In alcune distribuzioni (ad esempio, centos) potrebbero essere commentate.<\/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>Durante l'installazione, clickhouse ti chieder\u00e0 di impostare una password per l'utente default. Per impostazione predefinita, questo utente \u00e8 accessibile da tutti gli ip, quindi se non hai un firewall sul server, ti consiglio di impostargli una password. Questo pu\u00f2 essere fatto anche dopo l'installazione nel file \/etc\/clickhouse-server\/users.xml.<\/p>\n<p>Vale la pena notare che clickhouse utilizza diverse porte, tra cui 9000. Questa porta \u00e8 utilizzata anche per php-fpm in alcune distribuzioni (ad esempio, centos). Se hai gi\u00e0 in uso questa porta, puoi cambiarla in un'altra nel file \/etc\/clickhouse-server\/config.xml.<\/p>\n<p><b>grafana con plugin per clickhouse<\/b><\/p>\n<p>Dopo aver installato grafana, utilizza il login admin e la password admin. Al primo accesso, grafana ti chieder\u00e0 di impostare una nuova password.<\/p>\n<p>Successivamente, accediamo al menu &#171;+&#187; -&gt; import e indichiamo il numero del dashboard da importare. <noindex><a rel=\"nofollow\" href=\"https:\/\/grafana.com\/dashboards\/10011\">10011<\/a><\/noindex>. Questo dashboard l'ho preparato e caricato, cos\u00ec non dovrai farlo di nuovo da solo.<\/p>\n<p>Grafana supporta l'uso di clickhouse tramite un plugin di terze parti, ma per i plugin di terze parti non funzionano gli avvisi (\u00e8 un ticket aperto da anni).<\/p>\n<p><b>pinba-server<\/b><\/p>\n<p>L'installazione di protobuf e libevent non \u00e8 obbligatoria, ma migliora le prestazioni di pinba-server. Se installi pinba-server in una cartella diversa da \/opt, dovrai anche modificare <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/pinba-server\/pinba-server\/blob\/master\/systemd\/pinba-server.service\">lo script systemd<\/a><\/noindex> il file.<\/p>\n<p><b>modulo pinba per nginx<\/b><\/p>\n<p>Per la compilazione del modulo sono necessari i sorgenti della stessa versione di nginx gi\u00e0 installata sul server, nonch\u00e9 le stesse opzioni di compilazione, altrimenti la compilazione avr\u00e0 successo, ma sar\u00e0 restituito un errore al momento della connessione del modulo che indica \"il modulo non \u00e8 compatibile a livello binario\". Le opzioni di compilazione possono essere visualizzate con il comando nginx -V<\/p>\n<p><b>Lifehacks<\/b><\/p>\n<p>Tutti i miei siti funzionano solo con https. Il campo schema diventa quindi irrilevante, quindi lo utilizzo per distinguere tra web\/console.<\/p>\n<p>Negli script accessibili dal web utilizzo:<\/p>\n<pre><code class=\"php\">if (ini_get('pinba.enabled')) {\n    pinba_schema_set('web');\n}\n<\/code><\/pre>\n<p>\nE negli script da console (ad esempio, script cron):<\/p>\n<pre><code class=\"php\">if (ini_get('pinba.enabled')) {\n    pinba_schema_set('console');\n}<\/code><\/pre>\n<p>\nNel mio dashboard di Grafana c'\u00e8 un interruttore web\/console per visualizzare le statistiche separatamente.<\/p>\n<p>In Pinba \u00e8 inoltre possibile passare i propri tag, ad esempio:<\/p>\n<pre><code class=\"php\">pinba_tag_set('country', $countryCode);<\/code><\/pre>\n<p>\n<b>Questo \u00e8 tutto. <\/b><\/p>\n<p>Ti prego di rispondere ai sondaggi sotto l'articolo.<\/p>\n<p>Avviso tradizionalmente che non fornisco consulenze n\u00e9 aiuto tramite messaggi privati su Habr e social media.<\/p>\n<p>Apri un ticket su GitHub.<\/p>\n<p>Inoltre, ti prego di sostenere con dei like <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/449818\/\">la versione inglese<\/a><\/noindex> di questo articolo, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.reddit.com\/r\/PHP\/comments\/bigszu\/statistics_and_monitoring_of_php_scripts_in_real\/\">su Reddit<\/a><\/noindex>.<\/p>\n<p class=\"for_users_only_msg\">Solo gli utenti registrati possono partecipare al sondaggio. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Accedi<\/a><\/noindex>, per favore.<\/p>\n<h2 class=\"default-block__polling-title\">Quale OS utilizzi sul 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>                    altro<\/p>\n<\/li>\n<\/ul>\n<p>    Hanno votato 114 utenti. Si sono astenuti 11 utenti.<\/p>\n<h2 class=\"default-block__polling-title\">Quale versione di PHP utilizzi sul 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>                    altro<\/p>\n<\/li>\n<\/ul>\n<p>    Hanno votato 105 utenti. Si sono astenuti 17 utenti.<\/p>\n<h2 class=\"default-block__polling-title\">Hai mai utilizzato Pinba?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    s\u00ec<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    no, ma mi piacerebbe<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    no e non lo vorrei<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    no e non ne ho mai sentito parlare<\/p>\n<\/li>\n<\/ul>\n<p>    Hanno votato 100 utenti. Si sono astenuti 14 utenti.<\/p>\n<h2 class=\"default-block__polling-title\">Quale versione del server Pinba vorresti provare?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    pinba_engine (motore mysql)<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    pinba2 (motore 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>                    scriver\u00f2 la mia personalmente<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    altro<\/p>\n<\/li>\n<\/ul>\n<p>    Hanno votato 39 utenti. Si sono astenuti 47 utenti.<br \/>\n<br \/>Fonte: <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.1.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\/it\/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.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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\/it\/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\udd47Statistiche e monitoraggio di script PHP in tempo reale. ClickHouse e Grafana vengono in aiuto a Pinba | ProHoster","description":"In questo articolo spiegher\u00f2 come utilizzare Pinba insieme a ClickHouse e Grafana invece di pinba_engine e pinboard. Su un progetto PHP, Pinba \u00e8 probabilmente l'unico modo affidabile per comprendere cosa stia accadendo.","canonical_url":"https:\/\/prohoster.info\/it\/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":"it_IT","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\/it\/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\/it\/wp-json\/wp\/v2\/posts\/32681","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=32681"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/32681\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/24468"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=32681"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=32681"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=32681"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}