-
Notifications
You must be signed in to change notification settings - Fork 163
Expand file tree
/
Copy pathstats.go
More file actions
52 lines (47 loc) · 1.25 KB
/
stats.go
File metadata and controls
52 lines (47 loc) · 1.25 KB
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
package redislock
import "sync/atomic"
type Status struct {
Success int64
Failed int64
Error int64
Cancel int64
}
type Stats struct {
Obtain Status
Release Status
Refresh Status
Backoff int64
Watchdog int64
WatchdogDone int64
WatchdogTick int64
}
var (
stats Stats
)
func GetStats() Stats {
s := Stats{
Obtain: Status{
Success: atomic.LoadInt64(&stats.Obtain.Success),
Failed: atomic.LoadInt64(&stats.Obtain.Failed),
Error: atomic.LoadInt64(&stats.Obtain.Error),
Cancel: atomic.LoadInt64(&stats.Obtain.Cancel),
},
Release: Status{
Success: atomic.LoadInt64(&stats.Release.Success),
Failed: atomic.LoadInt64(&stats.Release.Failed),
Error: atomic.LoadInt64(&stats.Release.Error),
Cancel: atomic.LoadInt64(&stats.Release.Cancel),
},
Refresh: Status{
Success: atomic.LoadInt64(&stats.Refresh.Success),
Failed: atomic.LoadInt64(&stats.Refresh.Failed),
Error: atomic.LoadInt64(&stats.Refresh.Error),
Cancel: atomic.LoadInt64(&stats.Refresh.Cancel),
},
Backoff: atomic.LoadInt64(&stats.Backoff),
Watchdog: atomic.LoadInt64(&stats.Watchdog),
WatchdogDone: atomic.LoadInt64(&stats.WatchdogDone),
WatchdogTick: atomic.LoadInt64(&stats.WatchdogTick),
}
return s
}