]> arthur.barton.de Git - netdata.git/commitdiff
disk exclusion, hddtemp data checking
authorpaulfantom <paulfantom@gmail.com>
Tue, 19 Jul 2016 12:13:28 +0000 (14:13 +0200)
committerpaulfantom <paulfantom@gmail.com>
Tue, 19 Jul 2016 12:13:28 +0000 (14:13 +0200)
python.d/hddtemp.chart.py

index 1beae67a4ec9f3ab3787b987c547902ee74c32ee..ebbe1cea9b0b4a7e3aae7baed15ce70125465c16 100644 (file)
@@ -2,6 +2,7 @@
 # Description: hddtemp netdata python.d module
 # Author: Pawel Krupa (paulfantom)
 
+import os
 from base import SocketService
 
 # default module values (can be overridden per job in `config`)
@@ -38,12 +39,23 @@ class Service(SocketService):
         self.port = 7634
         self.order = ORDER
         self.definitions = CHARTS
+        self.disk_count = 1
+        self.exclude = []
+
+    def _get_disk_count(self):
+        all_disks = [f for f in os.listdir("/dev") if len(f) == 3 and f.startswith("sd")]
+        for disk in self.exclude:
+            try:
+                all_disks.remove(disk)
+            except:
+                self.debug("Disk not found")
+        return len(all_disks)
 
     def _check_raw_data(self, data):
         if not data.endswith('|'):
             return False
 
-        if data.count('|') % 5 == 0:
+        if data.count('|') % (5 * self.disk_count) == 0:
             return True
 
         return False
@@ -53,6 +65,7 @@ class Service(SocketService):
         Get data from TCP/IP socket
         :return: dict
         """
+        self.disk_count = self._get_disk_count()
         try:
             raw = self._get_raw_data().split("|")[:-1]
         except AttributeError:
@@ -78,6 +91,11 @@ class Service(SocketService):
         :return: boolean
         """
         self._parse_config()
+        try:
+            self.exclude = list(self.configuration['exlude'])
+        except (KeyError, TypeError) as e:
+            self.info("No excluded disks")
+            self.debug(str(e))
         data = self._get_data()
         if data is None:
             return False