Implement integration with statsd

This commit is contained in:
9seconds
2018-07-13 11:38:25 +03:00
parent c64f97082c
commit 5ddf3d77d1
3 changed files with 98 additions and 5 deletions
+16 -4
View File
@@ -14,7 +14,7 @@ import (
var instance *stats
// Start starts new statisitcs server.
func Start(conf *config.Config) {
func Start(conf *config.Config) error {
log := zap.S().Named("stats")
instance = &stats{
@@ -23,6 +23,14 @@ func Start(conf *config.Config) {
mutex: &sync.RWMutex{},
}
if conf.StatsD.Enabled {
client, err := newStatsd(conf)
if err != nil {
return err
}
go client.run()
}
go crashManager()
go connectionManager()
go trafficManager()
@@ -51,7 +59,11 @@ func Start(conf *config.Config) {
}
})
if err := http.ListenAndServe(conf.StatAddr(), nil); err != nil {
log.Fatalw("Stats server has been stopped", "error", err)
}
go func() {
if err := http.ListenAndServe(conf.StatAddr(), nil); err != nil {
log.Fatalw("Stats server has been stopped", "error", err)
}
}()
return nil
}