1
0
Fork 0
mirror of https://github.com/miniflux/v2.git synced 2025-08-06 17:41:00 +00:00

Add Prometheus exporter

This commit is contained in:
Frédéric Guillot 2020-09-27 16:01:06 -07:00 committed by Frédéric Guillot
parent 16b7b3bc3e
commit c394a61a4e
61 changed files with 809 additions and 96 deletions

View file

@ -5,7 +5,11 @@
package worker // import "miniflux.app/worker"
import (
"time"
"miniflux.app/config"
"miniflux.app/logger"
"miniflux.app/metric"
"miniflux.app/model"
"miniflux.app/reader/feed"
)
@ -22,11 +26,21 @@ func (w *Worker) Run(c chan model.Job) {
for {
job := <-c
logger.Debug("[Worker #%d] got userID=%d, feedID=%d", w.id, job.UserID, job.FeedID)
logger.Debug("[Worker #%d] Received feed #%d for user #%d", w.id, job.FeedID, job.UserID)
err := w.feedHandler.RefreshFeed(job.UserID, job.FeedID)
if err != nil {
logger.Error("[Worker] Feed #%d: %v", job.FeedID, err)
startTime := time.Now()
refreshErr := w.feedHandler.RefreshFeed(job.UserID, job.FeedID)
if config.Opts.HasMetricsCollector() {
status := "success"
if refreshErr != nil {
status = "error"
}
metric.BackgroundFeedRefreshDuration.WithLabelValues(status).Observe(time.Since(startTime).Seconds())
}
if refreshErr != nil {
logger.Error("[Worker] Refreshing the feed #%d returned this error: %v", job.FeedID, refreshErr)
}
}
}