From 88f966593abc5c7888e7c0be83780a97d4326ac2 Mon Sep 17 00:00:00 2001 From: Markos Fountoulakis <44345837+mfundul@users.noreply.github.com> Date: Thu, 24 Oct 2019 19:43:09 +0300 Subject: 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 --- daemon/global_statistics.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'daemon') 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); } -- cgit v1.2.3