Browse Source

Remove "url" from RSS metric

It's not really that useful
hs/remove-rss-url-metric
Will Hunt 6 years ago
committed by GitHub
parent
commit
149d66f995
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 12
      src/github.com/matrix-org/go-neb/services/rssbot/rssbot.go

12
src/github.com/matrix-org/go-neb/services/rssbot/rssbot.go

@ -30,7 +30,7 @@ var (
pollCounter = prometheus.NewCounterVec(prometheus.CounterOpts{ pollCounter = prometheus.NewCounterVec(prometheus.CounterOpts{
Name: "goneb_rss_polls_total", Name: "goneb_rss_polls_total",
Help: "The number of feed polls from RSS services", Help: "The number of feed polls from RSS services",
}, []string{"url", "http_status"})
}, []string{"http_status"})
) )
const minPollingIntervalSeconds = 60 * 5 // 5 min (News feeds can be genuinely spammy) const minPollingIntervalSeconds = 60 * 5 // 5 min (News feeds can be genuinely spammy)
@ -200,21 +200,15 @@ func (s *Service) OnPoll(cli *gomatrix.Client) time.Time {
} }
func incrementMetrics(urlStr string, err error) { func incrementMetrics(urlStr string, err error) {
// extract domain part of RSS feed URL to get coarser (more useful) statistics
domain := urlStr
u, urlErr := url.Parse(urlStr)
if urlErr == nil {
domain = u.Host
}
if err != nil { if err != nil {
herr, ok := err.(gofeed.HTTPError) herr, ok := err.(gofeed.HTTPError)
statusCode := 0 // e.g. network timeout statusCode := 0 // e.g. network timeout
if ok { if ok {
statusCode = herr.StatusCode statusCode = herr.StatusCode
} }
pollCounter.With(prometheus.Labels{"url": domain, "http_status": strconv.Itoa(statusCode)}).Inc()
pollCounter.With(prometheus.Labels{"http_status": strconv.Itoa(statusCode)}).Inc()
} else { } else {
pollCounter.With(prometheus.Labels{"url": domain, "http_status": "200"}).Inc() // technically 2xx but gofeed doesn't tell us which
pollCounter.With(prometheus.Labels{"http_status": "200"}).Inc() // technically 2xx but gofeed doesn't tell us which
} }
} }

Loading…
Cancel
Save