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))
def __init__(self, config): self.metric = Gauge("imx28", "Values from imx28 sensors", labelnames=["label"], subsystem=self.SUBSYSTEM, namespace=NAMESPACE)
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)
def __init__(self, config): self.interfaces = config.get('interfaces') self.metric = Gauge("exists", "Interface existence", subsystem=self.SUBSYSTEM, namespace=NAMESPACE, labelnames=["device"])
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), }
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))
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"])
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)