metrics.go 485 B

123456789101112131415161718192021222324252627
  1. package main
  2. import (
  3. "net"
  4. "net/http"
  5. "github.com/docker/go-metrics"
  6. "github.com/sirupsen/logrus"
  7. )
  8. func startMetricsServer(addr string) error {
  9. if err := allocateDaemonPort(addr); err != nil {
  10. return err
  11. }
  12. l, err := net.Listen("tcp", addr)
  13. if err != nil {
  14. return err
  15. }
  16. mux := http.NewServeMux()
  17. mux.Handle("/metrics", metrics.Handler())
  18. go func() {
  19. if err := http.Serve(l, mux); err != nil {
  20. logrus.Errorf("serve metrics api: %s", err)
  21. }
  22. }()
  23. return nil
  24. }