在普罗米修斯的HTTP请求中添加自定义标头

时间:2017-06-05 12:42:29

标签: prometheus

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

/api/v1/monitor/find

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

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

但是,如何配置Prometheus添加自定义标题(Accept:application / prometheus)?

2 个答案:

答案 0 :(得分:1)

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

Prometheus也已经有一个指定的mime类型用于擦除,所以你可以使用它。见https://prometheus.io/docs/instrumenting/exposition_formats/

答案 1 :(得分:0)

实际上它不支持当前版本(V2.0 alpha)。

如果您查看主分支中的scrapes.go,那么您可以在请求中看到一些常量标头:

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导出器(我自己的导出器),这是请求标头的屏幕截图

enter image description here