From 1f53f2c3f8f40a7f237fd35221751dd792fb0938 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20=C5=A0urda?= Date: Wed, 14 Jun 2023 18:20:12 +0800 Subject: [PATCH] Cleanup - simplify - variable syntax --- btrfs_plugin.py | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/btrfs_plugin.py b/btrfs_plugin.py index 608c683..87eb84b 100644 --- a/btrfs_plugin.py +++ b/btrfs_plugin.py @@ -1,30 +1,27 @@ -import collectd +import re + import btrfs +import collectd PLUGIN = 'btrfs' -TYPE_STATS = "stats" +TYPE_STATS = "device_stats" -mount_paths = [] - -def configure_callback(conf): - """ - Populate mount_paths - """ - global mount_paths - mount_paths = [path for path in btrfs.utils.mounted_filesystem_paths()] - collectd.info("btrfs: config done. mount_paths: {}".format(mount_paths)) def read_callback(): """Read Btrfs device information and dispatch values to collectd.""" metric = collectd.Values() metric.plugin = PLUGIN + mount_paths = btrfs.utils.mounted_filesystem_paths() for path in mount_paths: try: with btrfs.FileSystem(path) as fs: for device in list(fs.devices()): stats = fs.dev_stats(device.devid) dev_info = fs.dev_info(device.devid) - metric.plugin_instance = dev_info.path + metric.plugin_instance = re.sub( + r'[^a-zA-Z0-9]', + r'-', + dev_info.path)[1:] for counter, value in stats.counters.items(): metric.type_instance = counter metric.dispatch(TYPE_STATS, [value]) @@ -34,5 +31,4 @@ def read_callback(): if __name__ != "__main__": # Register callbacks - collectd.register_config(configure_callback) collectd.register_read(read_callback)