Hyperf Metrics
文章目录
代码地址
GitHub - extra-demo/hyperf-metrics-demo: hyperf-metrics-demo
创建项目并集成组件
- 创建 hyperf 项目
|
|
一路默认即可,等待它安装完成
- 集成组件
|
|
- 发布配置文件
php bin/hyperf.php vendor:publish hyperf/metric
- 修改配置文件
修改 /config/autoload/metric.php
文件
|
|
PS: 因为我们开发测试等环境是不需要进行监控的,所以修改默认配置为,不上报(noop do nothing)
PS2:如果你已经有了一个 hyperf 的项目,请检查一下版本是否为 “>=1.1.0”
快速启动 prometheus 监控系统
在项目 docker
目录中放置了用到的 docker-compose.yml
配置文件,和 grafana
图标配置文件。
-
执行
docker-compose up -d
稍等一会,如果没有报错,就可以打开http://127.0.0.1:3000
了,首次打开需要自己配置一下账号密码 -
添加数据源 1 2
-
导入
grafana.json
1 配置参数(app name 中的-
会被替换成_
) -
导入成功 因为还没上报数据,所以这里会提示错误,先忽略就好。
配置 hyperf
下边修改环境变量均是修改 .env
文件, 修改完成之后,需要重启 hyperf server。
APP_NAME
修改为extra-demo
- 增加配置
METRIC_DRIVER=prometheus
- 启动 server
php -f bin/hyperf.php start
这个时候我们就可以看到统计数据了
启动 MetricMiddleware
在 /config/autoload/middlewares.php
中添加 \Hyperf\Metric\Middleware\MetricMiddleware::class,
。
这个中间件能够记录 http 请求的 status
, path
, method
, 如果你的路由太多,建议重写改中间件,否则可能会出现内存溢出错误。
启动 Mysql
和 Redis
连接池监控
在 /config/autoload/listeners.php
中添加
\Hyperf\Metric\Listener\DBPoolWatcher::class,
\Hyperf\Metric\Listener\RedisPoolWatcher::class,
PS
docker compose 使用了 host
模式, 原因是,我们 docker 方式启动了 prometheus, 无法直接使用 127.0.0.1
访问在本机上的项目,如果不使用 host
模式, 要么项目也以 docker 方式启动,且使用和 prometheus 在同一个网段内。要么使用内网 ip 来访问项目。
参考文章
文章作者 霸气千秋
上次更新 2020-06-07