prometheus.go 749 B

12345678910111213141516171819202122232425262728293031
  1. package httpservers
  2. import (
  3. "net/http"
  4. config "github.com/OliveTin/OliveTin/internal/config"
  5. "github.com/prometheus/client_golang/prometheus"
  6. "github.com/prometheus/client_golang/prometheus/collectors"
  7. "github.com/prometheus/client_golang/prometheus/promhttp"
  8. log "github.com/sirupsen/logrus"
  9. )
  10. func StartPrometheus(cfg *config.Config) {
  11. if !cfg.Prometheus.Enabled {
  12. return
  13. }
  14. if !cfg.Prometheus.DefaultGoMetrics {
  15. prometheus.Unregister(collectors.NewGoCollector())
  16. }
  17. http.Handle("/", promhttp.Handler())
  18. err := http.ListenAndServe(cfg.ListenAddressPrometheus, nil)
  19. if err != nil {
  20. log.WithFields(log.Fields{
  21. "address": cfg.ListenAddressPrometheus,
  22. "error": err,
  23. }).Warnf("Failed to start Prometheus server")
  24. }
  25. }