Überwachung von PHP-Anwendungen: Von grundlegenden Metriken bis zum fortgeschrittenen Profiling
Die Überwachung von PHP-Anwendungen bedeutet nicht nur „zu prüfen, ob die Website ausgefallen ist“. Es ist ein umfassender Prozess der Erfassung, Analyse und Visualisierung von Daten über die Arbeit des Codes, des Servers und der Datenbank. Für das Bildungsportal pythonlib.ru (das sich an PHP richtet) haben wir die wichtigsten Tools und Methoden zusammengestellt, die Ihnen helfen, den Puls Ihres Projekts im Auge zu behalten.
Warum PHP überwachen?
- Erkennung von Engpässen: Langsame Datenbankabfragen, lange Schleifen, suboptimale Algorithmen.
- Vorbeugung von Ausfällen: Fatale Fehler, Überschreitung von Speicherlimits, fehlender Speicherplatz.
- Analyse der Benutzererfahrung: Seitenladezeiten, Anzahl der Anfragen pro Sekunde (RPS), Fehlerquote.
- Sicherheit: Verdächtige Anfragemuster, Injection-Angriffe.
Wichtige Tools zur PHP-Überwachung
1. Xdebug – Der Klassiker des Profilings
Xdebug ist eine Erweiterung für PHP, die Stack-Tracing, Profiling und Debugging bietet. Für die Überwachung verwenden Sie den Profiling-Modus (profiler_enable_trigger).
Beispielkonfiguration für php.ini:
zend_extension=xdebug.soxdebug.mode=profilexdebug.output_dir=/tmp/xdebugxdebug.profiler_output_name=cachegrind.out.%pDas Ergebnis sind cachegrind.out-Dateien, die mit KCachegrind oder Webgrind analysiert werden können.
2. Pinba – Echtzeit-Überwachung
Pinba (PHP Is Not A Bottleneck Anymore) ist ein leichtgewichtiger Metrik-Sammler, der als PHP-Modul und C-Server arbeitet. Er sendet Daten über Ausführungszeit, Speicher, Anzahl der Anfragen und Fehler an MySQL.
Beispiel für die Verwendung im Code:
// Timer startenpinba_timer_start('my_script');
// Ihr Code$data = heavyCalculation();
// Timer stoppen und Daten sendenpinba_timer_stop('my_script');
// Zusätzliche Tagspinba_script_name_set('api/v1/users');pinba_hostname_set('web-01');Die Daten landen automatisch in den Pinba-Tabellen, von wo aus sie in Grafana visualisiert werden können.
3. Tideways – Kommerzieller Profiler
Tideways (ehemals XHProf) ist eine PHP-Erweiterung, die das Profiling von Produktionsumgebungen mit minimalem Overhead ermöglicht. Es sammelt:
- Ausführungszeit jeder Funktion.
- Anzahl der Aufrufe.
- Speicherverbrauch.
Installation über Composer:
composer require tideways/php-xhprof-extensionProfiling starten:
$profiler = new Tideways\\Profiler();$profiler->start();
// Ihr Code$result = expensiveOperation();
$profiler->stop();$data = $profiler->getCallgraph(); // Daten zur VisualisierungFehlerprotokollierung: Grundlage der Überwachung
Ohne eine qualitativ hochwertige Protokollierung ist die Überwachung nutzlos. Verwenden Sie PSR-3-kompatible Bibliotheken wie Monolog.
Beispiel für die Einrichtung von Monolog zum Senden kritischer Fehler an Telegram:
use Monolog\\Logger;use Monolog\\Handler\\TelegramBotHandler;
$logger = new Logger('app');$handler = new TelegramBotHandler( 'YOUR_BOT_TOKEN', 'YOUR_CHAT_ID', Logger::CRITICAL);$logger->pushHandler($handler);
try { // gefährlicher Code} catch (\\Throwable $e) { $logger->critical('Fehler im Zahlungsmodul', [ 'exception' => $e, 'user_id' => $userId, 'ip' => $_SERVER['REMOTE_ADDR'] ]);}Zu überwachende Metriken
Hier ist ein minimaler Satz von Metriken für jede PHP-Anwendung:
- Antwortzeit (Response Time) – Durchschnitt, 95. und 99. Perzentil.
- Anzahl der Anf
Auch in der Bibliothek
PDF-Generierung in C# (.NET): Die besten Bibliotheken und Codebeispiele
Internationalisierung (i18n) in C++: Vollständiger Leitfaden mit gettext und ICU
GraphQL für C# (.NET): Vollständiger Leitfaden zur Bibliothek GraphQL.NET