Überwachung von PHP-Anwendungen: Metriken und Alarme für Stabilität

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
```html

Überwachung von PHP-Anwendungen: Metriken und Alarme



Moderne PHP-Anwendungen laufen in komplexen verteilten Umgebungen, in denen Ausfälle und Leistungseinbußen das Unternehmen Millionen kosten können. Ohne ein Überwachungssystem riskieren Sie, erst von Benutzern von einem Problem zu erfahren. In diesem Artikel werden wir erläutern, wie Sie eine vollständige Überwachung von PHP-Anwendungen einrichten, welche Metriken Sie verfolgen und wie Sie Alarme für eine schnelle Reaktion konfigurieren.



Warum die Überwachung von PHP kritisch wichtig ist



PHP bleibt eine der beliebtesten Sprachen für die Webentwicklung (laut W3Techs verwenden über 75 % der Websites PHP). Seine interpretierte Natur und die Besonderheiten der Speicherverwaltung erfordern jedoch besondere Aufmerksamkeit. Ohne Überwachung können Sie nicht:



  • Speicherlecks erkennen, bevor sie zum Serverabsturz führen
  • Langsame Datenbankabfragen identifizieren
  • Ineffiziente Codeabschnitte aufdecken
  • Die Last vorhersagen und die Infrastruktur skalieren


Eine effektive Überwachung besteht aus drei Komponenten: Metrikenerfassung, Visualisierung und Alarmierung. Betrachten wir jede Phase in der Praxis.



Wichtige Metriken von PHP-Anwendungen



Für eine vollständige Überwachung müssen die folgenden Metrikengruppen verfolgt werden:



Leistungsmetriken (APM)

  • Antwortzeit (p50, p95, p99 Perzentile)
  • Durchsatz (RPS – Requests pro Sekunde)
  • Skriptausführungszeit (max_execution_time)
  • Anzahl der Fehler (5xx, Ausnahmen)


Systemmetriken

  • CPU-Auslastung und Speichernutzung von PHP-FPM
  • Anzahl aktiver Prozesse von PHP-FPM
  • Festplattenplatznutzung für Logs
  • Netzwerkverkehr und Latenzen


Geschäftsmetriken

  • Anzahl erfolgreicher Zahlungen
  • Seitenladegeschwindigkeit
  • Trichterkonversion


Praktische Umsetzung: Metrikenerfassung mit Prometheus



Betrachten wir ein Beispiel für die Integration einer PHP-Anwendung mit Prometheus – einem der beliebtesten Überwachungstools. Für die Arbeit mit Prometheus in PHP verwenden wir die Bibliothek promphp/prometheus_client_php.



Installation über Composer:

composer require promphp/prometheus_client_php


Beispiel für die Registrierung und Verwendung eines Counters und eines Histogramms:



<?phpuse Prometheus\\CollectorRegistry;use Prometheus\\Storage\\InMemory;use Prometheus\\RenderTextFormat;

// Initialisierung des Speichers (in Produktion Redis oder APCu verwenden)$registry = new CollectorRegistry(new InMemory());

// Counter zur Verfolgung der Anzahl von Fehlern$errorCounter = $registry->registerCounter( 'app_errors_total', 'Total number of application errors', ['type', 'endpoint']);

// Histogramm für die Antwortzeit$requestDuration = $registry->registerHistogram( 'http_request_duration_seconds', 'HTTP request duration in seconds', ['method', 'endpoint'], [0.1, 0.5, 1, 2, 5, 10] // Buckets);

// Middleware zur Metrikenerfassungfunction monitorRequest(callable $handler) { global $requestDuration, $errorCounter; $start = microtime(true); try { $result = $handler(); $duration = microtime(true) - $start; // Ausführungszeit aufzeichnen $requestDuration->observe($duration, [ $_SERVER['REQUEST_METHOD'], $_SERVER['REQUEST_URI'] ]); return $result; } catch (\\Throwable $e) { // Fehlerzähler erhöhen $errorCounter->inc([ get_class($e), $_SERVER['REQUEST_URI'] ]); throw $e; }}

// Endpoint für Prometheus (normalerweise /metrics)function metricsEndpoint() ```

Blogs

Buchempfehlungen