PHP-Anwendungsüberwachung: Tools und Bibliotheken zur Leistungsverfolgung
Die Entwicklung von PHP-Anwendungen ist nur die eine Hälfte der Arbeit. Für den stabilen Betrieb einer Website oder eines Webdienstes ist eine kontinuierliche Überwachung erforderlich: Verfolgung von Fehlern, Skriptausführungszeiten, Serverlast und Speichernutzung. In diesem Artikel betrachten wir die wichtigsten Tools und Bibliotheken zur Überwachung von PHP-Anwendungen, die Ihnen helfen, Probleme schnell zu finden und zu beheben.
Warum ist die Überwachung von PHP-Anwendungen wichtig?
Die Überwachung ermöglicht:
- Fehler zu erkennen und zu protokollieren (fatale Fehler, Warnungen, Ausnahmen).
- Die Leistung zu analysieren: Ausführungszeit von Anfragen, Engpässe im Code.
- Die Last zu verfolgen: Anzahl der Anfragen, CPU- und Speichernutzung.
- Benachrichtigungen über kritische Ausfälle in Echtzeit zu erhalten.
Ohne Überwachung riskieren Sie, erst von Benutzern von einem Problem zu erfahren, was zu Traffic- und Reputationsverlust führen kann.
Wichtige Tools für die Überwachung
1. Xdebug — Profiling und Debugging
Xdebug ist eine Erweiterung für PHP, die Profiling-, Tracing- und Debugging-Funktionen für Code bietet. Es ist nicht für die Produktionsumgebung gedacht, aber in der Entwicklungs- und Testphase unverzichtbar.
Hauptfunktionen:
- Tracing von Funktionsaufrufen.
- Profiling mit Ausgabe im Cachegrind-Format (analysierbar mit KCachegrind oder Webgrind).
- Interaktives Debugging mit IDEs (z. B. PhpStorm).
Beispiel zum Aktivieren des Profilings:
// In php.inixdebug.mode = profilexdebug.output_dir = /tmp/profilingxdebug.start_with_request = yesNach dem Start der Anwendung erscheinen Profiling-Dateien im angegebenen Verzeichnis. Diese können in einem Visualisierer geöffnet werden, um zu sehen, welche Funktionen die meiste Zeit beanspruchen.
2. Sentry — zentrale Fehlererfassung
Sentry ist eine beliebte Plattform für Echtzeit-Fehlerüberwachung. Sie unterstützt PHP und viele andere Sprachen. Die Bibliothek sentry/sentry lässt sich leicht in jedes Projekt integrieren.
Installation mit Composer:
composer require sentry/sentryBeispiel einer grundlegenden Integration:
<?phprequire_once 'vendor/autoload.php';
use Sentry\\SentrySdk;use Sentry\\State\\Hub;use Sentry\\ClientBuilder;
$client = ClientBuilder::create(['dsn' => 'https://your-dsn@sentry.io/1234567'])->getClient();SentrySdk::getCurrentHub()->bindClient($client);
// Beispiel: Ausnahme protokollierentry { throw new \\RuntimeException('Testfehler');} catch (\\Throwable $e) { \\Sentry\\captureException($e);}Sentry sammelt automatisch den Aufrufstapel, die Umgebung, Anfragedaten und sendet Benachrichtigungen per E-Mail, Slack oder Telegram.
3. Blackfire — Leistungsprofiling
Blackfire.io ist ein leistungsstarkes Tool zum Profiling von PHP-Anwendungen. Es zeigt nicht nur die Ausführungszeit, sondern auch den Speicherverbrauch, die Anzahl der SQL-Abfragen, Aufrufe externer APIs und vieles mehr.
Installation der Erweiterung:
pecl install blackfireBeispiel zur Verwendung im Code:
<?php// Profiling starten$probe = \\BlackfireProbe::start('profile_name');
// Ihr Code$data = expensiveFunction();
// Stoppen\\BlackfireProbe::stop($probe);Die Ergebnisse werden in der Weboberfläche von Blackfire als Aufrufgraph mit Details zu jeder Funktion angezeigt.
4. PHP Error Log — integrierte Protokollierung
Vergessen Sie nicht die integrierten Funktionen von PHP. Die Konfiguration der Fehlerprotokollierung ist ein grundlegender, aber wichtiger Schritt.
Beispielkonfiguration in php.ini
Auch in der Bibliothek
Arbeit mit Kafka in C# (.NET): Bibliothek Confluent.Kafka
Arbeiten mit Markdown in Rust: Bibliotheken und Werkzeuge
mockall für Rust: vollständige Anleitung mit Beispielen
CLI-Framework für JavaScript (Node.js): Commander.js – Erstellung von Konsolenanwendungen