/
config.go
107 lines (88 loc) · 4.81 KB
/
config.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
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
package statsd
import (
"time"
"github.com/spf13/pflag"
"github.com/spf13/viper"
"github.com/taosdata/driver-go/v2/common"
)
type Config struct {
Enable bool
Port int
DB string
User string
Password string
Worker int
GatherInterval time.Duration
Protocol string
MaxTCPConnections int
TCPKeepAlive bool
AllowedPendingMessages int
DeleteCounters bool
DeleteGauges bool
DeleteSets bool
DeleteTimings bool
}
func (c *Config) setValue() {
c.Enable = viper.GetBool("statsd.enable")
c.Port = viper.GetInt("statsd.port")
c.DB = viper.GetString("statsd.db")
c.User = viper.GetString("statsd.user")
c.Password = viper.GetString("statsd.password")
c.Worker = viper.GetInt("statsd.worker")
c.GatherInterval = viper.GetDuration("statsd.gatherInterval")
c.Protocol = viper.GetString("statsd.protocol")
c.MaxTCPConnections = viper.GetInt("statsd.maxTCPConnections")
c.TCPKeepAlive = viper.GetBool("statsd.tcpKeepAlive")
c.AllowedPendingMessages = viper.GetInt("statsd.allowPendingMessages")
c.DeleteCounters = viper.GetBool("statsd.deleteCounters")
c.DeleteGauges = viper.GetBool("statsd.deleteGauges")
c.DeleteSets = viper.GetBool("statsd.deleteSets")
c.DeleteTimings = viper.GetBool("statsd.deleteTimings")
}
func init() {
_ = viper.BindEnv("statsd.enable", "TAOS_ADAPTER_STATSD_ENABLE")
pflag.Bool("statsd.enable", true, `enable statsd. Env "TAOS_ADAPTER_STATSD_ENABLE"`)
viper.SetDefault("statsd.enable", true)
_ = viper.BindEnv("statsd.port", "TAOS_ADAPTER_STATSD_PORT")
pflag.Int("statsd.port", 6044, `statsd server port. Env "TAOS_ADAPTER_STATSD_PORT"`)
viper.SetDefault("statsd.port", 6044)
_ = viper.BindEnv("statsd.db", "TAOS_ADAPTER_STATSD_DB")
pflag.String("statsd.db", "statsd", `statsd db name. Env "TAOS_ADAPTER_STATSD_DB"`)
viper.SetDefault("statsd.db", "statsd")
_ = viper.BindEnv("statsd.user", "TAOS_ADAPTER_STATSD_USER")
pflag.String("statsd.user", common.DefaultUser, `statsd user. Env "TAOS_ADAPTER_STATSD_USER"`)
viper.SetDefault("statsd.user", common.DefaultUser)
_ = viper.BindEnv("statsd.password", "TAOS_ADAPTER_STATSD_PASSWORD")
pflag.String("statsd.password", common.DefaultPassword, `statsd password. Env "TAOS_ADAPTER_STATSD_PASSWORD"`)
viper.SetDefault("statsd.password", common.DefaultPassword)
_ = viper.BindEnv("statsd.worker", "TAOS_ADAPTER_STATSD_WORKER")
pflag.Int("statsd.worker", 10, `statsd write worker. Env "TAOS_ADAPTER_STATSD_WORKER"`)
viper.SetDefault("statsd.worker", 10)
_ = viper.BindEnv("statsd.gatherInterval", "TAOS_ADAPTER_STATSD_GATHER_INTERVAL")
pflag.Duration("statsd.gatherInterval", time.Second*5, `statsd gather interval. Env "TAOS_ADAPTER_STATSD_GATHER_INTERVAL"`)
viper.SetDefault("statsd.gatherInterval", "5s")
_ = viper.BindEnv("statsd.protocol", "TAOS_ADAPTER_STATSD_PROTOCOL")
pflag.String("statsd.protocol", "udp", `statsd protocol [tcp or udp]. Env "TAOS_ADAPTER_STATSD_PROTOCOL"`)
viper.SetDefault("statsd.protocol", "udp")
_ = viper.BindEnv("statsd.maxTCPConnections", "TAOS_ADAPTER_STATSD_MAX_TCP_CONNECTIONS")
pflag.Int("statsd.maxTCPConnections", 250, `statsd max tcp connections. Env "TAOS_ADAPTER_STATSD_MAX_TCP_CONNECTIONS"`)
viper.SetDefault("statsd.maxTCPConnections", 250)
_ = viper.BindEnv("statsd.tcpKeepAlive", "TAOS_ADAPTER_STATSD_TCP_KEEP_ALIVE")
pflag.Bool("statsd.tcpKeepAlive", false, `enable tcp keep alive. Env "TAOS_ADAPTER_STATSD_TCP_KEEP_ALIVE"`)
viper.SetDefault("statsd.tcpKeepAlive", false)
_ = viper.BindEnv("statsd.allowPendingMessages", "TAOS_ADAPTER_STATSD_ALLOW_PENDING_MESSAGES")
pflag.Int("statsd.allowPendingMessages", 50000, `statsd allow pending messages. Env "TAOS_ADAPTER_STATSD_ALLOW_PENDING_MESSAGES"`)
viper.SetDefault("statsd.allowPendingMessages", 50000)
_ = viper.BindEnv("statsd.deleteCounters", "TAOS_ADAPTER_STATSD_DELETE_COUNTERS")
pflag.Bool("statsd.deleteCounters", true, `statsd delete counter cache after gather. Env "TAOS_ADAPTER_STATSD_DELETE_COUNTERS"`)
viper.SetDefault("statsd.deleteCounters", true)
_ = viper.BindEnv("statsd.deleteGauges", "TAOS_ADAPTER_STATSD_DELETE_GAUGES")
pflag.Bool("statsd.deleteGauges", true, `statsd delete gauge cache after gather. Env "TAOS_ADAPTER_STATSD_DELETE_GAUGES"`)
viper.SetDefault("statsd.deleteGauges", true)
_ = viper.BindEnv("statsd.deleteSets", "TAOS_ADAPTER_STATSD_DELETE_SETS")
pflag.Bool("statsd.deleteSets", true, `statsd delete set cache after gather. Env "TAOS_ADAPTER_STATSD_DELETE_SETS"`)
viper.SetDefault("statsd.deleteSets", true)
_ = viper.BindEnv("statsd.deleteTimings", "TAOS_ADAPTER_STATSD_DELETE_TIMINGS")
pflag.Bool("statsd.deleteTimings", true, `statsd delete timing cache after gather. Env "TAOS_ADAPTER_STATSD_DELETE_TIMINGS"`)
viper.SetDefault("statsd.deleteTimings", true)
}