本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

json-exporter Docker 镜像下载 - 轩辕镜像

json-exporter 镜像详细信息和使用指南

json-exporter 镜像标签列表和版本信息

json-exporter 镜像拉取命令和加速下载

json-exporter 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

json-exporter
prometheuscommunity/json-exporter

json-exporter 镜像详细信息

json-exporter 镜像标签列表

json-exporter 镜像使用说明

json-exporter 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

Prometheus社区提供的JSON数据导出工具,用于从JSON数据源提取指标并转换为Prometheus可抓取格式,支持监控JSON数据相关系统。
3 收藏0 次下载activeprometheuscommunity镜像

json-exporter 镜像详细说明

json-exporter 使用指南

json-exporter 配置说明

json-exporter 官方文档

json_exporter

镜像概述和主要用途

json_exporter 是由 Prometheus 社区开发的一款指标导出工具(exporter),用于通过 JSONPath 表达式从远程 JSON 数据源抓取数据,并将其转换为 Prometheus 可识别的指标格式。该工具支持灵活的模块配置,可针对不同结构的 JSON 数据定义独立的提取规则,是连接 JSON 数据源与 Prometheus 监控体系的关键组件。

核心功能和特性

  • JSONPath 支持:采用 Kubernetes 风格的 JSONPath 语法,可精确定位 JSON 结构中的数据字段
  • 多模块配置:支持定义多个抓取模块,每个模块可针对不同 JSON 数据源配置独立的提取规则
  • HTTP 请求灵活性:支持 HTTP GET 和 POST 方法,POST 请求体可配置为静态内容或模板化内容(使用 Go Template 及 Sprig 库函数)
  • 自定义时间戳:允许将 JSON 中的字段作为指标的 Unix 时间戳(int64 类型)
  • TLS 安全支持:可通过配置启用 HTTPS,保障指标传输安全(详见 exporter-toolkit/web TLS 配置)
  • Prometheus 集成:输出符合 Prometheus 规范的指标,可直接被 Prometheus 抓取和监控

使用场景和适用范围

  • API 监控:从返回 JSON 格式数据的 REST API 服务中提取业务指标(如用户数、订单量等)
  • 文件监控:从本地或远程 JSON 格式的日志文件、配置文件中提取系统或应用状态指标
  • 多源适配:需同时监控多种不同结构 JSON 数据源的场景(通过多模块配置实现差异化处理)
  • 自定义指标:将非标准 JSON 数据源集成到 Prometheus 监控体系的场景

详细使用方法和配置说明

基本使用步骤

  1. 构建并启动 exporter(本地编译方式):

    console
    $ make build
    $ ./json_exporter --config.file examples/config.yml &
    
  2. 启动测试 HTTP 服务器(用于提供 JSON 测试数据):

    console
    $ python3 -m http.server 8000 &
    Serving HTTP on :: port 8000 (http://[::]:8000/) ...
    

模块测试示例

默认模块测试

通过 probe 端点指定 default 模块和目标 JSON 数据源:

console
$ curl "http://localhost:7979/probe?module=default&target=http://localhost:8000/examples/data.json"

返回指标示例:

# HELP example_global_value Example of a top-level global value scrape in the json
# TYPE example_global_value untyped
example_global_value{environment="beta",location="planet-mars"} 1234
# HELP example_timestamped_value_count Example of a timestamped value scrape in the json
# TYPE example_timestamped_value_count untyped
example_timestamped_value_count{environment="beta"} 2
# HELP example_value_active Example of sub-level value scrapes from a json
# TYPE example_value_active untyped
example_value_active{environment="beta",id="id-A"} 1
example_value_active{environment="beta",id="id-C"} 1
...

自定义模块测试

针对不同 JSON 结构使用 animals 模块:

console
$ curl "http://localhost:7979/probe?module=animals&target=http://localhost:8000/examples/animal-data.json"

返回指标示例:

# HELP animal_population Example of top-level lists in a separate module
# TYPE animal_population untyped
animal_population{name="deer",predator="false"} 456
animal_population{name="lion",predator="true"} 123
animal_population{name="pigeon",predator="false"} 789

通过 Prometheus 测试

  1. 启动 Prometheus 容器,挂载包含 json_exporter 抓取配置的 prometheus.yml

    console
    $ docker run --rm -it -p 9090:9090 -v $PWD/examples/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
    
  2. 访问 Prometheus UI

使用自定义时间戳

可将 JSON 中的字段指定为指标的 Unix 时间戳(int64 类型),但需注意:

  • Prometheus 原生的 数据过期机制 将被禁用
  • 可能导致指标数据在 Prometheus 中保留时间超出预期

通过 HTTPS 暴露指标

可通过配置启用 HTTPS,具体 TLS 参数配置详见 exporter-toolkit/web 文档。

发送 HTTP POST 请求体内容

当配置 modules.<module_name>.body 参数时,exporter 将以 POST 方法发送请求,请求体内容由 body.content 定义,支持以下特性:

静态内容示例

yaml
body:
  content: |
    My static information: {"time_diff": "1m25s", "anotherVar": "some value"}

模板化内容示例(启用 Go Template)

需设置 body.templatize: true,可使用 Go Template 及 Sprig 库 函数:

yaml
body:
  content: |
    {"time_diff": "{{ duration `95` }}","anotherVar": "{{ randInt 12 30 }}"}
  templatize: true

结合查询参数的模板示例

Prometheus 发送给 exporter 的查询参数可作为模板变量使用:

yaml
body:
  content: |
    {"time_diff": "{{ duration `95` }}","anotherVar": "{{ .myVal | first }}"}
  templatize: true

请求示例:

console
$ curl "[***]"

实际发送的 POST 请求体:

{"time_diff": "1m35s","anotherVar": "something"}

Docker 部署方案

Docker run 命令示例

console
$ docker run -v $PWD/examples/config.yml:/config.yml quay.io/prometheuscommunity/json-exporter --config.file=/config.yml
  • -v $PWD/examples/config.yml:/config.yml:挂载本地配置文件到容器内
  • --config.file=/config.yml:指定 exporter 使用的配置文件路径

配置参数说明

核心启动参数

  • --config.file:(必选)指定 JSON exporter 的配置文件路径,配置文件需包含模块定义、JSONPath 规则等

模块配置参数(config.yml 中)

  • body.content:POST 请求体内容,支持静态文本或模板字符串
  • body.templatize:布尔值,是否启用模板化处理(默认 false),启用后 body.content 将作为 Go Template 解析

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker加速体验非常流畅,大镜像也能快速完成下载。"