Heim > Artikel > Backend-Entwicklung > Diskussion und Praxis von Überwachungs- und Alarmlösungen für die PHP-Paketbereitstellung.
Diskussion und Praxis von Überwachungs- und Alarmierungslösungen für die PHP-Paketbereitstellung
Zusammenfassung:
Mit der Entwicklung und Komplexität von PHP-Anwendungen ist die Bedeutung der Bereitstellung und Überwachung von PHP-Anwendungen immer wichtiger geworden. In diesem Artikel wird erläutert, wie PHP-Anwendungen durch Paketbereitstellung überwacht und benachrichtigt werden, und anhand von Beispielcode werden bestimmte praktische Methoden demonstriert.
3.1 Auswahl von Überwachungsindikatoren
Bei der Überwachung von PHP-Anwendungen konzentrieren wir uns normalerweise auf die folgenden Indikatoren:
3.2 Übung: Verwenden Sie Prometheus und Grafana, um PHP-Anwendungen zu überwachen.
In diesem Beispiel verwenden wir Prometheus und Grafana, um eine einfache Überwachungsplattform zu erstellen, um die CPU-Auslastung, Speichernutzung und Antwortzeit von PHP-Anwendungen zu überwachen.
Zuerst müssen wir die Prometheus-Clientbibliothek in der PHP-Anwendung installieren, die mit dem folgenden Composer-Befehl installiert werden kann:
composer require prometheus/client_php
Als nächstes fügen wir den folgenden Code zum Code der PHP-Anwendung hinzu, um Indikatordaten zu sammeln und zu exportieren :
require 'vendor/autoload.php'; use PrometheusCollectorRegistry; use PrometheusRenderTextFormat; use PrometheusStorageRedis; $registry = new CollectorRegistry(new Redis()); $cpuUsageGauge = $registry->registerGauge('php_cpu_usage', 'CPU usage'); $memoryUsageGauge = $registry->registerGauge('php_memory_usage', 'Memory usage'); $latencyHistogram = $registry->registerHistogram('php_latency', 'Request latency', ['route']); // 在应用中采集和导出监控指标 function collectMetrics() { global $cpuUsageGauge, $memoryUsageGauge, $latencyHistogram; // 采集CPU使用率 $cpuUsageGauge->set(sys_getloadavg()[0]); // 采集内存使用量 $memoryUsageGauge->set(memory_get_usage(true)); // 采集响应时间 $start = microtime(true); // 执行一段代码 $end = microtime(true); $latencyHistogram->observe($end - $start, ['route' => '/api']); } // 导出监控指标 function exportMetrics() { global $registry; header('Content-Type: text/plain'); echo RenderTextFormat::render($registry->getMetricFamilySamples()); }
Dann rufen Sie die collectMetrics
函数,以采集监控数据。访问/metrics
Schnittstelle in einer Schnittstelle der Anwendung auf, um die exportierten Überwachungsdaten über den Browser anzuzeigen, wie unten gezeigt:
# TYPE php_cpu_usage gauge php_cpu_usage 0.8 # TYPE php_memory_usage gauge php_memory_usage 1024000 # TYPE php_latency histogram php_latency_bucket{route="/api",le="0.005"} 50 php_latency_bucket{route="/api",le="0.01"} 100 php_latency_bucket{route="/api",le="+Inf"} 150 php_latency_sum{route="/api"} 15 php_latency_count{route="/api"} 150
Schließlich können wir Grafana verwenden, um die Überwachungsdaten zu visualisieren. Fügen Sie in der Dashboard-Konfiguration von Grafana eine Prometheus-Datenquelle hinzu, erstellen Sie ein neues Dashboard und fügen Sie ein CPU-Auslastungsdiagramm und ein Speicherauslastungsdiagramm hinzu.
Das obige ist der detaillierte Inhalt vonDiskussion und Praxis von Überwachungs- und Alarmlösungen für die PHP-Paketbereitstellung.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!