Skip to content

Commit 77d0935

Browse files
authored
Merge pull request #1974 from mrueg/openmetrics
Set OpenMetrics content header
2 parents 5ec099b + 49af6b3 commit 77d0935

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

pkg/metricshandler/metrics_handler.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ import (
2727
"strings"
2828
"sync"
2929

30+
"github.com/prometheus/common/expfmt"
31+
3032
appsv1 "k8s.io/api/apps/v1"
3133
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3234
"k8s.io/apimachinery/pkg/fields"
@@ -183,7 +185,9 @@ func (m *MetricsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
183185
resHeader := w.Header()
184186
var writer io.Writer = w
185187

186-
resHeader.Set("Content-Type", `text/plain; version=`+"0.0.4")
188+
contentType := expfmt.NegotiateIncludingOpenMetrics(r.Header)
189+
190+
resHeader.Set("Content-Type", string(contentType))
187191

188192
if m.enableGZIPEncoding {
189193
// Gzip response if requested. Taken from
@@ -206,6 +210,11 @@ func (m *MetricsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
206210
}
207211
}
208212

213+
// If we send openmetrics, we need to include a EOF directive
214+
if contentType == expfmt.FmtOpenMetrics {
215+
w.Write([]byte("# EOF\n"))
216+
}
217+
209218
// In case we gzipped the response, we have to close the writer.
210219
if closer, ok := writer.(io.Closer); ok {
211220
err := closer.Close()

0 commit comments

Comments
 (0)