class NetDevExists(BasePlugin): INTERFACE_PATH = "/sys/class/net" SUBSYSTEM = 'netdev' def __init__(self, config): self.interfaces = config.get('interfaces') self.metric = Gauge("exists", "Interface existence", subsystem=self.SUBSYSTEM, namespace=NAMESPACE, labelnames=["device"]) def collect(self): dirs = os.listdir(self.INTERFACE_PATH) for ask_iface in self.interfaces: exists = False for dir_iface in dirs: if re.match(ask_iface, dir_iface): exists |= True break self.metric.labels(ask_iface).set(float(exists))
class Imx28(BasePlugin): SUBSYSTEM = 'sensors' VOLTAGE_FILE = "/sys/class/power_supply/battery/voltage_now" TEMP_RAW_FILE = "/sys/bus/iio/devices/iio:device0/in_temp8_raw" def __init__(self, config): self.metric = Gauge("imx28", "Values from imx28 sensors", labelnames=["label"], subsystem=self.SUBSYSTEM, namespace=NAMESPACE) def collect(self): with open(self.VOLTAGE_FILE) as f: line = f.readline() voltage = float(line) / 1000 with open(self.TEMP_RAW_FILE) as f: raw = float(f.readline()) temp = (raw - 1075.69) * 0.253 self.metric.labels("voltage").set(voltage) self.metric.labels("cpu_temp").set(temp)