Hyperf服务监控集成教程_Prometheus与Grafana实现Hyperf性能可视化

陌杰君_3564

陌杰君_3564

2026-05-19

950人浏览

原创

hyperf服务监控需确保metric组件暴露指标、prometheus稳定抓取、grafana正确关联数据源;须验证/metrics接口可用性、prometheus target可达性、grafana数据源健康及promql前缀匹配,并注意业务指标需在协程内上报。

hyperf服务监控集成教程_prometheus与grafana实现hyperf性能可视化 - php中文网

Hyperf 服务监控不是“配完就能用”,关键在于 metric 组件是否真正暴露了指标、Prometheus 是否能稳定抓取、Grafana 是否正确关联数据源——三者任一环节断开,仪表盘就成空壳。

确认 /metrics 接口是否真实可用

很多问题其实卡在第一步:Hyperf 根本没把指标吐出来。默认配置下,use_standalone_process 必须为 true,否则指标采集会和业务协程争抢资源,甚至因超时导致接口返回空或 500。

  • scrape_host 不能写 127.0.0.1 或 localhost(Docker 容器内解析失败),应设为 0.0.0.0
  • scrape_port 需确保未被其他进程占用,且宿主机或容器网络能通(例如 Docker Compose 中用 host.docker.internal 指向宿主)
  • 手动 curl 测试:curl http://localhost:9502/metrics,看到类似 # TYPE hyperf_worker_request_count counter 才算成功
  • 若返回空或 Connection refused,先检查 php bin/hyperf.php process:list 是否有 MetricProcess 在运行

Prometheus 抓取配置常见失效点

Prometheus 不是“配了 job 就自动干活”,它对 target 地址的可达性极其敏感,尤其在容器环境下。

Hyperframes Creative
Hyperframes Creative

HyperFrames视频非动画创意指导,包括设计规范(frame.md/design.md)处理、配色、字体设计、旁白及节奏规划等。

下载
  • Docker Compose 中,targets: ['host.docker.internal:9502'] 是 Mac/Windows 的解法;Linux 需改用宿主机真实 IP 或用 network_mode: "host"
  • scrape_interval: 5s 太短可能压垮 Hyperf 监控进程,生产建议调至 15s 或 30s
  • 抓取失败时,进 Prometheus Web UI 的 Status > Targets 页面,看对应 job 状态和报错(如 context deadline exceeded 通常意味着网络不通或端口拒绝)
  • 不要复用 job_name: 'hyperf',多个实例需区分,比如 job_name: 'hyperf-api' 和 job_name: 'hyperf-worker'

Grafana 导入 Dashboard 前必须校验的两件事

直接导入 grafana.json 很快,但若跳过校验,面板里全是“no data”。

  • 先确认 Prometheus 数据源已添加并显示 Healthy,URL 填的是 http://prometheus:9090(容器名)或 http://localhost:9090(本地)
  • 导入 JSON 后,打开任意面板,点击右上角 Inspect > Metrics,看实际执行的 PromQL 是否能返回结果,例如:sum(rate(hyperf_worker_request_count[5m]))
  • Hyperf 默认指标带命名空间前缀(如 hyperf_),若自定义了 namespace(如 'namespace' => 'myapp'),所有 Grafana 面板里的 PromQL 都得同步替换前缀
  • 时间范围选太小(如 Last 5 minutes)也可能看不到数据,建议先切到 Last 6 hours 观察趋势

自定义业务指标上报容易漏掉的初始化时机

用 Metric::counter('order_paid_total')->inc() 时,如果在非协程安全上下文(如 __construct 或静态属性初始化)中调用,指标会丢失或报错。

  • 必须在协程内调用:Controller 方法、Listener、Job handle、自定义 Process 的 handle() 中都 OK
  • 避免在 Di 容器构建阶段或 ConfigProvider 中提前 new 实例并调用 inc()
  • Counter 类型不支持减操作,误用 dec() 会静默失败;需要增减的场景请改用 Gauge
  • 直方图 histogram 的 observe($value) 要传 float,传 int 可能触发类型警告(PHP 8.1+)

最常被忽略的是:Hyperf 的 /metrics 是独立进程暴露的,它不走 HTTP Server 的中间件链,所以 Nginx 反向代理、SSL 终止、路径重写这些都可能拦住 Prometheus 的抓取请求——调试时绕过代理直连 9502 端口,往往一眼定位问题。

相关文章

数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载

相关标签:

hyperf

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Grafana重置admin密码
Grafana重置admin密码

本专题整合了grafana admin密码相关教程,阅读专题下面的文章了解更多详细内容。

2025.09.02

2094

12

Grafana admin密码
Grafana admin密码

本专题整合了Grafana密码相关教程,阅读专题下面的文章了解更多详细内容。

2025.12.09

710

9

Hyperf协程并发编程实操指南
Hyperf协程并发编程实操指南

本专题深度解析 Hyperf 协程底层机制,解决协程环境下全局变量污染、Context 上下文丢失等核心痛点,提供规范化的 PHP 高并发编程实战代码建议。

2026.05.19

180

15

深入理解Hyperf AOP切面与注解使用
深入理解Hyperf AOP切面与注解使用

详尽介绍 Hyperf 依赖注入容器与 AOP 面向切面编程的使用技巧,包含自定义注解开发流程及注解不生效的排查方案,助力开发者掌握框架核心架构。

2026.05.19

444

16

Hyperf 数据库操作与连接池优化方案
Hyperf 数据库操作与连接池优化方案

针对 Hyperf Eloquent 模型在大数据量下的表现进行深度优化,讲解连接池断线重连、超时设置及事务处理等生产环境常见技术疑难。

2026.05.19

204

15

基于 Hyperf 的微服务架构集成实战
基于 Hyperf 的微服务架构集成实战

本专题涵盖 Hyperf 微服务全栈解决方案,包括服务注册与发现、配置中心集成、JsonRPC 调用以及分布式限流熔断的落地实践。

2026.05.19

256

18

Hyperf 高并发缓存与分布式系统应用
Hyperf 高并发缓存与分布式系统应用

讲解在协程模式下如何高效操作 Redis,实现高性能分布式锁、处理缓存击穿/雪崩问题,并提供基于 Hyperf 的分布式事务处理思路。

2026.05.19

448

15

Hyperf 项目部署运维与性能调优手册
Hyperf 项目部署运维与性能调优手册

聚焦 Hyperf 在生产环境的落地,包含 Docker 高效打包、Swoole 配置优化、常见的内存溢出(OOM)问题排查方法以及热更新方案。

2026.05.19

405

15

Hyperf PHP 微服务框架高性能开发实战
Hyperf PHP 微服务框架高性能开发实战

本专题围绕 Hyperf 框架展开,讲解微服务架构设计、协程异步处理、服务注册与发现、RPC 通信及性能优化策略。通过完整项目示例,帮助开发者构建高效、稳定、可扩展的 PHP 分布式服务系统。

2026.06.08

196

23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Hyperf官方中文手册(3.1)
Hyperf官方中文手册(3.1)

共0课时 | 0人学习

Swoole系列-从0到1-新手进阶
Swoole系列-从0到1-新手进阶

共29课时 | 2.3万人学习