Highly-opinionated (ex-bullshit-free) MTPROTO proxy for Telegram. If you use v1.0 or upgrade broke you proxy, please read the chapter Version 2
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

stats.go 681B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package stats
  2. import (
  3. "context"
  4. "fmt"
  5. "net"
  6. "net/http"
  7. "github.com/9seconds/mtg/config"
  8. )
  9. var Stats Interface
  10. func Init(ctx context.Context) error {
  11. mux := http.NewServeMux()
  12. stats := []Interface{newStatsPrometheus(mux)}
  13. if config.C.StatsdAddr != nil {
  14. stats = append(stats, newStatsStatsd())
  15. }
  16. listener, err := net.Listen("tcp", config.C.StatsBind.String())
  17. if err != nil {
  18. return fmt.Errorf("cannot initialize stats server: %w", err)
  19. }
  20. srv := http.Server{
  21. Handler: mux,
  22. }
  23. go srv.Serve(listener) // nolint: errcheck
  24. go func() {
  25. <-ctx.Done()
  26. srv.Shutdown(context.Background()) // nolint: errcheck
  27. }()
  28. Stats = multiStats(stats)
  29. return nil
  30. }