add new formats to content negotiation

This commit is contained in:
Owen Williams 2024-01-09 13:16:34 -05:00
parent b4dd9d9c46
commit fe21d3b349
2 changed files with 12 additions and 3 deletions

View file

@ -446,22 +446,28 @@ func (s ScrapeProtocol) Validate() error {
var (
PrometheusProto ScrapeProtocol = "PrometheusProto"
PrometheusText0_0_4 ScrapeProtocol = "PrometheusText0.0.4"
PrometheusText1_0_0 ScrapeProtocol = "PrometheusText1.0.0"
OpenMetricsText0_0_1 ScrapeProtocol = "OpenMetricsText0.0.1"
OpenMetricsText1_0_0 ScrapeProtocol = "OpenMetricsText1.0.0"
OpenMetricsText2_0_0 ScrapeProtocol = "OpenMetricsText2.0.0"
UTF8NamesHeader string = "validchars=utf8"
ScrapeProtocolsHeaders = map[ScrapeProtocol]string{
PrometheusProto: "application/vnd.google.protobuf;proto=io.prometheus.client.MetricFamily;encoding=delimited",
PrometheusText0_0_4: "text/plain;version=0.0.4",
PrometheusText1_0_0: "text/plain;version=1_0_0",
OpenMetricsText0_0_1: "application/openmetrics-text;version=0.0.1",
OpenMetricsText1_0_0: "application/openmetrics-text;version=1.0.0",
OpenMetricsText2_0_0: "application/openmetrics-text;version=2.0.0",
}
// DefaultScrapeProtocols is the set of scrape protocols that will be proposed
// to scrape target, ordered by priority.
DefaultScrapeProtocols = []ScrapeProtocol{
OpenMetricsText2_0_0,
OpenMetricsText1_0_0,
OpenMetricsText0_0_1,
PrometheusText1_0_0,
PrometheusText0_0_4,
}
@ -471,6 +477,7 @@ var (
// "native-histograms" and "created-timestamp-zero-ingestion".
DefaultProtoFirstScrapeProtocols = []ScrapeProtocol{
PrometheusProto,
OpenMetricsText2_0_0,
OpenMetricsText1_0_0,
OpenMetricsText0_0_1,
PrometheusText0_0_4,

View file

@ -672,8 +672,8 @@ func acceptHeader(sps []config.ScrapeProtocol, allowUTF8Names bool) string {
weight := len(config.ScrapeProtocolsHeaders) + 1
for _, sp := range sps {
val := config.ScrapeProtocolsHeaders[sp]
if allowUTF8Names {
val += ";"+config.UTF8NamesHeader
if (sp != config.PrometheusProto || sp == config.OpenMetricsText2_0_0 || sp == config.PrometheusText1_0_0) && allowUTF8Names {
val += ";" + config.UTF8NamesHeader
}
val += fmt.Sprintf(";q=0.%d", weight)
vals = append(vals, val)
@ -681,7 +681,9 @@ func acceptHeader(sps []config.ScrapeProtocol, allowUTF8Names bool) string {
}
// Default match anything.
vals = append(vals, fmt.Sprintf("*/*;q=0.%d", weight))
return strings.Join(vals, ",")
ret := strings.Join(vals, ",")
fmt.Println("~~~~~~~~~~~~~~~~~~~accept header", ret)
return ret
}
func acceptEncodingHeader(enableCompression bool) string {