mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Merge branch 'v4.5.x'
This commit is contained in:
commit
915412754c
@ -20,6 +20,7 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
"math"
|
||||||
"net"
|
"net"
|
||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
@ -208,6 +209,10 @@ func (b *Bridge) writeMetrics(w io.Writer, mfs []*dto.MetricFamily, prefix strin
|
|||||||
|
|
||||||
buf := bufio.NewWriter(w)
|
buf := bufio.NewWriter(w)
|
||||||
for _, s := range vec {
|
for _, s := range vec {
|
||||||
|
if math.IsNaN(float64(s.Value)) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
if err := writePrefix(buf, prefix); err != nil {
|
if err := writePrefix(buf, prefix); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -357,7 +362,7 @@ func replaceInvalidRune(c rune) rune {
|
|||||||
if c == ' ' {
|
if c == ' ' {
|
||||||
return '.'
|
return '.'
|
||||||
}
|
}
|
||||||
if !((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '_' || c == ':' || (c >= '0' && c <= '9')) {
|
if !((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '-' || c == '_' || c == ':' || (c >= '0' && c <= '9')) {
|
||||||
return '_'
|
return '_'
|
||||||
}
|
}
|
||||||
return c
|
return c
|
||||||
|
@ -410,6 +410,47 @@ func TestTrimGrafanaNamespace(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSkipNanValues(t *testing.T) {
|
||||||
|
cntVec := prometheus.NewSummary(
|
||||||
|
prometheus.SummaryOpts{
|
||||||
|
Name: "grafana_http_request_total",
|
||||||
|
Help: "docstring",
|
||||||
|
ConstLabels: prometheus.Labels{"constname": "constvalue"},
|
||||||
|
})
|
||||||
|
|
||||||
|
reg := prometheus.NewRegistry()
|
||||||
|
reg.MustRegister(cntVec)
|
||||||
|
|
||||||
|
b, err := NewBridge(&Config{
|
||||||
|
URL: "localhost:8080",
|
||||||
|
Gatherer: reg,
|
||||||
|
CountersAsDelta: true,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("error creating bridge: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// first collect
|
||||||
|
mfs, err := reg.Gather()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("error: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
var buf bytes.Buffer
|
||||||
|
err = b.writeMetrics(&buf, mfs, "prefix.", model.Time(1477043083))
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("error: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
want := `prefix.http_request_total_sum.constname.constvalue 0 1477043
|
||||||
|
prefix.http_request_total_count.constname.constvalue.count 0 1477043
|
||||||
|
`
|
||||||
|
|
||||||
|
if got := buf.String(); want != got {
|
||||||
|
t.Fatalf("wanted \n%s\n, got \n%s\n", want, got)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestPush(t *testing.T) {
|
func TestPush(t *testing.T) {
|
||||||
reg := prometheus.NewRegistry()
|
reg := prometheus.NewRegistry()
|
||||||
cntVec := prometheus.NewCounterVec(
|
cntVec := prometheus.NewCounterVec(
|
||||||
|
Loading…
Reference in New Issue
Block a user