{"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\/nl\/blog\/administrirovanie\/statistika-i-monitoring-php-skriptov-v-realnom-vremeni-clickhouse-i-grafana-idut-na-pomoshh-k-pinba","title":{"rendered":"Statistieken en monitoring van PHP-scripts in realtime. ClickHouse en Grafana bieden ondersteuning aan Pinba","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>In dit artikel leg ik uit hoe je Pinba kunt gebruiken in combinatie met ClickHouse en Grafana in plaats van Pinba Engine en Pinboard.<\/p>\n<p>In een PHP-project is Pinba waarschijnlijk de enige betrouwbare manier om te begrijpen wat er met de prestaties aan de hand is. Vaak wordt Pinba pas ge\u00efmplementeerd wanneer er al problemen zijn en het niet duidelijk is 'waar te beginnen'.<\/p>\n<p>Vaak heeft niemand een idee hoeveel keer per seconde\/minuut een bepaald script wordt aangeroepen en beginnen ze met optimaliseren 'op gevoel', startend met de plekken die logischer lijken.<\/p>\n<p>Sommigen analyseren de logs van Nginx, terwijl anderen langzame aanvragen in de database bekijken.<\/p>\n<p>Natuurlijk zou Pinba geen kwaad kunnen, maar er zijn verschillende redenen waarom het niet op elk project aanwezig is.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/br\/zm\/qz\/brzmqzc8itwc2lt3gjp0q2p-kse.png\"><img decoding=\"async\" alt=\"Statistieken en monitoring van PHP-scripts in realtime. ClickHouse en Grafana bieden ondersteuning aan 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 \/>\nDe eerste reden is de installatie.<\/p>\n<p>Om enigszins een 'resultaat' te behalen van de implementatie van Pinba, is het zeer wenselijk om niet alleen de statistieken van de laatste minuten te zien, maar ook over langere tijdsperiodes (van dagen tot maanden).<\/p>\n<p>Hiervoor moet je:<\/p>\n<ul>\n<li>de extensie voor PHP installeren (en mogelijk wil je ook de module voor Nginx),<\/li>\n<li>de extensie voor MySQL compileren,<\/li>\n<li>Pinboard installeren en cron instellen.<\/li>\n<\/ul>\n<p>\nVanwege de beperkte informatie over Pinba hebben velen de indruk gekregen dat het alleen op PHP5 werkte en inmiddels achterhaald is, maar zoals we later zullen zien, is dit niet het geval.<\/p>\n<p>De eerste stap is de eenvoudigste, je hoeft alleen maar het commando uit te voeren:<\/p>\n<pre><code class=\"bash\">apt install php-pinba<\/code><\/pre>\n<p>\nIn de repositories is deze extensie beschikbaar tot en met PHP 7.3 en hoef je niets te compileren.<\/p>\n<p>Na het uitvoeren van het installatiecommando hebben we al een werkende extensie die de metrics van elk script verzamelt en verzendt (looptijd, geheugen, enz.) in het formaat <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Protocol_Buffers\">protobuf<\/a><\/noindex> via UDP op 127.0.0.1:30002.<\/p>\n<p>Deze UDP-pakketten worden momenteel nog niet opgevangen en verwerkt, maar dit heeft op geen enkele manier een negatieve invloed op de snelheid of stabiliteit van je PHP-scripts.<\/p>\n<p>Tot voor kort was de enige applicatie die deze UDP-pakketten kon opvangen en verwerken <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/tony2001\/pinba_engine\">Pinba Engine<\/a><\/noindex>. Beschrijving &#171;<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/tony2001\/pinba_engine\/wiki\/Installation\">eenvoudige en beknopte<\/a><\/noindex>&#187; installatie wekt de wens op om het nooit meer te lezen of te begrijpen. In kilometerslange lijsten met afhankelijkheden staan zowel de namen van pakketten als de namen van programma's en links naar afzonderlijke pagina's met hun installatie, en die hebben op hun beurt weer links naar andere afhankelijkheden. Niemand heeft de tijd of de zin om zich met deze rommel bezig te houden.<\/p>\n<p>De installatieprocedure <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/badoo\/pinba2\">Pinba2<\/a><\/noindex> is niet moeilijk geworden. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/badoo\/pinba2\/blob\/master\/docs\/index.md#installation\">bijzonder gemakkelijker<\/a><\/noindex>.<\/p>\n<p>Misschien kan pinba10 op een dag met \u00e9\u00e9n of twee commando's worden ge\u00efnstalleerd zonder een berg materiaal te moeten doornemen om te begrijpen hoe je dit moet doen, maar voorlopig is dit nog niet het geval.<\/p>\n<p>Als je pinba_engine toch hebt ge\u00efnstalleerd, is dat slechts de helft van het werk. Want zonder <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/intaro\/pinboard\">pinboard<\/a><\/noindex> ben je beperkt tot gegevens van de afgelopen paar minuten of moet je zelf de gegevens aggregeren, opslaan en visualiseren. Gelukkig is pinboard vrij eenvoudig in <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/intaro\/pinboard\/wiki\/Installation\">installatie<\/a><\/noindex>.<\/p>\n<p>Het lijkt misschien een grote opgave, want alle statistieken van php gaan al naar de udp-poort in protobuf-formaat en wat je eigenlijk nodig hebt, is een applicatie te schrijven die ze opvangt en in een opslagplaats plaatst. Blijkbaar zaten die ontwikkelaars die deze gedachte in hun hoofd hadden, meteen aan het schrijven van hun eigen oplossingen, waarvan een deel op GitHub terecht is gekomen.<\/p>\n<p>Hier volgt een overzicht van vier open-source projecten die statistieken in opslagplaatsen opslaan, waarvan deze gegevens eenvoudig toegankelijk en te visualiseren zijn, bijvoorbeeld met behulp van grafana.<\/p>\n<h4><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/olegfedoseev\/pinba-server\">olegfedoseev\/pinba-server<\/a><\/noindex> (november 2017) <\/h4>\n<p>\nudp-server geschreven in Go, die statistieken opslaat in OpenTSDB. Als je OpenTSDB al gebruikt in je project, is deze oplossing wellicht geschikt, anders raad ik aan om er voorbij te lopen.<\/p>\n<h4><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/olegfedoseev\/pinba-influxdb\">olegfedoseev\/pinba-influxdb<\/a><\/noindex> (juni 2018)<\/h4>\n<p>\nudp-server in Go, van dezelfde <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/Aryoh\/\">habrayuser<\/a><\/noindex>, die deze keer statistieken opslaat in InfluxDB. Veel projecten gebruiken al InfluxDB voor monitoring, dus deze oplossing kan perfect voor hen zijn.<\/p>\n<p>Voordelen:<\/p>\n<ul>\n<li>InfluxDB <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/olegfedoseev\/pinba-influxdb#influxdb-preparation\">toe<\/a><\/noindex> om de ontvangen metrics te aggregeren en de originele gegevens na een bepaalde tijd te verwijderen.<\/li>\n<\/ul>\n<p>\nNadelen:<\/p>\n<ul>\n<li>deze oplossing slaat geen informatie op basis van timers op.<\/li>\n<li>InfluxDB zal de URL's van de pagina's als tags opslaan en als je veel unieke pagina-URL's hebt, leidt dit tot <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/449352\/#comment_20085878\">een verhoogd verbruik<\/a><\/noindex> geheugen. Op een gegeven moment &#171;<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/2v\/68\/th\/2v68thch8ajln7abt-ghsmsbxgs.png\">zina_de_geheugen_van_uit<\/a><\/noindex>&#171;. (<noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@valyala\/insert-benchmarks-with-inch-influxdb-vs-victoriametrics-e31a41ae2893\">bron<\/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> (januari 2019) <\/h4>\n<p>\nudp-server in Go, dat statistieken opslaat in ClickHouse. Dit is een oplossing van mijn vriend. Na het kennismaken hiermee besloot ik dat het tijd was om pinba en ClickHouse aan te pakken.<\/p>\n<p>Voordelen:<\/p>\n<ul>\n<li>ClickHouse is perfect voor dergelijke taken, het stelt je in staat om gegevens zo te comprimeren dat je zelfs zonder aggregaties alle ruwe gegevens kunt opslaan<\/li>\n<li>als dat nodig is, kun je de ontvangen metrics gemakkelijk aggregeren<\/li>\n<li>kant-en-klare sjabloon voor grafana<\/li>\n<li>slaat informatie op basis van timers op<\/li>\n<\/ul>\n<p>\nNadelen:<\/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\">fatale tekortkoming<\/a><\/noindex><\/li>\n<li>Er is geen configuratie waarmee je de naam van de database en tabellen, het adres en de poort van de server kunt instellen.<\/li>\n<li>Bij het opslaan van ruwe gegevens wordt een hulptable-woordenboek gebruikt om de adressen van pagina's en domeinen op te slaan, wat het later moeilijker maakt om aanvragen te doen.<\/li>\n<li>Andere kleinigheden die voortkomen uit het eerste nadeel.<\/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 in PHP die statistieken opslaat in ClickHouse. Dit is mijn oplossing, het resultaat van mijn kennismaking met pinba, ClickHouse en protobuf. Terwijl ik deze combinatie doorgronde, heb ik een 'proof of concept' geschreven, die voor mij onverwachts geen significante middelen vereiste (30 MB RAM en minder dan 1% van een van de acht processorkernen), daarom besloot ik het met het publiek te delen.<\/p>\n<p>Voordelen - hetzelfde als de vorige oplossing, bovendien heb ik gebruik gemaakt van vertrouwde benamingen uit de originele pinba_engine. Ook heb ik een configuratie toegevoegd waarmee je meerdere instanties van de pinba-server kunt starten om statistieken in verschillende tabellen op te slaan - dit is nuttig als je gegevens wilt verzamelen, niet alleen uit PHP, maar ook uit Nginx.<br \/>\nNadelen - 'fatale tekortkoming' en de kleinigheden die jou persoonlijk niet zullen bevallen, maar mijn oplossing is 'simpel als een tap' en bestaat uit ongeveer 100 regels code, zodat elke PHP-developer in een paar minuten kan aanpassen wat hij of zij niet leuk vindt.<\/p>\n<p><b>Werking principe<\/b><\/p>\n<p>De UDP-poort 30002 wordt beluisterd. Alle binnenkomende pakketten worden gedecodeerd volgens het protobuf-schema en geaggregeerd. Een keer per minuut wordt een batch ingevoegd in ClickHouse in de tabel pinba.requests. (alle parameters zijn instelbaar in <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/pinba-server\/pinba-server\/blob\/master\/config.json\">de configuratie<\/a><\/noindex>)<\/p>\n<p><b>Wat meer over ClickHouse<\/b><\/p>\n<p>ClickHouse ondersteunt verschillende opslagmotoren. De meest gebruikte is MergeTree. <\/p>\n<p>Als je op een gegeven moment besluit om geaggregeerde gegevens voor de hele tijd op te slaan, en ruwe gegevens alleen voor de laatste periode, kun je een materialized view met groepering aanmaken, terwijl je de hoofdtafel pinba.requests periodiek opschoont. Alle gegevens blijven in de materialized view. Bovendien kun je bij het aanmaken van de tabel pinba.requests 'engine = Null' opgeven, zodat ruwe gegevens helemaal niet op de schijf worden opgeslagen, maar ze worden nog steeds in de materialized view opgenomen en geaggregeerd opgeslagen. Deze opzet gebruik ik voor Nginx-statistieken, omdat ik op Nginx 50 keer meer aanvragen heb dan op PHP.<\/p>\n<p>U heeft een lange weg afgelegd en ik wil u niet halverwege laten staan, dus hier is een gedetailleerde uitleg over de installatie en configuratie van mijn oplossing en alles wat u nodig heeft, evenals de valkuilen waar al meer dan \u00e9\u00e9n schip op is gestrand. Het hele installatieproces is beschreven voor Ubuntu 18.04 LTS en CentOS 7; op andere distributies en versies kan het proces iets afwijken.<\/p>\n<h4>Installatie<\/h4>\n<p>\nAlle benodigde opdrachten heb ik in <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/pinba-server\/pinba-server\/tree\/master\/docker\">Dockerfile<\/a><\/noindex> samengebracht om de reproduceerbaarheid van de instructies te vergemakkelijken. Hieronder worden alleen de valkuilen beschreven.<\/p>\n<p><b>php-pinba<\/b><\/p>\n<p>Zorg na de installatie ervoor dat in het bestand \/etc\/php\/7.2\/fpm\/conf.d\/20-pinba.ini alle opties zijn gedecommenteerd. In sommige distributies (bijvoorbeeld CentOS) kunnen ze zijn gecommentarieerd.<\/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>Tijdens de installatie vraagt ClickHouse u om een wachtwoord voor de gebruiker default in te voeren. Standaard is deze gebruiker toegankelijk vanuit alle ip-adressen, dus als u geen firewall op de server heeft, zorg er dan voor dat u een wachtwoord instelt. Dit kan ook worden gedaan na de installatie in het bestand \/etc\/clickhouse-server\/users.xml.<\/p>\n<p>Let ook op dat ClickHouse meerdere poorten gebruikt, waaronder 9000. Deze poort wordt ook gebruikt voor php-fpm in sommige distributies (bijvoorbeeld CentOS). Als deze poort al in gebruik is, kunt u deze wijzigen naar een andere in het bestand \/etc\/clickhouse-server\/config.xml.<\/p>\n<p><b>Grafana met de plugin voor ClickHouse<\/b><\/p>\n<p>Na het installeren van Grafana gebruikt u inlognaam admin en wachtwoord admin. Bij de eerste inlog vraagt Grafana u om een nieuw wachtwoord in te stellen.<\/p>\n<p>Daarna gaan we naar het menu &#171;+&#187; -&gt; import en geven we het nummer van het dashboard voor import op <noindex><a rel=\"nofollow\" href=\"https:\/\/grafana.com\/dashboards\/10011\">10011<\/a><\/noindex>. Dit dashboard heb ik voorbereid en ge\u00fcpload, zodat u het niet zelf nog eens hoeft te maken.<\/p>\n<p>Grafana ondersteunt de werking met ClickHouse via een externe plugin, maar voor externe plugins werkt de waarschuwing niet (de ticket hiervoor bestaat al enkele jaren).<\/p>\n<p><b>pinba-server<\/b><\/p>\n<p>De installatie van protobuf en libevent is niet verplicht, maar verbetert de prestaties van pinba-server. Als u pinba-server in een andere map dan \/opt installeert, moet u ook het <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/pinba-server\/pinba-server\/blob\/master\/systemd\/pinba-server.service\">systemd-script<\/a><\/noindex> bestand aanpassen.<\/p>\n<p><b>pinba-module voor nginx<\/b><\/p>\n<p>Voor het compileren van de module zijn de bronnen nodig van dezelfde versie van nginx die al op uw server is ge\u00efnstalleerd, evenals dezelfde compilatie-opties, anders zal de compilatie succesvol zijn, maar bij het inschakelen van de module verschijnt er een foutmelding dat 'de module binair incompatibel is'. Compilatie-opties kunnen worden bekeken met het commando nginx -V<\/p>\n<p><b>Lifehacks<\/b><\/p>\n<p>Al mijn websites werken alleen via https. Het veld schema wordt daardoor zinloos, dus gebruik ik het om web\/console te scheiden.<\/p>\n<p>In de scripts die beschikbaar zijn via het web gebruik ik:<\/p>\n<pre><code class=\"php\">if (ini_get('pinba.enabled')) {\n    pinba_schema_set('web');\n}\n<\/code><\/pre>\n<p>\nEn in console-scripts (bijvoorbeeld cron-scripts):<\/p>\n<pre><code class=\"php\">if (ini_get('pinba.enabled')) {\n    pinba_schema_set('console');\n}<\/code><\/pre>\n<p>\nIn mijn dashboard in Grafana is er een schakelaar web\/console voor het afzonderlijk bekijken van statistieken.<\/p>\n<p>Ook kunnen eigen tags aan Pinba worden doorgegeven, bijvoorbeeld:<\/p>\n<pre><code class=\"php\">pinba_tag_set('country', $countryCode);<\/code><\/pre>\n<p>\n<b>gebruik maken van het transportprotocol niet in de weg staat. <\/b><\/p>\n<p>Ik verzoek u vriendelijk om de enqu\u00eates onder het artikel te beantwoorden.<\/p>\n<p>Traditioneel waarschuw ik dat ik niet adviseer en niet help via persoonlijke berichten op Habr en sociale netwerken.<\/p>\n<p>Maak een ticket aan op GitHub.<\/p>\n<p>Ik verzoek ook om ondersteuning met likes <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/449818\/\">de Engelse versie<\/a><\/noindex> dit artikel <noindex><a rel=\"nofollow\" href=\"https:\/\/www.reddit.com\/r\/PHP\/comments\/bigszu\/statistics_and_monitoring_of_php_scripts_in_real\/\">op Reddit<\/a><\/noindex>.<\/p>\n<p class=\"for_users_only_msg\">Alleen geregistreerde gebruikers kunnen deelnemen aan de enqu\u00eate. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Log in<\/a><\/noindex>, alstublieft.<\/p>\n<h2 class=\"default-block__polling-title\">Welke OS gebruikt u op de 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>                    andere<\/p>\n<\/li>\n<\/ul>\n<p>    Er hebben 114 gebruikers gestemd. 11 gebruikers hebben zich onthouden.<\/p>\n<h2 class=\"default-block__polling-title\">Welke versie van PHP gebruikt u op de 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>                    andere<\/p>\n<\/li>\n<\/ul>\n<p>    Er hebben 105 gebruikers gestemd. 17 gebruikers hebben zich onthouden.<\/p>\n<h2 class=\"default-block__polling-title\">Heeft u ooit Pinba gebruikt?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    ja<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    nee, maar ik zou dat graag willen<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    nee en ik zou dat niet willen<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    nee en ik heb er nog niet van gehoord<\/p>\n<\/li>\n<\/ul>\n<p>    Er hebben 100 gebruikers gestemd. 14 gebruikers hebben zich onthouden.<\/p>\n<h2 class=\"default-block__polling-title\">Welke versie van Pinba-server zou u willen proberen?<\/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>                    ik schrijf mijn eigen<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    andere<\/p>\n<\/li>\n<\/ul>\n<p>    Er hebben 39 gebruikers gestemd. 47 gebruikers hebben zich onthouden.<br \/>\n<br \/>Bron: <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.3 - 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\/nl\/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.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"nl_NL\" \/>\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\/nl\/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\udd47Statistieken en monitoring van PHP-scripts in realtime. ClickHouse en Grafana bieden ondersteuning aan Pinba | ProHoster","description":"In dit artikel zal ik uitleggen hoe Pinba kan worden gebruikt in combinatie met ClickHouse en Grafana in plaats van pinba_engine en pinboard. In een PHP-project is Pinba de enige betrouwbare manier om te begrijpen wat er aan de hand is.","canonical_url":"https:\/\/prohoster.info\/nl\/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":"nl_NL","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\/nl\/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\/nl\/wp-json\/wp\/v2\/posts\/32681","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=32681"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/32681\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media\/24468"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=32681"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=32681"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=32681"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}