Source code for p3exporter.collector.loadavg

"""Module that defines all needed classes and functions for loadavg collector."""
import os

from p3exporter.collector import CollectorBase, CollectorConfig
from prometheus_client.core import GaugeMetricFamily


[docs]class LoadavgCollector(CollectorBase): """Load avg collector class.""" def __init__(self, config: CollectorConfig): """Instanciate a CpuCollector object.""" super(LoadavgCollector, self).__init__(config)
[docs] def collect(self): """Collect load avg for 1, 5 and 15 minutes interval. Returns three gauge metrics. One for each load. """ self.avg1, self.avg5, self.avg15 = os.getloadavg() yield GaugeMetricFamily('load_avg_1', "1m load average.", value=self.avg1) yield GaugeMetricFamily('load_avg_5', "5m load average.", value=self.avg5) yield GaugeMetricFamily('load_avg_15', "15m load average.", value=self.avg15)