You need to enable JavaScript to run this app. 如何在Prometheus中实现对JSON格式接口数据的持续轮询采集
优惠活动
大模型
产品
解决方案
定价
更多

如何在Prometheus中实现对JSON格式接口数据的持续轮询采集

实现方案总览

Prometheus默认仅支持抓取application/openmetrics-text或text/plain格式的指标数据,你现有的返回JSON结构的接口无法直接被识别,你可以从以下两种方案中选适合自己的实现:


方案1:使用官方json_exporter(无代码改造成本,适合新手)

这是Prometheus官方维护的通用JSON转指标工具,不需要修改现有API的业务代码,仅通过配置就能完成转换。

  • 第一步:下载对应系统的json_exporter二进制包,解压后即可直接使用
  • 第二步:编写映射配置文件config.yml,把JSON字段对应到Prometheus指标,参考配置如下:
metrics:
- name: database_disk_reads_total
  path: "{.dskreads}"
  help: "数据库累计磁盘读取次数"
  type: counter
- name: database_buffer_reads_total
  path: "{.bufreads}"
  help: "数据库累计缓冲区读取次数"
  type: counter
# 剩余所有JSON字段都可以按照上面的格式依次添加,type根据字段属性选counter(持续递增的统计值)或gauge(可上下浮动的瞬时值)即可
  • 第三步:启动json_exporter,执行命令 ./json_exporter --config.file config.yml,服务默认监听7979端口
  • 第四步:配置Prometheus采集任务,在prometheus.yml的scrape_configs节点下新增如下配置:
scrape_configs:
  - job_name: 'database_metrics'
    scrape_interval: 15s # 可按需调整轮询间隔
    metrics_path: /probe
    params:
      target: ['你的现有JSON接口的完整访问地址']
    static_configs:
      - targets: ['json_exporter所在机器的IP:7979']

配置完成后可以先访问http://<json_exporter地址>:7979/probe?target=<你的API地址>验证返回指标是否正常,确认没问题后重启Prometheus即可开始采集数据。


方案2:修改现有API原生暴露Prometheus指标(性能最优)

如果你有权限修改现有API的代码,更推荐该方案,不需要额外部署中间组件,性能损耗更低。

  • 给现有API引入对应编程语言的Prometheus官方SDK,比如Go用prometheus/client_golang、Python用prometheus-client、Java用simpleclient
  • 把查询数据库得到的每个字段值,对应赋值给Prometheus的Counter或Gauge类型指标
  • 新增一个/metrics接口,按照Prometheus要求的格式返回所有指标
  • 直接在Prometheus的抓取配置中添加对这个/metrics接口的采集规则即可

可视化展示

数据正常采集到Prometheus之后,用Grafana对接Prometheus数据源,新建Dashboard,按需选择指标生成折线图、仪表盘、数值卡片等可视化面板即可,还支持自定义时间范围、阈值告警规则。

内容的提问来源于stack exchange,提问作者Shubham kapoor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 17:06:04