Skip to content

Commit ceb95ed

Browse files
authored
Add count/sum to SummaryStats and DurationStats. (#1106)
1 parent b737754 commit ceb95ed

File tree

1 file changed

+21
-15
lines changed

1 file changed

+21
-15
lines changed

stats.go

+21-15
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,21 @@ import (
66
)
77

88
// SummaryStats is a data structure that carries a summary of observed values.
9-
// The average, minimum, and maximum are reported.
109
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"`
1415
}
1516

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.
1818
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"`
2224
}
2325

2426
// counter is an atomic incrementing counter which gets reset on snapshot.
@@ -167,17 +169,21 @@ func (s *summary) snapshot() SummaryStats {
167169
}
168170

169171
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,
173177
}
174178
}
175179

176180
func (s *summary) snapshotDuration() DurationStats {
177181
summary := s.snapshot()
178182
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),
182188
}
183189
}

0 commit comments

Comments
 (0)