mirror of
https://github.com/netdata/netdata.git
synced 2025-05-13 21:22:08 +00:00
57 lines
1.5 KiB
Python
57 lines
1.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Description: cpufreq netdata python.d plugin
|
|
# Author: Pawel Krupa (paulfantom)
|
|
|
|
from base import SysFileService
|
|
|
|
# default module values (can be overridden per job in `config`)
|
|
# update_every = 2
|
|
|
|
ORDER = ['cpufreq']
|
|
|
|
CHARTS = {
|
|
'cpufreq': {
|
|
'options': [None, 'CPU Clock', 'MHz', 'cpufreq', None, 'line'],
|
|
'lines': [
|
|
# lines are created dynamically in `check()` method
|
|
]}
|
|
}
|
|
|
|
|
|
class Service(SysFileService):
|
|
def __init__(self, configuration=None, name=None):
|
|
SysFileService.__init__(self, configuration=configuration, name=name)
|
|
self.order = ORDER
|
|
self.definitions = CHARTS
|
|
self._orig_name = ""
|
|
|
|
def check(self):
|
|
self._orig_name = self.chart_name
|
|
self.paths = self._find("scaling_cur_freq")
|
|
|
|
if len(self.paths) == 0:
|
|
return False
|
|
|
|
self.paths.sort()
|
|
i = 0
|
|
for path in self.paths:
|
|
self.assignment[path] = "cpu" + str(i)
|
|
i += 1
|
|
|
|
for name in self.assignment:
|
|
dim = self.assignment[name]
|
|
self.definitions[ORDER[0]]['lines'].append([dim, dim, 'absolute', 1, 1000])
|
|
|
|
return True
|
|
|
|
def create(self):
|
|
self.chart_name = "cpu"
|
|
status = SysFileService.create(self)
|
|
self.chart_name = self._orig_name
|
|
return status
|
|
|
|
def update(self, interval):
|
|
self.chart_name = "cpu"
|
|
status = SysFileService.update(self, interval=interval)
|
|
self.chart_name = self._orig_name
|
|
return status
|