summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/armon/go-metrics/start_test.go
blob: 8b3210c15fe2eb94b9f187d2f533ca493db5ab8d (plain)
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
package metrics

import (
	"reflect"
	"testing"
	"time"
)

func TestDefaultConfig(t *testing.T) {
	conf := DefaultConfig("service")
	if conf.ServiceName != "service" {
		t.Fatalf("Bad name")
	}
	if conf.HostName == "" {
		t.Fatalf("missing hostname")
	}
	if !conf.EnableHostname || !conf.EnableRuntimeMetrics {
		t.Fatalf("expect true")
	}
	if conf.EnableTypePrefix {
		t.Fatalf("expect false")
	}
	if conf.TimerGranularity != time.Millisecond {
		t.Fatalf("bad granularity")
	}
	if conf.ProfileInterval != time.Second {
		t.Fatalf("bad interval")
	}
}

func Test_GlobalMetrics_SetGauge(t *testing.T) {
	m := &MockSink{}
	globalMetrics = &Metrics{sink: m}

	k := []string{"test"}
	v := float32(42.0)
	SetGauge(k, v)

	if !reflect.DeepEqual(m.keys[0], k) {
		t.Fatalf("key not equal")
	}
	if !reflect.DeepEqual(m.vals[0], v) {
		t.Fatalf("val not equal")
	}
}

func Test_GlobalMetrics_EmitKey(t *testing.T) {
	m := &MockSink{}
	globalMetrics = &Metrics{sink: m}

	k := []string{"test"}
	v := float32(42.0)
	EmitKey(k, v)

	if !reflect.DeepEqual(m.keys[0], k) {
		t.Fatalf("key not equal")
	}
	if !reflect.DeepEqual(m.vals[0], v) {
		t.Fatalf("val not equal")
	}
}

func Test_GlobalMetrics_IncrCounter(t *testing.T) {
	m := &MockSink{}
	globalMetrics = &Metrics{sink: m}

	k := []string{"test"}
	v := float32(42.0)
	IncrCounter(k, v)

	if !reflect.DeepEqual(m.keys[0], k) {
		t.Fatalf("key not equal")
	}
	if !reflect.DeepEqual(m.vals[0], v) {
		t.Fatalf("val not equal")
	}
}

func Test_GlobalMetrics_AddSample(t *testing.T) {
	m := &MockSink{}
	globalMetrics = &Metrics{sink: m}

	k := []string{"test"}
	v := float32(42.0)
	AddSample(k, v)

	if !reflect.DeepEqual(m.keys[0], k) {
		t.Fatalf("key not equal")
	}
	if !reflect.DeepEqual(m.vals[0], v) {
		t.Fatalf("val not equal")
	}
}

func Test_GlobalMetrics_MeasureSince(t *testing.T) {
	m := &MockSink{}
	globalMetrics = &Metrics{sink: m}
	globalMetrics.TimerGranularity = time.Millisecond

	k := []string{"test"}
	now := time.Now()
	MeasureSince(k, now)

	if !reflect.DeepEqual(m.keys[0], k) {
		t.Fatalf("key not equal")
	}
	if m.vals[0] > 0.1 {
		t.Fatalf("val too large %v", m.vals[0])
	}
}