在 prometheus 的 HTTP 请求中添加自定义 header
Adding custom header in HTTP request of prometheus
Prometheus 发送 HTTP 请求以获取监控值。我的自定义导出支持各种客户端(以监视系统状态)。有一个通用的 REST API 来获取监视器列表:
/api/v1/monitor/find
输出结果取决于header中的Accept属性。默认接受值为 application/json.
我将新的 mime 类型添加到 API 中以支持 prometheus(例如 application/prometheus)。
但是,如何配置 Prometheus 以添加自定义 header(接受:application/prometheus)?
Prometheus 不支持设置 headers,因为这会导致用户创建难以调试的端点。您可以使用单独的端点或传递参数。
Prometheus 也已经为抓取指定了 mime 类型,因此您可以使用它。参见 https://prometheus.io/docs/instrumenting/exposition_formats/
实际上当前版本(V2.0 alpha)不支持。
如果你看一下 master 分支中的 scrapes.go,那么你可以看到一些常量 header 附加到请求中:
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-types:
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 上的 None 个工件添加了此 header,因此您必须从源代码(主分支)构建。
我运行一个PHP出口商(我自己的出口商),这里是请求的屏幕截图header
Prometheus 发送 HTTP 请求以获取监控值。我的自定义导出支持各种客户端(以监视系统状态)。有一个通用的 REST API 来获取监视器列表:
/api/v1/monitor/find
输出结果取决于header中的Accept属性。默认接受值为 application/json.
我将新的 mime 类型添加到 API 中以支持 prometheus(例如 application/prometheus)。
但是,如何配置 Prometheus 以添加自定义 header(接受:application/prometheus)?
Prometheus 不支持设置 headers,因为这会导致用户创建难以调试的端点。您可以使用单独的端点或传递参数。
Prometheus 也已经为抓取指定了 mime 类型,因此您可以使用它。参见 https://prometheus.io/docs/instrumenting/exposition_formats/
实际上当前版本(V2.0 alpha)不支持。
如果你看一下 master 分支中的 scrapes.go,那么你可以看到一些常量 header 附加到请求中:
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-types:
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 上的 None 个工件添加了此 header,因此您必须从源代码(主分支)构建。
我运行一个PHP出口商(我自己的出口商),这里是请求的屏幕截图header