diff options
author | Markos Fountoulakis <44345837+mfundul@users.noreply.github.com> | 2019-10-24 19:43:09 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-24 19:43:09 +0300 |
commit | 88f966593abc5c7888e7c0be83780a97d4326ac2 (patch) | |
tree | ea40e93b143cb18c6da12357e1e2a64e0095ce78 /daemon | |
parent | a6229b245cf42b332d3f11199488f175a8a80a7c (diff) |
detect if the disk cannot keep up with data collection (#7139)
* Adjust dbengine flushing speed more dynamically
* Added error tracking statistics for failure to flush events
* Added alarm for dbengine flushing errors
* Improved dbengine accounting for commited to be written pages
Diffstat (limited to 'daemon')
-rw-r--r-- | daemon/global_statistics.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/daemon/global_statistics.c b/daemon/global_statistics.c index 2bcc5c9fd9..5197dcc100 100644 --- a/daemon/global_statistics.c +++ b/daemon/global_statistics.c @@ -544,7 +544,7 @@ void global_statistics_charts(void) { if (host->rrd_memory_mode == RRD_MEMORY_MODE_DBENGINE) { ++hosts_with_dbengine; /* get localhost's DB engine's statistics */ - rrdeng_get_33_statistics(host->rrdeng_ctx, local_stats_array); + rrdeng_get_35_statistics(host->rrdeng_ctx, local_stats_array); for (i = 0 ; i < RRDENG_NR_STATS ; ++i) { /* aggregate statistics across hosts */ stats_array[i] += local_stats_array[i]; @@ -775,6 +775,7 @@ void global_statistics_charts(void) { static RRDSET *st_errors = NULL; static RRDDIM *rd_fs_errors = NULL; static RRDDIM *rd_io_errors = NULL; + static RRDDIM *rd_flushing_errors = NULL; if (unlikely(!st_errors)) { st_errors = rrdset_create_localhost( @@ -794,12 +795,14 @@ void global_statistics_charts(void) { rd_io_errors = rrddim_add(st_errors, "I/O errors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL); rd_fs_errors = rrddim_add(st_errors, "FS errors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL); + rd_flushing_errors = rrddim_add(st_errors, "flushing errors", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL); } else rrdset_next(st_errors); rrddim_set_by_pointer(st_errors, rd_io_errors, (collected_number)stats_array[30]); rrddim_set_by_pointer(st_errors, rd_fs_errors, (collected_number)stats_array[31]); + rrddim_set_by_pointer(st_errors, rd_flushing_errors, (collected_number)stats_array[34]); rrdset_done(st_errors); } |