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
    def __init__(self, config):

        self.metric = Gauge("imx28",
                            "Values from imx28 sensors",
                            labelnames=["label"],
                            subsystem=self.SUBSYSTEM,
                            namespace=NAMESPACE)
Esempio n. 3
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)
Esempio n. 4
0
    def __init__(self, config):

        self.interfaces = config.get('interfaces')

        self.metric = Gauge("exists",
                            "Interface existence",
                            subsystem=self.SUBSYSTEM,
                            namespace=NAMESPACE,
                            labelnames=["device"])
Esempio n. 5
0
        def __init__(self, interval, port):
            super(self.__class__, self).__init__()

            self.interval = interval
            self.port = port

            self.metrics = {}
            self.metrics = {
                "status": Gauge("status",
                                "MCU status",
                                subsystem=MCU.SUBSYSTEM,
                                namespace=NAMESPACE,
                                labelnames=["input"]),
                "bq_status": Gauge("bq_status",
                                   "MCU BQ error count",
                                   subsystem=MCU.SUBSYSTEM,
                                   namespace=NAMESPACE),
            }
Esempio n. 6
0
    def __init__(self, config):
        self.metric = Gauge("ping",
                            "Ping to host",
                            namespace=NAMESPACE,
                            labelnames=["host"])

        self.configs = config.get('targets')
        self.targets = []
        for config in self.configs:
            self.targets.append(Ping.PingTarget(config, self.metric))
Esempio n. 7
0
    def __init__(self, config):
        self.exclude = config.get('exclude', '')
        self.metrics = dict()

        self.names = ["rx_bytes", "rx_packets", "rx_errs", "rx_drop", "rx_fifo",
                      "rx_frame", "rx_compressed", "rx_multicast",
                      "tx_bytes", "tx_packets", "tx_errs", "tx_drop",
                      "tx_fifo", "tx_colls", "tx_carrier", "tx_compressed"]
        for name in self.names:
            self.metrics[name] = Gauge(name,
                                       name + " from " + self.NET_DEV_FILE,
                                       subsystem=self.SUBSYSTEM,
                                       namespace=NAMESPACE,
                                       labelnames=["device"])
        self.metrics["carrier"] = Gauge("carrier",
                                        "Cable existence",
                                        subsystem=self.SUBSYSTEM,
                                        namespace=NAMESPACE,
                                        labelnames=["device"])
Esempio n. 8
0
    def __init__(self, config):

        import lib.sensors as lmsens
        import re

        exclude_chips = config.get("exclude_chips", "^$")

        lmsens.init()
        self.chips = []
        self.metrics = dict()
        for chip in lmsens.iter_detected_chips():
            chip_name = str(chip).replace('-', '_').lower()
            if re.match(exclude_chips, chip_name):
                continue
            self.chips.append(chip)
            self.metrics[str(chip)] = Gauge(chip_name,
                                            "Values from " + chip_name +
                                            " sensor.",
                                            labelnames=["feature", "label"],
                                            subsystem=self.SUBSYSTEM,
                                            namespace=NAMESPACE)