@@ -6,19 +6,21 @@ import (
6
6
)
7
7
8
8
// SummaryStats is a data structure that carries a summary of observed values.
9
- // The average, minimum, and maximum are reported.
10
9
type SummaryStats struct {
11
- Avg int64 `metric:"avg" type:"gauge"`
12
- Min int64 `metric:"min" type:"gauge"`
13
- Max int64 `metric:"max" type:"gauge"`
10
+ Avg int64 `metric:"avg" type:"gauge"`
11
+ Min int64 `metric:"min" type:"gauge"`
12
+ Max int64 `metric:"max" type:"gauge"`
13
+ Count int64 `metric:"count" type:"counter"`
14
+ Sum int64 `metric:"sum" type:"counter"`
14
15
}
15
16
16
- // DurationStats is a data structure that carries a summary of observed duration
17
- // values. The average, minimum, and maximum are reported.
17
+ // DurationStats is a data structure that carries a summary of observed duration values.
18
18
type DurationStats struct {
19
- Avg time.Duration `metric:"avg" type:"gauge"`
20
- Min time.Duration `metric:"min" type:"gauge"`
21
- Max time.Duration `metric:"max" type:"gauge"`
19
+ Avg time.Duration `metric:"avg" type:"gauge"`
20
+ Min time.Duration `metric:"min" type:"gauge"`
21
+ Max time.Duration `metric:"max" type:"gauge"`
22
+ Count int64 `metric:"count" type:"counter"`
23
+ Sum time.Duration `metric:"sum" type:"counter"`
22
24
}
23
25
24
26
// counter is an atomic incrementing counter which gets reset on snapshot.
@@ -167,17 +169,21 @@ func (s *summary) snapshot() SummaryStats {
167
169
}
168
170
169
171
return SummaryStats {
170
- Avg : avg ,
171
- Min : min ,
172
- Max : max ,
172
+ Avg : avg ,
173
+ Min : min ,
174
+ Max : max ,
175
+ Count : count ,
176
+ Sum : sum ,
173
177
}
174
178
}
175
179
176
180
func (s * summary ) snapshotDuration () DurationStats {
177
181
summary := s .snapshot ()
178
182
return DurationStats {
179
- Avg : time .Duration (summary .Avg ),
180
- Min : time .Duration (summary .Min ),
181
- Max : time .Duration (summary .Max ),
183
+ Avg : time .Duration (summary .Avg ),
184
+ Min : time .Duration (summary .Min ),
185
+ Max : time .Duration (summary .Max ),
186
+ Count : summary .Count ,
187
+ Sum : time .Duration (summary .Sum ),
182
188
}
183
189
}
0 commit comments