Prometheus metrics_path 中的问号被编码
Question mark in Prometheus metrics_path gets encoded
因为 Prometheus 仅支持文本指标和 json 中的许多工具 return 指标(如 Finatra,Spring Boot),我创建了一个简单的代理来翻译 json 到文本中。因为我想将它用于多个源,所以要从中检索实际指标的目标是通过查询参数设置的。
指标 url 如下所示:
/metrics?prefix=finatra&url=http://<ip>:9990/admin/metrics.json
这在浏览器或 curl 中工作正常。
然而,在普罗米修斯的“?”被编码为“%3F”,因此请求失败:
/metrics%3Fprefix=finatra&url=http://<ip>:9990/admin/metrics.json
如何防止 Prometheus 编码 ??
这是普罗米修斯的一个错误吗?
我已经尝试使用 unicode 等使用 %
或 \
进行转义,但仍然没有成功。
此行为是正确的,因为指标路径是一个路径 - 而不是协议、主机和端口上的任意后缀。
您正在查找 params 配置选项:
scrape_configs:
- job_name: 'somename'
params:
prefix: ['finatra']
url: ['http://:9090/admin/metrics.json']
因为 Prometheus 仅支持文本指标和 json 中的许多工具 return 指标(如 Finatra,Spring Boot),我创建了一个简单的代理来翻译 json 到文本中。因为我想将它用于多个源,所以要从中检索实际指标的目标是通过查询参数设置的。
指标 url 如下所示:
/metrics?prefix=finatra&url=http://<ip>:9990/admin/metrics.json
这在浏览器或 curl 中工作正常。 然而,在普罗米修斯的“?”被编码为“%3F”,因此请求失败:
/metrics%3Fprefix=finatra&url=http://<ip>:9990/admin/metrics.json
如何防止 Prometheus 编码 ??
这是普罗米修斯的一个错误吗?
我已经尝试使用 unicode 等使用 %
或 \
进行转义,但仍然没有成功。
此行为是正确的,因为指标路径是一个路径 - 而不是协议、主机和端口上的任意后缀。
您正在查找 params 配置选项:
scrape_configs:
- job_name: 'somename'
params:
prefix: ['finatra']
url: ['http://:9090/admin/metrics.json']