如何通过HTTP PUT请求使用Grafana监控MockServer状态
针对MockServer的PUT请求状态码监控可行方案
完全可以实现,以下是两种经过验证的落地方案,可直接满足你采集HTTP返回状态码(200/404等)的需求:
方案一:修正Blackbox Exporter配置(零额外依赖,适配主动探测场景)
你之前使用Blackbox Exporter未拿到有效数据,核心原因是Blackbox默认HTTP探针仅发送GET请求,未适配PUT方法的探测逻辑,按以下步骤调整即可:
- 修改Blackbox Exporter配置文件
config.yml,新增专属PUT探测模块:
modules: mockserver_put_probe: prober: http timeout: 5s http: method: PUT headers: Content-Type: application/json # 若PUT接口需要校验请求体,替换为实际业务请求内容,无要求可留空 body: '{}' # 配置为空代表采集所有返回的状态码,不提前做成功/失败判定,方便后续在Grafana按状态码维度拆分统计 valid_status_codes: [] follow_redirects: true
- 在Prometheus抓取规则中,将待监控的MockServer地址关联到上述
mockserver_put_probe模块,Blackbox会自动将探测拿到的HTTP状态码存入probe_http_status_code指标 - 进入Grafana添加面板,直接查询
probe_http_status_code指标,可按实例、状态码维度做趋势图、占比统计,直接拿到你需要的所有状态码数据
方案二:对接MockServer原生Metrics接口(数据覆盖最全,适配全量请求统计场景)
若你使用的MockServer版本为5.11.0及以上,其本身内置Prometheus指标暴露能力,不需要额外构造探测请求:
- 启动MockServer时添加参数
-Dmockserver.metricsPort=1081,开启原生指标采集端口 - 配置Prometheus直接抓取MockServer 1081端口下的
/metrics路径,该路径自带mockserver_response_status_code指标,天然按请求方法、返回状态码、请求路径拆分标签,其中就包含所有PUT请求的实际返回状态码,数据来自MockServer真实处理的请求,比主动探测覆盖范围更全 - 在Grafana中查询该指标时增加筛选条件
method="PUT",即可统计所有PUT请求对应的各状态码分布
配置校验提示
- 配置完成后先在Prometheus原生查询页验证对应指标是否正常上报,确认数据无误后再配置Grafana面板,缩短排查链路
- 使用Blackbox探测前,可先通过
curl -X PUT 你的MockServer接口地址手动验证接口连通性,排除接口本身异常导致的无效数据问题 - 若需要区分不同PUT接口的状态码,可在Prometheus抓取配置中为不同目标添加自定义路径标签,方便Grafana分接口展示数据
内容的提问来源于stack exchange,提问作者Alen Siilivask
相关产品推荐
相关产品推荐

