webman无内置可视化监控面板,需组合php start.php status(瞬时快照)、自定义/metrics指标暴露及prometheus+grafana实现;webman/admin是唯一开箱即用的运维后台,非性能监控面板。

Webman 没有内置的 Web 可视化监控面板,所谓“实时查看服务器运行状态”,必须组合使用命令行工具、自定义指标暴露、外部可视化系统三者才能落地。 直接访问一个 URL 就看到带折线图的面板?不存在。你看到的 php start.php status 输出只是瞬时快照,不存历史、不可聚合、不支持 HTTP 接口,更不能直接喂给 Grafana。
php start.php status 能看什么、不能看什么
这是最常被误用的“监控入口”。它输出的是 Workerman 底层采集的当前时刻进程快照,包括:connections、mem_usage、total_request、send_fail、recv_fail 等字段。
- 它不记录时间序列 —— 无法画趋势图,没法做同比/环比分析
- 输出含 ANSI 颜色码(如
\033[32m),程序解析极易出错 - 没有身份验证,不能直接暴露在公网或内网前端页面上
- 不包含业务指标:HTTP 耗时、数据库查询次数、缓存命中率、队列积压量等全都没有
webman/admin 是唯一开箱即用的 Web 运维面板
它不是“性能监控面板”,而是面向运维人员的管理后台,提供数据库配置、定时任务、日志检索、插件管理等功能。安装后访问 http://127.0.0.1:8787/app/admin 即可使用,但需满足硬性前提:
- PHP ≥ 8.1,且未禁用
proc_open、pcntl_fork、shell_exec - 已启用
fileinfo、gd、pdo_mysql(若用 MySQL)或redis(若用 Redis)扩展 - Webman 版本 ≥ 1.4(推荐 ≥ 2.0),安装命令按版本区分:
composer require -W webman/admin ~1.0或composer require -W webman/admin ~2.0 - 安装后必须执行
php start.php stop && php start.php start -d才能加载路由
要真正实现“实时性能监控”,得走 Prometheus + Grafana 路线
核心是让 Webman 暴露符合 Prometheus 文本格式的 /metrics 接口。这不是加个中间件就能完事,关键点在于指标注册和生命周期管理:
- 用
composer require prometheus/client_php安装客户端,不要手动写格式 —— 容易出错且不兼容新版本 -
CollectorRegistry必须全局单例复用;每次请求都 new 一个会导致指标重置、时间序列断裂 - 业务耗时类指标建议用
Gauge类型(如webman_http_request_duration_seconds),计数类用Counter(如webman_http_requests_total) - 在全局中间件(如
app/middleware/RequestLog.php)的after钩子中调用observe()或inc(),确保请求结束才上报 -
/metrics控制器返回内容必须设Content-Type: text/plain; version=0.0.4,否则 Prometheus 抓取失败
Monitor 进程 ≠ 监控面板,它只干两件事
app/process/Monitor.php 是个守护进程,职责非常窄:
- 文件变更检测:扫描
monitorDir下的php、js、json等扩展名文件,mtime 变了就触发 reload - 内存超限保护:每 60 秒读一次
/proc/$pid/status中的VmRSS,超memory_limit就发SIGINT重启 Worker - 它不采集任何可观测性指标,也不暴露 HTTP 接口,更不会把数据推给外部系统
- 想靠它实现“面板”,等于拿灭火器当温度计用 —— 工具错配
真要搭监控,别绕弯:命令行查状态用 status 和 connections;长期趋势和告警必须走 /metrics + Prometheus + Grafana;运维操作统一走 webman/admin。三者边界清晰,混用只会增加维护成本。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











