-
Notifications
You must be signed in to change notification settings - Fork 892
/
Copy pathmodules_test.go
74 lines (65 loc) · 2.1 KB
/
modules_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package exporter
import (
"os"
"strings"
"testing"
"github.com/prometheus/client_golang/prometheus"
)
func TestModules(t *testing.T) {
if os.Getenv("TEST_REDIS_MODULES_URI") == "" {
t.Skipf("TEST_REDIS_MODULES_URI not set - skipping")
}
tsts := []struct {
addr string
inclModulesMetrics bool
wantModulesMetrics bool
}{
{addr: os.Getenv("TEST_REDIS_MODULES_URI"), inclModulesMetrics: true, wantModulesMetrics: true},
{addr: os.Getenv("TEST_REDIS_MODULES_URI"), inclModulesMetrics: false, wantModulesMetrics: false},
{addr: os.Getenv("TEST_REDIS_URI"), inclModulesMetrics: true, wantModulesMetrics: false},
{addr: os.Getenv("TEST_REDIS_URI"), inclModulesMetrics: false, wantModulesMetrics: false},
}
for _, tst := range tsts {
e, _ := NewRedisExporter(tst.addr, Options{Namespace: "test", InclModulesMetrics: tst.inclModulesMetrics})
chM := make(chan prometheus.Metric)
go func() {
e.Collect(chM)
close(chM)
}()
wantedMetrics := map[string]bool{
"module_info": false,
"search_number_of_indexes": false,
"search_used_memory_indexes_bytes": false,
"search_indexing_time_ms_total": false,
"search_global_idle": false,
"search_global_total": false,
"search_collected_bytes": false,
"search_cycles_total": false,
"search_run_ms_total": false,
"search_dialect_1": false,
"search_dialect_2": false,
"search_dialect_3": false,
"search_dialect_4": false,
}
for m := range chM {
for want := range wantedMetrics {
if strings.Contains(m.Desc().String(), want) {
wantedMetrics[want] = true
}
}
}
if tst.wantModulesMetrics {
for want, found := range wantedMetrics {
if !found {
t.Errorf("%s was *not* found in Redis Modules metrics but expected", want)
}
}
} else if !tst.wantModulesMetrics {
for want, found := range wantedMetrics {
if found {
t.Errorf("%s was *found* in Redis Modules metrics but *not* expected", want)
}
}
}
}
}