diff --git a/config/config.go b/config/config.go index c72d128c56..a2c124de94 100644 --- a/config/config.go +++ b/config/config.go @@ -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, diff --git a/scrape/scrape.go b/scrape/scrape.go index 90ab344420..26be68c0a9 100644 --- a/scrape/scrape.go +++ b/scrape/scrape.go @@ -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 {