@@ -11,7 +11,7 @@ import (
11
11
"sync"
12
12
)
13
13
14
- func writeErrors (curTs int64 , met stat , series graphite.Response , debug bool , errs * []string ) {
14
+ func writeErrors (curTs int64 , met stat , series * graphite.Response , debug bool , errs * []string ) {
15
15
if len (* errs ) != 0 && debug {
16
16
f , err := os .Create (fmt .Sprintf ("errors-%v-%d" , met .def .Name , curTs ))
17
17
if err != nil {
@@ -20,32 +20,32 @@ func writeErrors(curTs int64, met stat, series graphite.Response, debug bool, er
20
20
defer f .Close ()
21
21
w := bufio .NewWriter (f )
22
22
for _ , e := range * errs {
23
- _ , err = w .WriteString (e + " \n " )
23
+ _ , err = w .WriteString (fmt . Sprintf ( "ERROR %s \n ", e ) )
24
24
if err != nil {
25
25
panic (err )
26
26
}
27
27
}
28
28
w .WriteString ("graphite response:\n " )
29
- for _ , serie := range series {
29
+ for _ , serie := range * series {
30
30
w .WriteString (serie .Target )
31
31
for _ , p := range serie .Datapoints {
32
- w .WriteString (fmt .Sprintf ("%s:%s\n " , p [0 ], p [1 ]))
32
+ w .WriteString (fmt .Sprintf ("%s:%s\n " , p [1 ], p [0 ]))
33
33
}
34
34
}
35
35
w .Flush ()
36
36
}
37
37
for _ , e := range * errs {
38
- fmt .Println (e )
38
+ fmt .Println (fmt . Sprintf ( "ERROR %d %s" , curTs , e ) )
39
39
}
40
40
}
41
41
42
42
func test (wg * sync.WaitGroup , curTs int64 , met stat , host string , debug bool ) {
43
43
defer wg .Done ()
44
44
var series graphite.Response
45
45
errs := make ([]string , 0 )
46
- defer writeErrors (curTs , met , series , debug , & errs )
46
+ defer writeErrors (curTs , met , & series , debug , & errs )
47
47
e := func (str string , pieces ... interface {}) {
48
- errs = append (errs , "ERROR: " + fmt .Sprintf (str , pieces ... ))
48
+ errs = append (errs , fmt .Sprintf (str , pieces ... ))
49
49
}
50
50
51
51
g := graphite.HostHeader {Host : "http://" + host + "/render" , Header : http.Header {}}
@@ -54,32 +54,32 @@ func test(wg *sync.WaitGroup, curTs int64, met stat, host string, debug bool) {
54
54
q := graphite.Request {Targets : []string {met .def .Name }}
55
55
series , err := g .Query (& q )
56
56
if err != nil {
57
- e ("querying graphite: %q " , err )
57
+ e ("querying graphite: %v " , err )
58
58
return
59
59
}
60
60
for _ , serie := range series {
61
61
if met .def .Name != serie .Target {
62
- e ("name %q != target name%q " , met .def .Name , serie .Target )
62
+ e ("%v : bad target name %v " , met .def .Name , serie .Target )
63
63
}
64
64
65
65
lastTs := int64 (0 )
66
66
oldestNull := int64 (math .MaxInt64 )
67
67
if len (serie .Datapoints ) == 0 {
68
- e ("series for %q contains no points!" , met .def .Name )
68
+ e ("%v : series contains no points!" , met .def .Name )
69
69
}
70
70
for _ , p := range serie .Datapoints {
71
71
ts , err := p [1 ].Int64 ()
72
72
if err != nil {
73
- e ("could not parse timestamp %q" , p )
73
+ e ("%v : could not parse timestamp %q" , met . def . Name , p )
74
74
}
75
75
if ts <= lastTs {
76
- e ("timestamp %v must be bigger than last %v" , ts , lastTs )
76
+ e ("%v timestamp %v must be bigger than last %v" , met . def . Name , ts , lastTs )
77
77
}
78
78
if lastTs == 0 && (ts < curTs - 24 * 3600 - 60 || ts > curTs - 24 * 3600 + 60 ) {
79
- e ("first point %q should have been about 24h ago, i.e. around %d" , p , curTs - 24 * 3600 )
79
+ e ("%v first point %q should have been about 24h ago, i.e. around %d" , met . def . Name , p , curTs - 24 * 3600 )
80
80
}
81
81
if lastTs != 0 && ts != lastTs + int64 (met .def .Interval ) {
82
- e ("point %v is not interval %v apart from previous point" , p , met .def .Interval )
82
+ e ("%v point %v is not interval %v apart from previous point" , met . def . Name , p , met .def .Interval )
83
83
}
84
84
_ , err = p [0 ].Float64 ()
85
85
if err != nil && ts > met .firstSeen {
@@ -88,7 +88,7 @@ func test(wg *sync.WaitGroup, curTs int64, met stat, host string, debug bool) {
88
88
}
89
89
if ts < curTs - 30 {
90
90
nullPoints .Inc (1 )
91
- e ("%v at %d : seeing a null for ts %v" , met .def .Name , curTs , p [1 ])
91
+ e ("%v : seeing a null for ts %v" , met .def .Name , p [1 ])
92
92
}
93
93
} else {
94
94
// we saw a valid point, so reset oldestNull.
@@ -97,7 +97,7 @@ func test(wg *sync.WaitGroup, curTs int64, met stat, host string, debug bool) {
97
97
lastTs = ts
98
98
}
99
99
if lastTs < curTs - int64 (met .def .Interval ) || lastTs > curTs + int64 (met .def .Interval ) {
100
- e ("last point at %d is out of range. should have been around %d (now) +- %d" , lastTs , curTs , met .def .Interval )
100
+ e ("%v : last point at %d is out of range. should have been around %d (now) +- %d" , met . def . Name , lastTs , curTs , met .def .Interval )
101
101
}
102
102
// if there was no null, we treat the point after the last one we had as null
103
103
if oldestNull == math .MaxInt64 {
0 commit comments