forked from schwartzmx/gremtune
-
Notifications
You must be signed in to change notification settings - Fork 6
/
clientmetrics.go
32 lines (25 loc) · 1.02 KB
/
clientmetrics.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
package gremcos
type connectionUsageKind string
const (
connectionUsageKindWrite connectionUsageKind = "WRITE"
connectionUsageKindRead connectionUsageKind = "READ"
connectionUsageKindPing connectionUsageKind = "PING"
)
func (uk connectionUsageKind) String() string {
switch uk {
case connectionUsageKindWrite, connectionUsageKindRead, connectionUsageKindPing:
return string(uk)
default:
return "UNKNOWN"
}
}
type clientMetrics interface {
// incrementConnectivityErrorCount increments the counter for connectivity errors
incrementConnectivityErrorCount()
// incrementConnectionUsageCount increments the counter for using a connection
incrementConnectionUsageCount(kindOfUsage connectionUsageKind, wasAnError bool)
}
// clientMetricsNop implements clientMetrics and can be used when metrics should be disabled
type clientMetricsNop struct{}
func (c *clientMetricsNop) incrementConnectivityErrorCount() {}
func (c *clientMetricsNop) incrementConnectionUsageCount(_ connectionUsageKind, _ bool) {}