Maison > Article > développement back-end > Discussion et pratique des solutions de surveillance et d'alarme pour le déploiement packagé PHP.
Discussion et pratique des solutions de surveillance et d'alarme pour le déploiement packagé PHP
Résumé :
Avec le développement et la complexité des applications PHP, l'importance du déploiement et de la surveillance des applications PHP est progressivement devenue plus importante. Cet article expliquera comment surveiller et alerter les applications PHP via le déploiement de packages, et démontrera des méthodes pratiques spécifiques à travers un exemple de code.
3.1 Sélection des indicateurs de surveillance
Lors de la surveillance des applications PHP, nous nous concentrons généralement sur les indicateurs suivants :
3.2 Pratique : utilisez Prometheus et Grafana pour surveiller les applications PHP
Dans cet exemple, nous utiliserons Prometheus et Grafana pour créer une plate-forme de surveillance simple permettant de surveiller l'utilisation du processeur, l'utilisation de la mémoire et le temps de réponse des applications PHP.
Tout d'abord, nous devons installer la bibliothèque client Prometheus dans l'application PHP, qui peut être installée à l'aide de la commande Composer suivante :
composer require prometheus/client_php
Ensuite, nous ajoutons le code suivant au code de l'application PHP pour collecter et exporter les données de l'indicateur :
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()); }
Ensuite, appelez l'interface collectMetrics
函数,以采集监控数据。访问/metrics
dans une interface de l'application pour visualiser les données de surveillance exportées via le navigateur, comme indiqué ci-dessous :
# 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
Enfin, nous pouvons utiliser Grafana pour visualiser les données de surveillance. Dans la configuration du tableau de bord de Grafana, ajoutez une source de données Prometheus, créez un nouveau tableau de bord et ajoutez un graphique d'utilisation du processeur et un graphique d'utilisation de la mémoire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!