Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aos
GitHub Repository: aos/grafana-agent
Path: blob/main/component/prometheus/exporter/statsd/statsd_test.go
4096 views
1
package statsd
2
3
import (
4
"testing"
5
"time"
6
7
"github.com/grafana/agent/pkg/river"
8
"github.com/stretchr/testify/require"
9
)
10
11
var (
12
exampleRiverConfig = `
13
listen_udp = "1010"
14
listen_tcp = "1011"
15
listen_unixgram = "unix"
16
unix_socket_mode = "prom"
17
mapping_config_path = "./testdata/mapTest.yaml"
18
read_buffer = 1
19
cache_size = 2
20
cache_type = "random"
21
event_queue_size = 1000
22
event_flush_interval = "1m"
23
parse_dogstatsd_tags = true
24
parse_influxdb_tags = false
25
parse_librato_tags = false
26
parse_signalfx_tags = false
27
`
28
duration1m, _ = time.ParseDuration("1m")
29
)
30
31
func TestRiverUnmarshal(t *testing.T) {
32
var args Arguments
33
err := river.Unmarshal([]byte(exampleRiverConfig), &args)
34
require.NoError(t, err)
35
36
require.Equal(t, "1010", args.ListenUDP)
37
require.Equal(t, "1011", args.ListenTCP)
38
require.Equal(t, "unix", args.ListenUnixgram)
39
require.Equal(t, "prom", args.UnixSocketMode)
40
require.Equal(t, 1, args.ReadBuffer)
41
require.Equal(t, 2, args.CacheSize)
42
require.Equal(t, "random", args.CacheType)
43
require.Equal(t, 1000, args.EventQueueSize)
44
require.Equal(t, duration1m, args.EventFlushInterval)
45
require.Equal(t, true, args.ParseDogStatsd)
46
require.Equal(t, false, args.ParseInfluxDB)
47
require.Equal(t, false, args.ParseLibrato)
48
require.Equal(t, false, args.ParseSignalFX)
49
require.Equal(t, `./testdata/mapTest.yaml`, args.MappingConfig)
50
}
51
52
func TestConvert(t *testing.T) {
53
var args Arguments
54
err := river.Unmarshal([]byte(exampleRiverConfig), &args)
55
require.NoError(t, err)
56
57
configStatsd, err := args.Convert()
58
require.NoError(t, err)
59
60
require.Equal(t, "1010", args.ListenUDP)
61
require.Equal(t, "1011", args.ListenTCP)
62
require.Equal(t, "unix", args.ListenUnixgram)
63
require.Equal(t, "prom", args.UnixSocketMode)
64
require.Equal(t, 1, args.ReadBuffer)
65
require.Equal(t, 2, args.CacheSize)
66
require.Equal(t, "random", args.CacheType)
67
require.Equal(t, 1000, args.EventQueueSize)
68
require.Equal(t, duration1m, configStatsd.EventFlushInterval)
69
require.Equal(t, true, configStatsd.ParseDogStatsd)
70
require.Equal(t, false, configStatsd.ParseInfluxDB)
71
require.Equal(t, false, configStatsd.ParseLibrato)
72
require.Equal(t, false, configStatsd.ParseSignalFX)
73
}
74
75