Esempio n. 1
0
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))
Esempio n. 2
0
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)