在 PHP 中實現 Prometheus 的實時監控,你需要遵循以下步驟:
首先,你需要安裝 Prometheus PHP 客戶端庫。這個庫提供了與 Prometheus 交互所需的各種指標類型和功能。通過 Composer 安裝:
composer require promphp/prometheus_client_php
創建一個名為 metrics.php
的文件,并添加以下內容:
<?php
require __DIR__ . '/vendor/autoload.php';
use Prometheus\CollectorRegistry;
use Prometheus\RenderTextFormat;
use Prometheus\Storage\Redis;
$registry = new CollectorRegistry(new Redis());
// 創建一個計數器指標,用于記錄請求次數
$counter = $registry->registerCounter('my_app', 'requests_total', 'Total number of requests');
$counter->inc();
// 渲染指標并將其輸出到瀏覽器
header('Content-Type: text/plain');
echo (new RenderTextFormat())->render($registry->getMetricFamilySamples());
確保你的 Web 服務器(如 Nginx 或 Apache)配置正確,以便在訪問 /metrics
路徑時運行 metrics.php
腳本。
例如,對于 Nginx,你可以在配置文件中添加以下內容:
location /metrics {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根據你的 PHP-FPM 版本和安裝路徑進行修改
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/metrics.php;
}
在 Prometheus 配置文件(如 prometheus.yml
)中,添加一個新的 scrape target,指向你的 PHP 應用程序:
scrape_configs:
- job_name: 'my_php_app'
static_configs:
- targets: ['your-php-app.com'] # 替換為你的 PHP 應用程序的域名或 IP 地址
重啟 Prometheus 和你的 Web 服務器,以使更改生效。
現在,你應該能夠在 Prometheus 的 Web 界面中看到你的 PHP 應用程序的實時監控數據。訪問 http://your-prometheus-server.com
(將其替換為你的 Prometheus 服務器的實際地址),然后在 “Graph” 選項卡中查詢 my_app_requests_total
指標。
這只是一個簡單的示例,你可以根據需要創建更多的指標類型(如直方圖、摘要等)以監控你的 PHP 應用程序的性能和健康狀況。