因为 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 对 ??
这是普罗米修斯中的错误吗?
我已经尝试使用 %\ 转义,使用 unicode 等,但仍然没有运气。

最佳答案

这种行为是正确的,因为度量路径是一个路径 - 不是协议(protocol)、主机和端口上的任意后缀。

您正在寻找 params 配置选项:

scrape_configs:
  - job_name: 'somename'
    params:
      prefix: ['finatra']
      url: ['http://:9090/admin/metrics.json']

关于prometheus - Prometheus metrics_path 中的问号被编码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40172415/

10-16 06:13