summaryrefslogtreecommitdiffstats
path: root/backends
diff options
context:
space:
mode:
authorCosta Tsaousis <costa@tsaousis.gr>2019-01-03 16:30:00 +0200
committerChris Akritidis <43294513+cakrit@users.noreply.github.com>2019-01-03 15:30:00 +0100
commit7a450a5f43d483a6e5e983b6449c569f116a1278 (patch)
treeb7cb3df9f6238653dc70b2bdcb913029defaecb3 /backends
parentc9666eb4880f03a5b0a6ecb97b2c9ffc7fe30611 (diff)
do not report stale metrics to prometheus; fixes #5064 (#5084)
Diffstat (limited to 'backends')
-rw-r--r--backends/prometheus/backend_prometheus.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/backends/prometheus/backend_prometheus.c b/backends/prometheus/backend_prometheus.c
index 223b3f9f03..6b0d7ca10e 100644
--- a/backends/prometheus/backend_prometheus.c
+++ b/backends/prometheus/backend_prometheus.c
@@ -298,6 +298,9 @@ static void rrd_stats_api_v1_charts_allmetrics_prometheus(RRDHOST *host, BUFFER
if (as_collected) {
// we need as-collected / raw data
+ if(unlikely(rd->last_collected_time.tv_sec < after))
+ continue;
+
const char *t = "gauge", *h = "gives";
if(rd->algorithm == RRD_ALGORITHM_INCREMENTAL ||
rd->algorithm == RRD_ALGORITHM_PCENT_OVER_DIFF_TOTAL) {
@@ -512,12 +515,9 @@ static inline time_t prometheus_preparation(RRDHOST *host, BUFFER *wb, BACKEND_O
}
if(output_options & PROMETHEUS_OUTPUT_HELP) {
- int show_range = 1;
char *mode;
- if(BACKEND_OPTIONS_DATA_SOURCE(backend_options) == BACKEND_SOURCE_DATA_AS_COLLECTED) {
+ if(BACKEND_OPTIONS_DATA_SOURCE(backend_options) == BACKEND_SOURCE_DATA_AS_COLLECTED)
mode = "as collected";
- show_range = 0;
- }
else if(BACKEND_OPTIONS_DATA_SOURCE(backend_options) == BACKEND_SOURCE_DATA_AVERAGE)
mode = "average";
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
else
mode = "unknown";
- buffer_sprintf(wb, "# COMMENT netdata \"%s\" to %sprometheus \"%s\", source \"%s\", last seen %lu %s"
+ buffer_sprintf(wb, "# COMMENT netdata \"%s\" to %sprometheus \"%s\", source \"%s\", last seen %lu %s, time range %lu to %lu\n\n"
, host->hostname
, (first_seen)?"FIRST SEEN ":""
, server
, mode
, (unsigned long)((first_seen)?0:(now - after))
, (first_seen)?"never":"seconds ago"
+ , (unsigned long)after, (unsigned long)now
);
-
- if(show_range)
- buffer_sprintf(wb, ", time range %lu to %lu", (unsigned long)after, (unsigned long)now);
-
- buffer_strcat(wb, "\n\n");
}
return after;