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