中转服务监控面板Prometheus+Grafana指标模板
中转服务如果只靠人工盯日志,出问题很难第一时间发现。
用 Prometheus 抓取请求指标、再用 Grafana 面板可视化,是目前比较主流的监控方式。
本文会教你零基础搭建中转服务监控面板,涉及指标采集、Prometheus 配置、Grafana 模板导入和验证方法。
监控中转服务应该采集哪些指标
中转服务的核心任务是转发上游请求,监控重点要放在流量、稳定性和响应速度上。
建议优先采集这五类指标:
- 请求速率:单位时间内处理的请求数,反映整体流量波动。
- 错误率:5xx 或 4xx 请求占比,异常时能快速定位故障。
- 延迟:请求处理耗时,重点关注 P95 和 P99,避免平均延迟掩盖长尾问题。
- 上游耗时:中转服务转发到上游 API 的耗时,判断瓶颈在中转层还是上游。
- 并发连接数:当前活跃连接数,接近上限时容易触发超时或拒绝。
如果中转服务基于 Nginx,可以使用 nginx-vts-exporter 暴露这些指标;
如果是自研应用,先确认是否提供 /metrics 接口,没有的话需要用客户端库自定义暴露。
Prometheus 抓取配置:让指标先能采到
假设你已经装好 Prometheus,下面要做的是把中转服务的指标地址加入抓取任务。
编辑 Prometheus 主配置 prometheus.yml,在 scrape_configs 下新增一个 job:
scrape_configs:
- job_name: 'transit-service'
static_configs:
- targets: ['127.0.0.1:9113']
这里 9113 是 nginx-vts-exporter 的默认端口,如果你用的是其他 exporter 或应用自带 metrics 端口,改成实际端口即可。
改完后执行 curl http://127.0.0.1:9113/metrics 确认能返回指标文本,再重启 Prometheus 或发送 SIGHUP 让它重载配置。
抓取间隔建议设为 15s 或 30s,不要低于 5s,否则对中转服务本身会带来额外压力。
Grafana 面板导入与手动配置
打开 Grafana,
先添加 Prometheus 数据源:Configuration → Data sources → Add data source → 选择 Prometheus,
填写 Prometheus 访问地址(如 http:),
//localhost:
9090
保存并测试。
下一步导入面板模板。
在 Dashboards → Import 页面,可以输入模板 ID 或上传 JSON。不建议直接套用任意模板,因为各 exporter 的指标名和标签不一定一致。
优先在 Grafana 官方模板库搜索 nginx-vts 或 reverse proxy 关键词,选择兼容当前数据源的版本。
如果没有现成模板,手动创建面板也很方便。
新建 Dashboard 后添加 Panel,使用 Edit 模式输入 PromQL 查询,下面是几个常用的表达式:
- 请求速率:
sum(rate(nginx_vts_server_requests_total[5m])) - 5xx 错误率:
sum(rate(nginx_vts_server_requests_total{status=~"5.."}[5m])) / sum(rate(nginx_vts_server_requests_total[5m])) - 活跃连接数:
nginx_vts_server_connections_active
注意:不同版本的 exporter 指标名可能略有差异,写查询前先在 Prometheus Graph 页确认实际指标名。
验证面板是否正常工作
配置完成后按下面顺序检查:
- 在 Prometheus 的
Status→Targets页面,确认 job 状态为UP。 - 在 Prometheus Graph 页执行
up{job="transit-service"},返回1表示实例在线。 - 在 Grafana Panel 上连续刷新,观察数据是否随时间增长。
- 手动制造一次错误请求(比如访问不存在的路径),看错误率指标是否上升。
如果数据没有出现,优先检查抓取地址是否通、目标端口是否被防火墙拦截,以及 Prometheus 日志中的抓取错误。
避坑与常见问题
- 指标名不匹配:很多模板是给通用 Nginx 设计的,和中转场景并不完全对应。导入后一定要核对每个 Panel 的查询语句,按实际指标名调整。
- 模板变量不一致:导入模板时如果提示选择
job或instance变量,必须和你在prometheus.yml里定义的名称一致,否则面板会显示为空。 - 忘记更新抓取配置:新增 exporter 后只重启 Grafana 是没用的,必须确认 Prometheus 已经拉取到新 job 的指标。
- 延迟指标计算偏差:如果使用 Histogram 类型指标,要确认
le标签对应的分位数计算方式,直接取summary的quantile更简单。
如果你正在处理中转服务监控面板的指标模板,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。
监控面板跑通后,后续可以再叠加告警规则,比如错误率超过阈值时通过钉钉或邮件通知,形成完整的运维闭环。