TestCollectFromReader
This commit is contained in:
parent
12dc575113
commit
bac94b2bc6
|
@ -0,0 +1,96 @@
|
||||||
|
package exporter
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
|
)
|
||||||
|
|
||||||
|
// metrics is an example of what Unbound returns from a "UBCT1 stats_noreset" command
|
||||||
|
const metrics string = `thread0.num.queries=369
|
||||||
|
thread0.num.queries_ip_ratelimited=0
|
||||||
|
thread0.num.queries_cookie_valid=0
|
||||||
|
thread0.num.queries_cookie_client=0
|
||||||
|
thread0.num.queries_cookie_invalid=0
|
||||||
|
thread0.num.cachehits=333
|
||||||
|
thread0.num.cachemiss=36
|
||||||
|
thread0.num.prefetch=0
|
||||||
|
thread0.num.queries_timed_out=0
|
||||||
|
thread0.query.queue_time_us.max=0
|
||||||
|
thread0.num.expired=0
|
||||||
|
thread0.num.recursivereplies=36
|
||||||
|
thread0.requestlist.avg=0
|
||||||
|
thread0.requestlist.max=0
|
||||||
|
thread0.requestlist.overwritten=0
|
||||||
|
thread0.requestlist.exceeded=0
|
||||||
|
thread0.requestlist.current.all=0
|
||||||
|
thread0.requestlist.current.user=0
|
||||||
|
thread0.recursion.time.avg=0.028036
|
||||||
|
thread0.recursion.time.median=0.0232825
|
||||||
|
thread0.tcpusage=0
|
||||||
|
thread1.num.queries=365
|
||||||
|
thread1.num.queries_ip_ratelimited=0
|
||||||
|
thread1.num.queries_cookie_valid=0
|
||||||
|
thread1.num.queries_cookie_client=0
|
||||||
|
thread1.num.queries_cookie_invalid=0
|
||||||
|
thread1.num.cachehits=340
|
||||||
|
thread1.num.cachemiss=25
|
||||||
|
thread1.num.prefetch=0
|
||||||
|
thread1.num.queries_timed_out=0
|
||||||
|
thread1.query.queue_time_us.max=0
|
||||||
|
thread1.num.expired=0
|
||||||
|
thread1.num.recursivereplies=25
|
||||||
|
thread1.requestlist.avg=0
|
||||||
|
thread1.requestlist.max=0
|
||||||
|
thread1.requestlist.overwritten=0
|
||||||
|
thread1.requestlist.exceeded=0
|
||||||
|
thread1.requestlist.current.all=0
|
||||||
|
thread1.requestlist.current.user=0
|
||||||
|
thread1.recursion.time.avg=0.043104
|
||||||
|
thread1.recursion.time.median=0.0251611
|
||||||
|
thread1.tcpusage=0
|
||||||
|
thread2.num.queries=373
|
||||||
|
thread2.num.queries_ip_ratelimited=0
|
||||||
|
thread2.num.queries_cookie_valid=0
|
||||||
|
thread2.num.queries_cookie_client=0
|
||||||
|
thread2.num.queries_cookie_invalid=0
|
||||||
|
thread2.num.cachehits=330
|
||||||
|
thread2.num.cachemiss=43
|
||||||
|
thread2.num.prefetch=0
|
||||||
|
`
|
||||||
|
|
||||||
|
func TestCollectFromReader(t *testing.T) {
|
||||||
|
// Channel that CollectFrom Re
|
||||||
|
metricsCh := make(chan prometheus.Metric)
|
||||||
|
doneCh := make(chan error)
|
||||||
|
|
||||||
|
go func(ch chan prometheus.Metric) {
|
||||||
|
doneCh <- CollectFromReader(bytes.NewReader([]byte(metrics)), ch)
|
||||||
|
}(metricsCh)
|
||||||
|
|
||||||
|
var metrics []prometheus.Metric
|
||||||
|
|
||||||
|
L:
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case metric, ok := <-metricsCh:
|
||||||
|
if !ok {
|
||||||
|
t.Fatal("collector channel unexpectedly closed")
|
||||||
|
}
|
||||||
|
metrics = append(metrics, metric)
|
||||||
|
case err := <-doneCh:
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Failed to CollectFromReader: %v", err)
|
||||||
|
}
|
||||||
|
break L
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
for _, metric := range metrics {
|
||||||
|
fmt.Printf("%v\n", metric.Desc())
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue