FILE / ScuroNeko/mtg

stats/stats.go

Исходный файл и его история в репозитории.
FILE 87de28636a983d7e8c920205ae05a9914e24a68b
Files
mtg/stats/stats.go
T

42 lines
681 B
Go

package stats
import (
"context"
"fmt"
"net"
"net/http"
"github.com/9seconds/mtg/config"
)
var Stats Interface
func Init(ctx context.Context) error {
mux := http.NewServeMux()
stats := []Interface{newStatsPrometheus(mux)}
if config.C.StatsdAddr != nil {
stats = append(stats, newStatsStatsd())
}
listener, err := net.Listen("tcp", config.C.StatsBind.String())
if err != nil {
return fmt.Errorf("cannot initialize stats server: %w", err)
}
srv := http.Server{
Handler: mux,
}
go srv.Serve(listener) // nolint: errcheck
go func() {
<-ctx.Done()
srv.Shutdown(context.Background()) // nolint: errcheck
}()
Stats = multiStats(stats)
return nil
}