(self)
Collect and publish disk temperatures
Collect and publish disk temperatures
Collect and publish disk temperatures
def collect(self):
        """
        Collect and publish disk temperatures
        """
        instances = {}

        # Support disks such as /dev/(sd.*)
        for device in os.listdir('/dev/'):
            instances.update(self.match_device(device, '/dev/'))

        # Support disk by id such as /dev/disk/by-id/wwn-(.*)
        for device_id in os.listdir('/dev/disk/by-id/'):
            instances.update(self.match_device(device, '/dev/disk/by-id/'))

        metrics = {}
        for device, p in instances.items():
            output = p.communicate()[0].strip()

            try:
                metrics[device + ".Temperature"] = float(output)
            except:
                self.log.warn('Disk temperature retrieval failed on ' + device)

        for metric in metrics.keys():
            self.publish(metric, metrics[metric])
def collect ( self ) : instances = { } # Support disks such as /dev/(sd.*) for device in os . listdir ( '/dev/' ) : instances . update ( self . match_device ( device , '/dev/' ) ) # Support disk by id such as /dev/disk/by-id/wwn-(.*) for device_id in os . listdir ( '/dev/disk/by-id/' ) : instances . update ( self . match_device ( device , '/dev/disk/by-id/' ) ) metrics = { } for device , p in instances . items ( ) : output = p . communicate ( ) [ 0 ] . strip ( ) try : metrics [ device + ".Temperature" ] = float ( output ) except : self . log . warn ( 'Disk temperature retrieval failed on ' + device ) for metric in metrics . keys ( ) : self . publish ( metric , metrics [ metric ] )