Überwachung von PHP-Anwendungen mit der Bibliothek php-ast und xhprof

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist das Monitoring von PHP-Anwendungen und warum wird es benötigt?

Das Monitoring von PHP-Anwendungen ist der Prozess der Erfassung, Analyse und Visualisierung von Leistungsmetriken, Fehlern und Ressourcennutzung von Webanwendungen, die in PHP geschrieben sind. Ohne Monitoring ist es unmöglich, Engpässe, Speicherlecks, langsame Datenbankabfragen oder suboptimalen Code zu identifizieren. Die wichtigsten Bibliotheken dafür sind xhprof (Profiling) und php-ast (Analyse von Syntaxbäumen).

Wie installiert man es?

Für die Installation von xhprof (Erweiterung für das Profiling) führen Sie Folgendes aus:

pecl install xhprof

Fügen Sie in der php.ini hinzu:

extension=xhprof.so

Für php-ast (AST-Analyse):

pecl install ast

Binden Sie es dann in composer ein:

composer require phpunit/php-code-coverage

Hauptfunktionen

  • Request-Profiling — xhprof sammelt Daten über Ausführungszeit, Anzahl der Funktionsaufrufe und Speichernutzung.
  • Syntaxanalyse — php-ast ermöglicht das Parsen von PHP-Code in einen abstrakten Syntaxbaum für die statische Analyse.
  • Fehlerüberwachung — Integration mit Sentry oder Monolog zur Protokollierung von Ausnahmen.
  • Leistungsmetriken — Antwortzeit, Anzahl der Anfragen pro Sekunde (RPS), CPU-/RAM-Nutzung.

PHP-Codebeispiel

<?php// Profiling mit xhprofxhprof_enable();

// Ihr Anwendungscode$result = someHeavyFunction();

$xhprofData = xhprof_disable();include_once '/path/to/xhprof_lib/utils/xhprof_lib.php';include_once '/path/to/xhprof_lib/utils/xhprof_runs.php';$xhprofRuns = new XHProfRuns_Default();$runId = $xhprofRuns->save_run($xhprofData, 'my_app');echo 'Profiler run ID: ' . $runId;

// AST-Analyse mit php-ast$code = file_get_contents('index.php');$ast = ast\\parse_code($code, $version = 70);echo ast\\get_kind_name($ast->kind);?>

Wann verwenden?

Monitoring ist in der Production-Umgebung notwendig, um Leistungseinbußen nach Releases zu verfolgen, bei Lasttests sowie zur Suche nach Speicherlecks in langlebigen Prozessen (z. B. in Queues oder WebSocket-Servern). Die Bibliotheken xhprof und php-ast eignen sich ideal für die Integration in CI/CD-Pipelines und Observability-Systeme (Prometheus, Grafana).

Fazit

Die Verwendung von Profilern und statischen Analysewerkzeugen ist eine unverzichtbare Praxis, um die hohe Qualität von PHP-Anwendungen zu erhalten. Beginnen Sie mit der Installation von xhprof und php-ast, um ein vollständiges Bild der Arbeitsweise Ihres Codes zu erhalten.

Empfehlungen