在 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 应用程序的性能和健康状况。