在prometheus的HTTP请求中添加自定义头

在prometheus的HTTP请求中添加自定义头,prometheus,Prometheus,普罗米修斯发送HTTP请求以获取监视器值。我的自定义导出支持各种客户端(用于监视系统状态)。有一个通用的REST API来获取监视器列表: /api/v1/monitor/find 输出结果取决于标头中的Accept属性。默认接受值是application/json 我在API中添加了新的mime类型以支持prometheus(例如application/prometheus) 但是,如何配置Prometheus以添加自定义头(接受:application/Prometheus)?Promet

普罗米修斯发送HTTP请求以获取监视器值。我的自定义导出支持各种客户端(用于监视系统状态)。有一个通用的REST API来获取监视器列表:

/api/v1/monitor/find
输出结果取决于标头中的Accept属性。默认接受值是application/json

我在API中添加了新的mime类型以支持prometheus(例如application/prometheus)


但是,如何配置Prometheus以添加自定义头(接受:application/Prometheus)?

Prometheus不支持设置头,因为这会导致用户创建难以调试的端点。可以使用单独的端点,也可以传递参数


普罗米修斯也已经为scrapes指定了mime类型,所以您可以使用它。请参见

实际上,当前版本(V2.0 alpha)不支持该功能

如果查看主分支中的,则可以看到一些附加到请求中的常量头:

req.Header.Add("Accept", acceptHeader)
req.Header.Set("User-Agent", userAgentHeader)
req.Header.Set("X-Prometheus-Scrape-Timeout-Seconds", fmt.Sprintf("%f", s.timeout.Seconds()))
因此,您可以支持一些基本的mime类型:

application/vnd.google.protobuf;proto=io.prometheus.client.MetricFamily;encoding=delimited;q=0.7,text/plain;version=0.0.4;q=0.3,*/*;q=0.1
premetheus.io上没有任何工件添加了此头,因此您必须从源代码(主分支)构建

我运行一个PHP导出器(我自己的导出器),下面是请求头的屏幕截图


我知道,可以设置参数。但我在找头球。