11

因为 Prometheus 仅支持文本指标和许多 json 中的工具返回指标(如 Finatra、Spring Boot),所以我创建了一个简单的代理,将 json 转换为文本。因为我想将它用于多个源,所以要从中检索实际指标的目标是通过查询参数设置的。

指标网址如下所示:

/metrics?prefix=finatra&url=http://<ip>:9990/admin/metrics.json

这在浏览器或 curl 中运行良好。然而,在普罗米修斯中的“?” 被编码为“%3F”,因此请求失败:

/metrics%3Fprefix=finatra&url=http://<ip>:9990/admin/metrics.json

如何防止 Prometheus 编码??这是 Prometheus 中的错误吗?我已经尝试使用%or转义\,使用 unicode 等,但仍然没有运气。

4

1 回答 1

17

这种行为是正确的,因为指标路径是一个路径 - 而不是协议、主机和端口上的任意后缀。

您正在寻找params配置选项:

scrape_configs:
  - job_name: 'somename'
    params:
      prefix: ['finatra']
      url: ['http://:9090/admin/metrics.json']
于 2016-10-21T09:18:53.407 回答