{"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\/de\/blog\/administrirovanie\/statistika-i-monitoring-php-skriptov-v-realnom-vremeni-clickhouse-i-grafana-idut-na-pomoshh-k-pinba","title":{"rendered":"Statistik und Monitoring von PHP-Skripten in Echtzeit. ClickHouse und Grafana helfen Pinba.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>In diesem Artikel erkl\u00e4re ich, wie man Pinba zusammen mit ClickHouse und Grafana anstelle von pinba_engine und Pinboard verwenden kann.<\/p>\n<p>Auf dem PHP-Projekt ist Pinba wohl der einzige zuverl\u00e4ssige Weg, um zu verstehen, was mit der Leistung passiert. Pinba wird normalerweise erst dann implementiert, wenn bereits Probleme beobachtet werden und es unklar ist, \"wo man ansetzen soll\".<\/p>\n<p>Oft hat niemand eine Ahnung, wie oft pro Sekunde\/Minute ein bestimmtes Skript aufgerufen wird und man beginnt, \"blind\" zu optimieren, angefangen bei den Stellen, die logischer erscheinen.<\/p>\n<p>Manche analysieren die Nginx-Logs, w\u00e4hrend andere langsame Datenbankabfragen betrachten.<\/p>\n<p>Nat\u00fcrlich w\u00e4re Pinba nicht \u00fcberfl\u00fcssig, aber es gibt mehrere Gr\u00fcnde, warum es l\u00e4ngst nicht in jedem Projekt vorhanden ist.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/br\/zm\/qz\/brzmqzc8itwc2lt3gjp0q2p-kse.png\"><img decoding=\"async\" alt=\"Statistik und Monitoring von PHP-Skripten in Echtzeit. ClickHouse und Grafana helfen 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 \/>\nDer erste Grund ist die Installation.<\/p>\n<p>Um von der Implementierung von Pinba mehr oder weniger zu profitieren, ist es sehr w\u00fcnschenswert, Metriken nicht nur f\u00fcr die letzten Minuten, sondern auch \u00fcber l\u00e4ngere Zeitr\u00e4ume (von Tagen bis Monaten) zu sehen.<\/p>\n<p>Daf\u00fcr muss man:<\/p>\n<ul>\n<li>eine Extension f\u00fcr PHP installieren (und m\u00f6glicherweise ein Modul f\u00fcr Nginx w\u00fcnschen)<\/li>\n<li>die Extension f\u00fcr MySQL kompilieren<\/li>\n<li>Pinboard installieren und Cron einrichten<\/li>\n<\/ul>\n<p>\nWegen des geringen Informationsangebots \u00fcber Pinba haben viele den Eindruck gewonnen, dass es nur auf PHP5 funktionierte und l\u00e4ngst der Vergangenheit angeh\u00f6rt. Aber wie wir sp\u00e4ter sehen werden, ist das nicht der Fall.<\/p>\n<p>Der erste Schritt ist der einfachste, man muss nur den Befehl ausf\u00fchren:<\/p>\n<pre><code class=\"bash\">apt install php-pinba<\/code><\/pre>\n<p>\nIn den Repositories ist diese Extension bis einschlie\u00dflich PHP 7.3 verf\u00fcgbar, und man muss nichts kompilieren.<\/p>\n<p>Nach der Ausf\u00fchrung des Installationsbefehls erhalten wir sofort eine funktionierende Erweiterung, die Metriken jedes Skripts (Laufzeit, Speicher usw.) im Format <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Protocol_Buffers\">protobuf<\/a><\/noindex> \u00fcber UDP an 127.0.0.1:30002 sendet.<\/p>\n<p>Diese UDP-Pakete werden derzeit von niemandem empfangen und verarbeitet, aber das hat keine negativen Auswirkungen auf die Geschwindigkeit oder Stabilit\u00e4t Ihrer PHP-Skripte.<\/p>\n<p>Bis vor Kurzem war die einzige Anwendung, die diese UDP-Pakete empfangen und verarbeiten konnte, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/tony2001\/pinba_engine\">pinba_engine<\/a><\/noindex>. Beschreibung &#171;<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/tony2001\/pinba_engine\/wiki\/Installation\">einfach und pr\u00e4gnant<\/a><\/noindex>&#187; Installationen rauben einem die Lust, jemals wieder zu lesen und sich damit auseinanderzusetzen. In kilometerlangen Abh\u00e4ngigkeitstabellen finden sich sowohl die Paketnamen als auch die Namen der Programme und Links zu einzelnen Installationsseiten, und diese haben wiederum Links zu anderen Abh\u00e4ngigkeiten. Sich mit diesem Zeug auseinanderzusetzen, hat niemand weder die Zeit noch die Lust.<\/p>\n<p>Installationsprozess <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/badoo\/pinba2\">pinba2<\/a><\/noindex> wurde nicht <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/badoo\/pinba2\/blob\/master\/docs\/index.md#installation\">besonders einfacher<\/a><\/noindex>.<\/p>\n<p>Es ist m\u00f6glich, dass pinba10 eines Tages mit ein oder zwei Befehlen installiert werden kann, ohne einen Haufen Material lesen zu m\u00fcssen, um zu verstehen, wie das funktioniert, aber bisher ist das nicht so.<\/p>\n<p>Wenn Sie tats\u00e4chlich pinba_engine installiert haben, dann ist das nur die halbe Miete. Denn ohne <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/intaro\/pinboard\">pinboard<\/a><\/noindex> sind Sie darauf angewiesen, nur die Daten der letzten Minuten zu erhalten oder die Daten selbst zu aggregieren, zu speichern und zu visualisieren. Es ist gut, dass pinboard relativ einfach zu <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/intaro\/pinboard\/wiki\/Installation\">installieren<\/a><\/noindex>.<\/p>\n<p>Es scheint, warum solch ein Leiden, wenn alle Metriken aus PHP bereits im UDP-Port im Protobuf-Format gesendet werden und alles, was man tun muss, ist eine Anwendung zu schreiben, die diese abf\u00e4ngt und in ein Speicher integriert? Offenbar haben sich die Entwickler, denen dieser Gedanke gekommen ist, sofort daran gemacht, ihre eigenen R\u00e4der zu erfinden, von denen einige auf GitHub landeten.<\/p>\n<p>Hier folgt eine \u00dcbersicht \u00fcber vier Open-Source-Projekte, die Metriken in Speicherorten speichern, aus denen diese Daten leicht abgerufen und visualisiert werden k\u00f6nnen, zum Beispiel mit 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 auf Go, der Metriken in OpenTSDB speichert. Wenn OpenTSDB bereits in Ihrem Projekt verwendet wird, k\u00f6nnte diese L\u00f6sung f\u00fcr Sie geeignet sein, andernfalls empfehle ich, vorbeizugehen.<\/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 auf Go, vom selben <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/Aryoh\/\">Hub-Rutzer<\/a><\/noindex>, der diesmal die Metriken in InfluxDB speichert. In vielen Projekten wird InfluxDB bereits f\u00fcr \u00dcberwachungen genutzt, deshalb k\u00f6nnte diese L\u00f6sung f\u00fcr sie hervorragend geeignet sein.<\/p>\n<p>Vorteile:<\/p>\n<ul>\n<li>InfluxDB <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/olegfedoseev\/pinba-influxdb#influxdb-preparation\">das \u00d6ffnen eines Links in einem neuen Tab oder in einem neuen Container.<\/a><\/noindex> die erhaltenen Metriken zu aggregieren und das Original nach einer bestimmten Zeit zu l\u00f6schen.<\/li>\n<\/ul>\n<p>\nNachteile:<\/p>\n<ul>\n<li>Diese L\u00f6sung speichert keine Informationen zu Timern.<\/li>\n<li>InfluxDB wird die Seitenadressen der Website als Tags speichern, und wenn Sie viele einzigartige Seitenadressen haben, kann das zu <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/449352\/#comment_20085878\">erh\u00f6htem Verbrauch<\/a><\/noindex> Arbeitsspeicher. Ab einem bestimmten Moment &#171;<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/2v\/68\/th\/2v68thch8ajln7abt-ghsmsbxgs.png\">den Speicher ohne Ende auffressen<\/a><\/noindex>&#171;. (<noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@valyala\/insert-benchmarks-with-inch-influxdb-vs-victoriametrics-e31a41ae2893\">Quelle<\/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> (Januar 2019) <\/h4>\n<p>\nUDP-Server auf Go, der Metriken in ClickHouse speichert. Dies ist die L\u00f6sung meines Freundes. Nach der Auseinandersetzung mit ihm habe ich beschlossen, dass es Zeit ist, sich mit Pinba und ClickHouse zu besch\u00e4ftigen.<\/p>\n<p>Vorteile:<\/p>\n<ul>\n<li>ClickHouse eignet sich ideal f\u00fcr solche Aufgaben, da es die Daten so komprimiert, dass Sie alle Rohdaten sogar ohne Aggregationen speichern k\u00f6nnen.<\/li>\n<li>Wenn erforderlich, k\u00f6nnen Sie die erhaltenen Metriken leicht aggregieren.<\/li>\n<li>Fertige Vorlage f\u00fcr Grafana<\/li>\n<li>speichert Informationen zu Timern<\/li>\n<\/ul>\n<p>\nNachteile:<\/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\">fataler Mangel<\/a><\/noindex><\/li>\n<li>es gibt keine Konfiguration, in der der Name der Datenbank und der Tabellen, die Adresse und der Port des Servers eingestellt werden k\u00f6nnen.<\/li>\n<li>Bei der Speicherung der Rohdaten wird eine Hilfstabelle als W\u00f6rterbuch verwendet, um die Seitenadressen und Domains zu speichern, was die sp\u00e4teren Abfragen komplizierter macht.<\/li>\n<li>sonstige Kleinigkeiten, die sich aus dem ersten Nachteil ergeben<\/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 auf PHP, der Metriken in ClickHouse speichert. Dies ist meine L\u00f6sung, die das Ergebnis meiner Auseinandersetzung mit Pinba, ClickHouse und Protobuf ist. W\u00e4hrend ich mit all diesen Verkn\u00fcpfungen besch\u00e4ftigt war, schrieb ich ein 'Proof of Concept', das zu meiner \u00dcberraschung keine erheblichen Ressourcen verbrauchte (30 MB RAM und weniger als 1% eines von acht Prozessorkernen), sodass ich beschloss, es mit der \u00d6ffentlichkeit zu teilen.<\/p>\n<p>Vorteile \u2014 die gleichen wie bei der vorherigen L\u00f6sung; au\u00dferdem verwendete ich die gewohnten Bezeichnungen aus der urspr\u00fcnglichen Pinba-Engine. Ich f\u00fcgte auch eine Konfiguration hinzu, die es erm\u00f6glicht, mehrere Instanzen des Pinba-Servers gleichzeitig zu starten, um Metriken in verschiedene Tabellen zu speichern \u2014 das ist n\u00fctzlich, wenn Sie Daten nicht nur aus PHP, sondern auch aus Nginx sammeln m\u00f6chten.<br \/>\nNachteile \u2014 'fataler Mangel' und die Kleinigkeiten, die Ihnen pers\u00f6nlich nicht gefallen, aber meine L\u00f6sung ist 'einfach wie ein Hausschuh' und besteht aus nur etwa 100 Zeilen Code, sodass jeder PHP-Entwickler in ein paar Minuten das \u00e4ndern kann, was ihm nicht gef\u00e4llt.<\/p>\n<p><b>Funktionsweise<\/b><\/p>\n<p>Der UDP-Port 30002 wird \u00fcberwacht. Alle eingehenden Pakete werden gem\u00e4\u00df dem Protobuf-Schema dekodiert und aggregiert. Einmal pro Minute wird ein Batch in ClickHouse in die Tabelle pinba.requests eingef\u00fcgt. (Alle Parameter werden in der <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/pinba-server\/pinba-server\/blob\/master\/config.json\">Konfiguration<\/a><\/noindex>)<\/p>\n<p><b>Ein wenig \u00fcber ClickHouse<\/b><\/p>\n<p>ClickHouse unterst\u00fctzt verschiedene Speichermotoren. Der am h\u00e4ufigsten verwendete ist MergeTree. <\/p>\n<p>Wenn Sie irgendwann entscheiden, aggregierte Daten \u00fcber einen l\u00e4ngeren Zeitraum zu speichern und Rohdaten nur f\u00fcr die letzte Zeit, k\u00f6nnen Sie eine materialisierte Sicht mit Gruppierung erstellen, w\u00e4hrend die Haupttabelle pinba.requests regelm\u00e4\u00dfig gereinigt wird, wobei alle Daten in der materialisierten Sicht verbleiben. Dar\u00fcber hinaus k\u00f6nnen Sie beim Erstellen der Tabelle pinba.requests \u201eengine = Null\u201c angeben, sodass Rohdaten \u00fcberhaupt nicht auf die Festplatte gespeichert werden und dennoch in der materialisierten Sicht landen und aggregiert gespeichert werden. Dieses Schema nutze ich f\u00fcr Nginx-Metriken, da Nginx bei mir 50-mal mehr Anfragen hat als PHP.<\/p>\n<p>Also, Sie haben einen langen Weg zur\u00fcckgelegt und ich m\u00f6chte Sie nicht auf halbem Weg lassen, deshalb folgt eine ausf\u00fchrliche Beschreibung der Installation und Konfiguration meiner L\u00f6sung sowie alles, was Sie ben\u00f6tigen, und die Fallstricke, an denen nicht nur ein Schiff gescheitert ist. Der gesamte Installationsprozess ist f\u00fcr Ubuntu 18.04 LTS und Centos 7 beschrieben; auf anderen Distributionen und Versionen kann der Prozess geringf\u00fcgig abweichen.<\/p>\n<h4>Installation<\/h4>\n<p>\nAlle erforderlichen Befehle habe ich in das <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/pinba-server\/pinba-server\/tree\/master\/docker\">Dockerfile<\/a><\/noindex> f\u00fcr die einfachere Wiederholbarkeit der Anweisungen ausgegliedert. Unten werden nur die Fallstricke beschrieben.<\/p>\n<p><b>php-pinba<\/b><\/p>\n<p>Stellen Sie nach der Installation sicher, dass in der Datei \/etc\/php\/7.2\/fpm\/conf.d\/20-pinba.ini alle Optionen auskommentiert sind. In einigen Distributionen (z. B. Centos) k\u00f6nnen sie auskommentiert sein.<\/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>W\u00e4hrend der Installation wird Clickhouse Sie auffordern, ein Passwort f\u00fcr den Benutzer default festzulegen. Standardm\u00e4\u00dfig ist dieser Benutzer von allen IP-Adressen aus erreichbar; wenn Sie daher keine Firewall auf dem Server haben, stellen Sie sicher, dass Sie ihm ein Passwort zuweisen. Dies kann auch nach der Installation in der Datei \/etc\/clickhouse-server\/users.xml gemacht werden.<\/p>\n<p>Es ist auch zu beachten, dass Clickhouse mehrere Ports verwendet, darunter 9000. Dieser Port wird auch f\u00fcr php-fpm in einigen Distributionen (z. B. Centos) verwendet. Wenn dieser Port bereits verwendet wird, k\u00f6nnen Sie ihn in der Datei \/etc\/clickhouse-server\/config.xml auf einen anderen \u00e4ndern.<\/p>\n<p><b>grafana mit Plugin f\u00fcr clickhouse<\/b><\/p>\n<p>Nach der Installation von Grafana verwenden Sie den Benutzernamen admin und das Passwort admin. Beim ersten Login wird Grafana Sie auffordern, ein neues Passwort festzulegen.<\/p>\n<p>Als n\u00e4chstes gehen wir ins Men\u00fc &#171;+&#187; -&gt; Import und geben die Nummer des Dashboards f\u00fcr den Import an <noindex><a rel=\"nofollow\" href=\"https:\/\/grafana.com\/dashboards\/10011\">10011<\/a><\/noindex>. Dieses Dashboard habe ich vorbereitet und hochgeladen, damit Sie es nicht noch einmal selbst erstellen m\u00fcssen.<\/p>\n<p>Grafana unterst\u00fctzt die Arbeit mit ClickHouse \u00fcber ein externes Plugin, aber f\u00fcr externe Plugins funktionieren die Benachrichtigungen in Grafana nicht (ein Ticket dazu gibt es bereits seit mehreren Jahren).<\/p>\n<p><b>pinba-server<\/b><\/p>\n<p>Die Installation von Protobuf und libevent ist nicht obligatorisch, verbessert aber die Leistung des pinba-servers. Wenn Sie den pinba-server in einem anderen Verzeichnis als \/opt installieren, m\u00fcssen Sie auch <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/pinba-server\/pinba-server\/blob\/master\/systemd\/pinba-server.service\">das systemd-Skript<\/a><\/noindex> anpassen.<\/p>\n<p><b>Das pinba-Modul f\u00fcr nginx<\/b><\/p>\n<p>Um das Modul zu kompilieren, sind die Quellcodes derselben Version von nginx erforderlich, die auf Ihrem Server installiert ist, sowie die gleichen Kompilierungsoptionen; andernfalls wird die Kompilierung zwar erfolgreich sein, aber beim Anschluss des Moduls wird eine Fehlermeldung angezeigt, dass \u201edas Modul bin\u00e4r inkompatibel ist\u201c. Die Kompilierungsoptionen k\u00f6nnen Sie mit dem Befehl nginx -V einsehen.<\/p>\n<p><b>Lifehacks<\/b><\/p>\n<p>Ich lasse alle meine Seiten nur \u00fcber https laufen. Das Feld schema wird daher nutzlos, weshalb ich es zur Trennung von web\/console verwende.<\/p>\n<p>In den Skripten, die \u00fcber das Web zug\u00e4nglich sind, verwende ich:<\/p>\n<pre><code class=\"php\">if (ini_get('pinba.enabled')) {\n    pinba_schema_set('web');\n}\n<\/code><\/pre>\n<p>\nIn den Konsolenskripten (zum Beispiel Cron-Skripten):<\/p>\n<pre><code class=\"php\">if (ini_get('pinba.enabled')) {\n    pinba_schema_set('console');\n}<\/code><\/pre>\n<p>\nIn meinem Dashboard in Grafana gibt es einen Schalter f\u00fcr web\/console, um die Statistiken getrennt anzusehen.<\/p>\n<p>Zus\u00e4tzlich k\u00f6nnen in Pinba eigene Tags \u00fcbergeben werden, zum Beispiel:<\/p>\n<pre><code class=\"php\">pinba_tag_set('country', $countryCode);<\/code><\/pre>\n<p>\n<b>Das w\u00e4re alles. <\/b><\/p>\n<p>Ich bitte um eine R\u00fcckmeldung zu den Umfragen unter dem Artikel.<\/p>\n<p>Ich warne traditionell, dass ich nicht berate und nicht \u00fcber pers\u00f6nliche Nachrichten auf Habra und in sozialen Netzwerken hilfe.<\/p>\n<p>Erstellen Sie ein Ticket auf GitHub.<\/p>\n<p>Ich bitte auch um Unterst\u00fctzung in Form von Likes <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/en\/post\/449818\/\">der englischen Version<\/a><\/noindex> dieses Artikels <noindex><a rel=\"nofollow\" href=\"https:\/\/www.reddit.com\/r\/PHP\/comments\/bigszu\/statistics_and_monitoring_of_php_scripts_in_real\/\">auf Reddit<\/a><\/noindex>.<\/p>\n<p class=\"for_users_only_msg\">Nur registrierte Benutzer k\u00f6nnen an der Umfrage teilnehmen. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Bitte einloggen<\/a><\/noindex>.<\/p>\n<h2 class=\"default-block__polling-title\">Welches Betriebssystem verwenden Sie auf dem 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>    114 Benutzer haben abgestimmt. 11 Benutzer haben sich enthalten.<\/p>\n<h2 class=\"default-block__polling-title\">Welche PHP-Version verwenden Sie auf Ihrem 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>    105 Benutzer haben abgestimmt. 17 Benutzer haben sich enthalten.<\/p>\n<h2 class=\"default-block__polling-title\">Haben Sie schon einmal Pinba verwendet?<\/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>                    nein, aber ich w\u00fcrde es gerne ausprobieren<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    nein, und ich w\u00fcrde es nicht wollen<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    nein, und ich habe noch nie davon geh\u00f6rt<\/p>\n<\/li>\n<\/ul>\n<p>    100 Benutzer haben abgestimmt. 14 Benutzer haben sich enthalten.<\/p>\n<h2 class=\"default-block__polling-title\">Welche Version des Pinba-Servers m\u00f6chten Sie ausprobieren?<\/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>                    ich werde mein eigenes schreiben<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    andere<\/p>\n<\/li>\n<\/ul>\n<p>    39 Benutzer haben abgestimmt. 47 Benutzer haben sich enthalten.<br \/>\n<br \/>Quelle: <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\/de\/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=\"de_DE\" \/>\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\/de\/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\udd47Statistik und \u00dcberwachung von PHP-Skripten in Echtzeit. ClickHouse und Grafana helfen Pinba | ProHoster","description":"In diesem Artikel erkl\u00e4re ich, wie man Pinba zusammen mit ClickHouse und Grafana anstelle von pinba_engine und pinboard nutzen kann. Bei PHP-Projekten ist Pinba wohl der einzige zuverl\u00e4ssige Weg, um zu verstehen, was vor sich geht.","canonical_url":"https:\/\/prohoster.info\/de\/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":"de_DE","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\/de\/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\/de\/wp-json\/wp\/v2\/posts\/32681","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=32681"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/32681\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/24468"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=32681"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=32681"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=32681"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}