Browse Source

Merge branch 'v4.5.x'

bergquist 8 years ago
parent
commit
13e8eb6d2e
2 changed files with 45 additions and 10 deletions
  1. 17 6
      pkg/metrics/graphitebridge/graphite.go
  2. 28 4
      pkg/metrics/graphitebridge/graphite_test.go

+ 17 - 6
pkg/metrics/graphitebridge/graphite.go

@@ -54,7 +54,17 @@ const (
 	AbortOnError
 )
 
-var metricCategoryPrefix []string = []string{"proxy_", "api_", "page_", "alerting_", "aws_", "db_", "stat_", "go_", "process_"}
+var metricCategoryPrefix []string = []string{
+	"proxy_",
+	"api_",
+	"page_",
+	"alerting_",
+	"aws_",
+	"db_",
+	"stat_",
+	"go_",
+	"process_"}
+
 var trimMetricPrefix []string = []string{"grafana_"}
 
 // Config defines the Graphite bridge config.
@@ -240,16 +250,17 @@ func writeMetric(buf *bufio.Writer, m model.Metric, mf *dto.MetricFamily) error
 	if !hasName {
 		numLabels = len(m)
 	}
-	for _, v := range metricCategoryPrefix {
+
+	for _, v := range trimMetricPrefix {
 		if strings.HasPrefix(string(metricName), v) {
-			group := strings.Replace(v, "_", " ", 1)
-			metricName = model.LabelValue(strings.Replace(string(metricName), v, group, 1))
+			metricName = model.LabelValue(strings.Replace(string(metricName), v, "", 1))
 		}
 	}
 
-	for _, v := range trimMetricPrefix {
+	for _, v := range metricCategoryPrefix {
 		if strings.HasPrefix(string(metricName), v) {
-			metricName = model.LabelValue(strings.Replace(string(metricName), v, "", 1))
+			group := strings.Replace(v, "_", " ", 1)
+			metricName = model.LabelValue(strings.Replace(string(metricName), v, group, 1))
 		}
 	}
 

+ 28 - 4
pkg/metrics/graphitebridge/graphite_test.go

@@ -128,6 +128,7 @@ func TestWriteSummary(t *testing.T) {
 		prometheus.SummaryOpts{
 			Name:        "name",
 			Help:        "docstring",
+			Namespace:   "grafana",
 			ConstLabels: prometheus.Labels{"constname": "constvalue"},
 			Objectives:  map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001},
 		},
@@ -187,6 +188,7 @@ func TestWriteHistogram(t *testing.T) {
 		prometheus.HistogramOpts{
 			Name:        "name",
 			Help:        "docstring",
+			Namespace:   "grafana",
 			ConstLabels: prometheus.Labels{"constname": "constvalue"},
 			Buckets:     []float64{0.01, 0.02, 0.05, 0.1},
 		},
@@ -248,6 +250,17 @@ func TestCounterVec(t *testing.T) {
 	cntVec := prometheus.NewCounterVec(
 		prometheus.CounterOpts{
 			Name:        "page_response",
+			Namespace:   "grafana",
+			Help:        "docstring",
+			ConstLabels: prometheus.Labels{"constname": "constvalue"},
+		},
+		[]string{"labelname"},
+	)
+
+	apicntVec := prometheus.NewCounterVec(
+		prometheus.CounterOpts{
+			Name:        "api_response",
+			Namespace:   "grafana",
 			Help:        "docstring",
 			ConstLabels: prometheus.Labels{"constname": "constvalue"},
 		},
@@ -256,9 +269,12 @@ func TestCounterVec(t *testing.T) {
 
 	reg := prometheus.NewRegistry()
 	reg.MustRegister(cntVec)
+	reg.MustRegister(apicntVec)
 
 	cntVec.WithLabelValues("val1").Inc()
 	cntVec.WithLabelValues("val2").Inc()
+	apicntVec.WithLabelValues("val1").Inc()
+	apicntVec.WithLabelValues("val2").Inc()
 
 	b, err := NewBridge(&Config{
 		URL:             "localhost:8080",
@@ -281,7 +297,9 @@ func TestCounterVec(t *testing.T) {
 		t.Fatalf("error: %v", err)
 	}
 
-	want := `prefix.page.response.constname.constvalue.labelname.val1.count 1 1477043
+	want := `prefix.api.response.constname.constvalue.labelname.val1.count 1 1477043
+prefix.api.response.constname.constvalue.labelname.val2.count 1 1477043
+prefix.page.response.constname.constvalue.labelname.val1.count 1 1477043
 prefix.page.response.constname.constvalue.labelname.val2.count 1 1477043
 `
 	if got := buf.String(); want != got {
@@ -291,6 +309,8 @@ prefix.page.response.constname.constvalue.labelname.val2.count 1 1477043
 	//next collect
 	cntVec.WithLabelValues("val1").Inc()
 	cntVec.WithLabelValues("val2").Inc()
+	apicntVec.WithLabelValues("val1").Inc()
+	apicntVec.WithLabelValues("val2").Inc()
 
 	mfs, err = reg.Gather()
 	if err != nil {
@@ -303,7 +323,9 @@ prefix.page.response.constname.constvalue.labelname.val2.count 1 1477043
 		t.Fatalf("error: %v", err)
 	}
 
-	want2 := `prefix.page.response.constname.constvalue.labelname.val1.count 1 1477053
+	want2 := `prefix.api.response.constname.constvalue.labelname.val1.count 1 1477053
+prefix.api.response.constname.constvalue.labelname.val2.count 1 1477053
+prefix.page.response.constname.constvalue.labelname.val1.count 1 1477053
 prefix.page.response.constname.constvalue.labelname.val2.count 1 1477053
 `
 	if got := buf.String(); want2 != got {
@@ -316,6 +338,7 @@ func TestCounter(t *testing.T) {
 		prometheus.CounterOpts{
 			Name:        "page_response",
 			Help:        "docstring",
+			Namespace:   "grafana",
 			ConstLabels: prometheus.Labels{"constname": "constvalue"},
 		})
 
@@ -373,7 +396,7 @@ func TestCounter(t *testing.T) {
 func TestTrimGrafanaNamespace(t *testing.T) {
 	cntVec := prometheus.NewCounter(
 		prometheus.CounterOpts{
-			Name:        "grafana_http_request_total",
+			Name:        "http_request_total",
 			Help:        "docstring",
 			ConstLabels: prometheus.Labels{"constname": "constvalue"},
 		})
@@ -413,7 +436,7 @@ func TestTrimGrafanaNamespace(t *testing.T) {
 func TestSkipNanValues(t *testing.T) {
 	cntVec := prometheus.NewSummary(
 		prometheus.SummaryOpts{
-			Name:        "grafana_http_request_total",
+			Name:        "http_request_total",
 			Help:        "docstring",
 			ConstLabels: prometheus.Labels{"constname": "constvalue"},
 		})
@@ -457,6 +480,7 @@ func TestPush(t *testing.T) {
 		prometheus.CounterOpts{
 			Name:        "name",
 			Help:        "docstring",
+			Namespace:   "grafana",
 			ConstLabels: prometheus.Labels{"constname": "constvalue"},
 		},
 		[]string{"labelname"},