Note
Segment has paused maintenance on this project, but may return it to an active status in the future. Issues and pull requests from external contributors are not being considered, although internal contributions may appear from time to time. The project remains available under its open source license for anyone to use.
Go stats reporting / ticker utility.
View the docs.
package main
import "github.com/segmentio/go-stats"
import "time"
func main() {
s := stats.New()
go func() {
for {
s.IncrBy("messages", 5)
s.Incr("errors")
time.Sleep(50 * time.Millisecond)
}
}()
s.TickEvery(5 * time.Second)
defer s.Stop()
time.Sleep(time.Minute)
}
Outputs the ops/s, since last tick, and since the beginning of time.
stats 2014/07/18 11:24:27 messages 94.00/s tick=470 total=470
stats 2014/07/18 11:24:27 errors 18.80/s tick=94 total=94
stats 2014/07/18 11:24:32 messages 96.98/s tick=485 total=955
stats 2014/07/18 11:24:32 errors 19.40/s tick=97 total=191
stats 2014/07/18 11:24:37 messages 98.99/s tick=495 total=1450
stats 2014/07/18 11:24:37 errors 19.80/s tick=99 total=290
...
MIT