summaryrefslogtreecommitdiffstats
path: root/collectors/diskspace.plugin
diff options
context:
space:
mode:
Diffstat (limited to 'collectors/diskspace.plugin')
-rw-r--r--collectors/diskspace.plugin/plugin_diskspace.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/collectors/diskspace.plugin/plugin_diskspace.c b/collectors/diskspace.plugin/plugin_diskspace.c
index 5bdf8bc6..5f610983 100644
--- a/collectors/diskspace.plugin/plugin_diskspace.c
+++ b/collectors/diskspace.plugin/plugin_diskspace.c
@@ -95,8 +95,8 @@ int mount_point_cleanup(const char *name, void *entry, int slow) {
return 0;
}
-int mount_point_cleanup_cb(const char *name, void *entry, void *data) {
- UNUSED(data);
+int mount_point_cleanup_cb(const DICTIONARY_ITEM *item, void *entry, void *data __maybe_unused) {
+ const char *name = dictionary_acquired_item_name(item);
return mount_point_cleanup(name, (struct mount_point_metadata *)entry, 0);
}
@@ -204,8 +204,6 @@ static void calculate_values_and_show_charts(
error("DISKSPACE: disk inode statistics for '%s' (disk '%s') do not sum up: total = %llu, available = %llu, reserved = %llu, used = %llu", mi->mount_point, disk, (unsigned long long)ftotal, (unsigned long long)favail, (unsigned long long)freserved_root, (unsigned long long)fused);
#endif
- // --------------------------------------------------------------------------
-
int rendered = 0;
if(m->do_space == CONFIG_BOOLEAN_YES || (m->do_space == CONFIG_BOOLEAN_AUTO &&
@@ -239,8 +237,6 @@ static void calculate_values_and_show_charts(
m->rd_space_used = rrddim_add(m->st_space, "used", NULL, (collected_number)bsize, 1024 * 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
m->rd_space_reserved = rrddim_add(m->st_space, "reserved_for_root", "reserved for root", (collected_number)bsize, 1024 * 1024 * 1024, RRD_ALGORITHM_ABSOLUTE);
}
- else
- rrdset_next(m->st_space);
rrddim_set_by_pointer(m->st_space, m->rd_space_avail, (collected_number)bavail);
rrddim_set_by_pointer(m->st_space, m->rd_space_used, (collected_number)bused);
@@ -250,8 +246,6 @@ static void calculate_values_and_show_charts(
rendered++;
}
- // --------------------------------------------------------------------------
-
if(m->do_inodes == CONFIG_BOOLEAN_YES || (m->do_inodes == CONFIG_BOOLEAN_AUTO &&
(favail || freserved_root || fused ||
netdata_zero_metrics_enabled == CONFIG_BOOLEAN_YES))) {
@@ -283,8 +277,6 @@ static void calculate_values_and_show_charts(
m->rd_inodes_used = rrddim_add(m->st_inodes, "used", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
m->rd_inodes_reserved = rrddim_add(m->st_inodes, "reserved_for_root", "reserved for root", 1, 1, RRD_ALGORITHM_ABSOLUTE);
}
- else
- rrdset_next(m->st_inodes);
rrddim_set_by_pointer(m->st_inodes, m->rd_inodes_avail, (collected_number)favail);
rrddim_set_by_pointer(m->st_inodes, m->rd_inodes_used, (collected_number)fused);
@@ -294,8 +286,6 @@ static void calculate_values_and_show_charts(
rendered++;
}
- // --------------------------------------------------------------------------
-
if(likely(rendered))
m->collected++;
}
@@ -330,7 +320,7 @@ static inline void do_disk_space_stats(struct mountinfo *mi, int update_every) {
, SIMPLE_PATTERN_EXACT
);
- dict_mountpoints = dictionary_create(DICTIONARY_FLAG_SINGLE_THREADED);
+ dict_mountpoints = dictionary_create(DICT_OPTION_SINGLE_THREADED);
}
struct mount_point_metadata *m = dictionary_get(dict_mountpoints, mi->mount_point);
@@ -521,12 +511,19 @@ void *diskspace_slow_worker(void *ptr)
netdata_thread_cleanup_push(diskspace_slow_worker_cleanup, data->slow_thread);
usec_t step = slow_update_every * USEC_PER_SEC;
+ usec_t real_step = USEC_PER_SEC;
heartbeat_t hb;
heartbeat_init(&hb);
while(!netdata_exit) {
worker_is_idle();
- heartbeat_next(&hb, step);
+ heartbeat_next(&hb, USEC_PER_SEC);
+
+ if (real_step < step) {
+ real_step += USEC_PER_SEC;
+ continue;
+ }
+ real_step = USEC_PER_SEC;
usec_t start_time = now_monotonic_high_precision_usec();
@@ -581,6 +578,7 @@ void *diskspace_slow_worker(void *ptr)
}
static void diskspace_main_cleanup(void *ptr) {
+ rrd_collector_finished();
worker_unregister();
struct netdata_static_thread *static_thread = (struct netdata_static_thread *)ptr;
@@ -612,6 +610,8 @@ void *diskspace_main(void *ptr) {
worker_register_job_name(WORKER_JOB_MOUNTPOINT, "mountpoint");
worker_register_job_name(WORKER_JOB_CLEANUP, "cleanup");
+ rrd_collector_started();
+
netdata_thread_cleanup_push(diskspace_main_cleanup, ptr);
cleanup_mount_points = config_get_boolean(CONFIG_SECTION_DISKSPACE, "remove charts of unmounted disks" , cleanup_mount_points);