Perbincangan dan amalan pemantauan dan penyelesaian yang membimbangkan untuk penggunaan berpakej PHP
Abstrak:
Dengan pembangunan dan kerumitan aplikasi PHP, kepentingan menggunakan dan memantau aplikasi PHP secara beransur-ansur menjadi lebih menonjol. Artikel ini akan membincangkan cara memantau dan memaklumkan aplikasi PHP melalui penggunaan pakej, dan menunjukkan kaedah praktikal khusus melalui kod contoh.
3.1 Pemilihan penunjuk pemantauan
Apabila memantau aplikasi PHP, kami biasanya memberi tumpuan kepada penunjuk berikut:
3.2 Amalan: Gunakan Prometheus dan Grafana untuk memantau aplikasi PHP
Dalam contoh ini, kami akan menggunakan Prometheus dan Grafana untuk membina platform pemantauan mudah untuk memantau penggunaan CPU, penggunaan memori dan masa tindak balas aplikasi PHP.
Pertama, kita perlu memasang perpustakaan klien Prometheus dalam aplikasi PHP, yang boleh dipasang menggunakan arahan Komposer berikut:
composer require prometheus/client_php
Seterusnya, kami menambah kod berikut pada kod aplikasi PHP untuk mengumpul dan mengeksport data penunjuk :
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()); }
Kemudian, panggil collectMetrics
函数,以采集监控数据。访问/metrics
antara muka dalam antara muka aplikasi untuk melihat data pemantauan yang dieksport melalui penyemak imbas, seperti yang ditunjukkan di bawah:
# 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
Akhir sekali, kita boleh menggunakan Grafana untuk menggambarkan data pemantauan. Dalam konfigurasi papan pemuka Grafana, tambah sumber data Prometheus, buat papan pemuka baharu dan tambahkan carta penggunaan CPU dan carta penggunaan memori.
Atas ialah kandungan terperinci Perbincangan dan amalan pemantauan dan penyelesaian penggera untuk penggunaan berpakej PHP.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!