如何通过 Prometheus 分析 Nginx 各路径响应时间分布曲线图?
- 内容介绍
- 文章标签
- 相关推荐
本文共计678个文字,预计阅读时间需要3分钟。
要监控Nginx各个路径的响应时间分布,核心是让Prometheus能够收集到按URI(或location)维度划分的响应时间数据。原生Nginx不支持直接暴露这些指标,需要借助增强型监控模块和相应的配置。以下是简化的实现步骤:
✅ 必须启用 nginx-module-vts 模块
ngx_http_stub_status_module 只提供连接数、请求总数等基础统计,无法按路径拆分响应时间。真正支持路径级响应时间分布的是 nginx-module-vts(Virtual Host Traffic Status),它能暴露 /vts/status/format/prometheus 接口,其中包含:
-
nginx_vts_upstream_response_time_seconds_bucket{host="example.com",path="/api/user",le="0.1",upstream="backend-api"} -
nginx_vts_server_request_seconds_bucket{server="default",path="/login",le="0.05"}
这些带 path 标签的直方图指标,正是绘制分布曲线的基础。
本文共计678个文字,预计阅读时间需要3分钟。
要监控Nginx各个路径的响应时间分布,核心是让Prometheus能够收集到按URI(或location)维度划分的响应时间数据。原生Nginx不支持直接暴露这些指标,需要借助增强型监控模块和相应的配置。以下是简化的实现步骤:
✅ 必须启用 nginx-module-vts 模块
ngx_http_stub_status_module 只提供连接数、请求总数等基础统计,无法按路径拆分响应时间。真正支持路径级响应时间分布的是 nginx-module-vts(Virtual Host Traffic Status),它能暴露 /vts/status/format/prometheus 接口,其中包含:
-
nginx_vts_upstream_response_time_seconds_bucket{host="example.com",path="/api/user",le="0.1",upstream="backend-api"} -
nginx_vts_server_request_seconds_bucket{server="default",path="/login",le="0.05"}
这些带 path 标签的直方图指标,正是绘制分布曲线的基础。

