Commit 13e8eb6d by bergquist

Merge branch 'v4.5.x'

parents 3a7ed230 fe3c6ac3
...@@ -54,7 +54,17 @@ const ( ...@@ -54,7 +54,17 @@ const (
AbortOnError 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_"} var trimMetricPrefix []string = []string{"grafana_"}
// Config defines the Graphite bridge config. // Config defines the Graphite bridge config.
...@@ -240,16 +250,17 @@ func writeMetric(buf *bufio.Writer, m model.Metric, mf *dto.MetricFamily) error ...@@ -240,16 +250,17 @@ func writeMetric(buf *bufio.Writer, m model.Metric, mf *dto.MetricFamily) error
if !hasName { if !hasName {
numLabels = len(m) numLabels = len(m)
} }
for _, v := range metricCategoryPrefix {
for _, v := range trimMetricPrefix {
if strings.HasPrefix(string(metricName), v) { if strings.HasPrefix(string(metricName), v) {
group := strings.Replace(v, "_", " ", 1) metricName = model.LabelValue(strings.Replace(string(metricName), v, "", 1))
metricName = model.LabelValue(strings.Replace(string(metricName), v, group, 1))
} }
} }
for _, v := range trimMetricPrefix { for _, v := range metricCategoryPrefix {
if strings.HasPrefix(string(metricName), v) { 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))
} }
} }
......
...@@ -128,6 +128,7 @@ func TestWriteSummary(t *testing.T) { ...@@ -128,6 +128,7 @@ func TestWriteSummary(t *testing.T) {
prometheus.SummaryOpts{ prometheus.SummaryOpts{
Name: "name", Name: "name",
Help: "docstring", Help: "docstring",
Namespace: "grafana",
ConstLabels: prometheus.Labels{"constname": "constvalue"}, ConstLabels: prometheus.Labels{"constname": "constvalue"},
Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001}, 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) { ...@@ -187,6 +188,7 @@ func TestWriteHistogram(t *testing.T) {
prometheus.HistogramOpts{ prometheus.HistogramOpts{
Name: "name", Name: "name",
Help: "docstring", Help: "docstring",
Namespace: "grafana",
ConstLabels: prometheus.Labels{"constname": "constvalue"}, ConstLabels: prometheus.Labels{"constname": "constvalue"},
Buckets: []float64{0.01, 0.02, 0.05, 0.1}, Buckets: []float64{0.01, 0.02, 0.05, 0.1},
}, },
...@@ -248,6 +250,17 @@ func TestCounterVec(t *testing.T) { ...@@ -248,6 +250,17 @@ func TestCounterVec(t *testing.T) {
cntVec := prometheus.NewCounterVec( cntVec := prometheus.NewCounterVec(
prometheus.CounterOpts{ prometheus.CounterOpts{
Name: "page_response", 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", Help: "docstring",
ConstLabels: prometheus.Labels{"constname": "constvalue"}, ConstLabels: prometheus.Labels{"constname": "constvalue"},
}, },
...@@ -256,9 +269,12 @@ func TestCounterVec(t *testing.T) { ...@@ -256,9 +269,12 @@ func TestCounterVec(t *testing.T) {
reg := prometheus.NewRegistry() reg := prometheus.NewRegistry()
reg.MustRegister(cntVec) reg.MustRegister(cntVec)
reg.MustRegister(apicntVec)
cntVec.WithLabelValues("val1").Inc() cntVec.WithLabelValues("val1").Inc()
cntVec.WithLabelValues("val2").Inc() cntVec.WithLabelValues("val2").Inc()
apicntVec.WithLabelValues("val1").Inc()
apicntVec.WithLabelValues("val2").Inc()
b, err := NewBridge(&Config{ b, err := NewBridge(&Config{
URL: "localhost:8080", URL: "localhost:8080",
...@@ -281,7 +297,9 @@ func TestCounterVec(t *testing.T) { ...@@ -281,7 +297,9 @@ func TestCounterVec(t *testing.T) {
t.Fatalf("error: %v", err) 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 prefix.page.response.constname.constvalue.labelname.val2.count 1 1477043
` `
if got := buf.String(); want != got { if got := buf.String(); want != got {
...@@ -291,6 +309,8 @@ prefix.page.response.constname.constvalue.labelname.val2.count 1 1477043 ...@@ -291,6 +309,8 @@ prefix.page.response.constname.constvalue.labelname.val2.count 1 1477043
//next collect //next collect
cntVec.WithLabelValues("val1").Inc() cntVec.WithLabelValues("val1").Inc()
cntVec.WithLabelValues("val2").Inc() cntVec.WithLabelValues("val2").Inc()
apicntVec.WithLabelValues("val1").Inc()
apicntVec.WithLabelValues("val2").Inc()
mfs, err = reg.Gather() mfs, err = reg.Gather()
if err != nil { if err != nil {
...@@ -303,7 +323,9 @@ prefix.page.response.constname.constvalue.labelname.val2.count 1 1477043 ...@@ -303,7 +323,9 @@ prefix.page.response.constname.constvalue.labelname.val2.count 1 1477043
t.Fatalf("error: %v", err) 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 prefix.page.response.constname.constvalue.labelname.val2.count 1 1477053
` `
if got := buf.String(); want2 != got { if got := buf.String(); want2 != got {
...@@ -316,6 +338,7 @@ func TestCounter(t *testing.T) { ...@@ -316,6 +338,7 @@ func TestCounter(t *testing.T) {
prometheus.CounterOpts{ prometheus.CounterOpts{
Name: "page_response", Name: "page_response",
Help: "docstring", Help: "docstring",
Namespace: "grafana",
ConstLabels: prometheus.Labels{"constname": "constvalue"}, ConstLabels: prometheus.Labels{"constname": "constvalue"},
}) })
...@@ -373,7 +396,7 @@ func TestCounter(t *testing.T) { ...@@ -373,7 +396,7 @@ func TestCounter(t *testing.T) {
func TestTrimGrafanaNamespace(t *testing.T) { func TestTrimGrafanaNamespace(t *testing.T) {
cntVec := prometheus.NewCounter( cntVec := prometheus.NewCounter(
prometheus.CounterOpts{ prometheus.CounterOpts{
Name: "grafana_http_request_total", Name: "http_request_total",
Help: "docstring", Help: "docstring",
ConstLabels: prometheus.Labels{"constname": "constvalue"}, ConstLabels: prometheus.Labels{"constname": "constvalue"},
}) })
...@@ -413,7 +436,7 @@ func TestTrimGrafanaNamespace(t *testing.T) { ...@@ -413,7 +436,7 @@ func TestTrimGrafanaNamespace(t *testing.T) {
func TestSkipNanValues(t *testing.T) { func TestSkipNanValues(t *testing.T) {
cntVec := prometheus.NewSummary( cntVec := prometheus.NewSummary(
prometheus.SummaryOpts{ prometheus.SummaryOpts{
Name: "grafana_http_request_total", Name: "http_request_total",
Help: "docstring", Help: "docstring",
ConstLabels: prometheus.Labels{"constname": "constvalue"}, ConstLabels: prometheus.Labels{"constname": "constvalue"},
}) })
...@@ -457,6 +480,7 @@ func TestPush(t *testing.T) { ...@@ -457,6 +480,7 @@ func TestPush(t *testing.T) {
prometheus.CounterOpts{ prometheus.CounterOpts{
Name: "name", Name: "name",
Help: "docstring", Help: "docstring",
Namespace: "grafana",
ConstLabels: prometheus.Labels{"constname": "constvalue"}, ConstLabels: prometheus.Labels{"constname": "constvalue"},
}, },
[]string{"labelname"}, []string{"labelname"},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment