do not report stale metrics to prometheus; fixes #5064 (#5084)
Costa Tsaousis committed
Jan 3, 2019 at 16:30 UTC
7a450a5f43d483a6e5e983b6449c569f116a1278
1 file changed
+6
-10
backends/prometheus/backend_prometheus.c
+6
-10
@@ -298,6 +298,9 @@ static void rrd_stats_api_v1_charts_allmetrics_prometheus(RRDHOST *host, BUFFER
298
if (as_collected) {
299
// we need as-collected / raw data
300
301
+ if(unlikely(rd->last_collected_time.tv_sec < after))
302
+ continue;
303
+
304
const char *t = "gauge", *h = "gives";
305
if(rd->algorithm == RRD_ALGORITHM_INCREMENTAL ||
306
rd->algorithm == RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL) {
@@ -512,12 +515,9 @@ static inline time_t prometheus_preparation(RRDHOST *host, BUFFER *wb, BACKEND_O
515
}
516
517
if(output_options & PROMETHEUS_OUTPUT_HELP) {
515
- int show_range = 1;
518
char *mode;
517
- if(BACKEND_OPTIONS_DATA_SOURCE(backend_options) == BACKEND_SOURCE_DATA_AS_COLLECTED) {
519
+ if(BACKEND_OPTIONS_DATA_SOURCE(backend_options) == BACKEND_SOURCE_DATA_AS_COLLECTED)
520
mode = "as collected";
519
- show_range = 0;
520
- }
521
else if(BACKEND_OPTIONS_DATA_SOURCE(backend_options) == BACKEND_SOURCE_DATA_AVERAGE)
522
mode = "average";
523
else if(BACKEND_OPTIONS_DATA_SOURCE(backend_options) == BACKEND_SOURCE_DATA_SUM)
@@ -525,19 +525,15 @@ static inline time_t prometheus_preparation(RRDHOST *host, BUFFER *wb, BACKEND_O
525
else
526
mode = "unknown";
527
528
- buffer_sprintf(wb, "# COMMENT netdata \"%s\" to %sprometheus \"%s\", source \"%s\", last seen %lu %s"
528
+ buffer_sprintf(wb, "# COMMENT netdata \"%s\" to %sprometheus \"%s\", source \"%s\", last seen %lu %s, time range %lu to %lu\n\n"
529
, host->hostname
530
, (first_seen)?"FIRST SEEN ":""
531
, server
532
, mode
533
, (unsigned long)((first_seen)?0:(now - after))
534
, (first_seen)?"never":"seconds ago"
535
+ , (unsigned long)after, (unsigned long)now
536
);
536
-
537
- if(show_range)
538
- buffer_sprintf(wb, ", time range %lu to %lu", (unsigned long)after, (unsigned long)now);
539
-
540
- buffer_strcat(wb, "\n\n");
537
}
538
539
return after;