From 44fe39b025baca6e01538ad522d7e98592fae95f Mon Sep 17 00:00:00 2001 From: mwiegand Date: Wed, 10 Nov 2021 03:26:33 +0100 Subject: [PATCH] cpu freq --- README.md | 1 - bundles/hardware/files/cpu_frequency | 8 +++++ bundles/hardware/items.py | 8 +++++ bundles/hardware/metadata.py | 20 +++++++++++ bundles/raspberry-pi/metadata.py | 34 ++++++++----------- groups/machine/hardware.py | 5 +++ groups/{hardware => machine}/hetzner-cloud.py | 0 groups/{hardware => machine}/raspberry-pi.py | 3 ++ nodes/home.server.py | 1 + 9 files changed, 60 insertions(+), 20 deletions(-) create mode 100644 bundles/hardware/files/cpu_frequency create mode 100644 bundles/hardware/items.py create mode 100644 bundles/hardware/metadata.py create mode 100644 groups/machine/hardware.py rename groups/{hardware => machine}/hetzner-cloud.py (100%) rename groups/{hardware => machine}/raspberry-pi.py (52%) diff --git a/README.md b/README.md index d5aa843..aadf803 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,5 @@ # TODO -- systemd-swap - raspberry cpu frequency /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq - gollum wiki - blog? diff --git a/bundles/hardware/files/cpu_frequency b/bundles/hardware/files/cpu_frequency new file mode 100644 index 0000000..8366c4f --- /dev/null +++ b/bundles/hardware/files/cpu_frequency @@ -0,0 +1,8 @@ +#!/bin/bash + +date=$(date --utc +%s%N) + +for cpu in $(cat /sys/devices/system/cpu/cpu0/cpufreq/affected_cpus) +do + echo "cpu_frequency,cpu=$cpu mhz=$(expr $(cat /sys/devices/system/cpu/cpu$cpu/cpufreq/scaling_cur_freq) / 1000) $date" +done diff --git a/bundles/hardware/items.py b/bundles/hardware/items.py new file mode 100644 index 0000000..1f8351c --- /dev/null +++ b/bundles/hardware/items.py @@ -0,0 +1,8 @@ +files = { + '/usr/local/share/icinga/plugins/cpu_frequency': { + 'mode': '0755', + 'triggers': { + 'svc_systemd:telegraf:restart', + }, + }, +} diff --git a/bundles/hardware/metadata.py b/bundles/hardware/metadata.py new file mode 100644 index 0000000..5cb1b7a --- /dev/null +++ b/bundles/hardware/metadata.py @@ -0,0 +1,20 @@ +defaults = { + 'sudoers': { + 'telegraf': { + '/usr/local/share/icinga/plugins/cpu_frequency', + }, + }, + 'telegraf': { + 'config': { + 'inputs': { + 'exec': { + repo.libs.hashable.hashable({ + 'commands': ["sudo /usr/local/share/icinga/plugins/cpu_frequency"], + 'name_override': "cpu_frequency", + 'data_format': "influx", + }), + }, + }, + }, + }, +} diff --git a/bundles/raspberry-pi/metadata.py b/bundles/raspberry-pi/metadata.py index 1b877e1..b5b2058 100644 --- a/bundles/raspberry-pi/metadata.py +++ b/bundles/raspberry-pi/metadata.py @@ -7,11 +7,25 @@ defaults = { 'systemd-journald': { 'Storage': 'volatile', }, + 'telegraf': { + 'config': { + 'inputs': { + 'exec': { + h({ + 'commands': ["/bin/bash -c 'expr $(cat /sys/class/thermal/thermal_zone0/temp) / 1000'"], + 'name_override': "cpu_temperature", + 'data_format': "value", + 'data_type': "integer", + }), + }, + }, + }, + }, } @metadata_reactor.provides( - 'telegraf/config', + 'telegraf/config/agent', ) def telegraf(metadata): return { @@ -21,29 +35,11 @@ def telegraf(metadata): 'flush_interval': '30s', 'interval': '30s', }, - 'inputs': { - 'exec': { - h({ - 'commands': ["/bin/bash -c 'expr $(cat /sys/class/thermal/thermal_zone0/temp) / 1000'"], - 'name_override': "cpu_temperature", - 'data_format': "value", - 'data_type': "integer", - }), - # h({ - # 'commands': [ - # f'sudo /usr/local/share/icinga/plugins/smartctl', - # ], - # 'data_format': 'influx', - # 'interval': '20s', - # }), - }, - }, }, }, } - @metadata_reactor.provides( 'zfs/kernel_params', 'zfs/datasets', diff --git a/groups/machine/hardware.py b/groups/machine/hardware.py new file mode 100644 index 0000000..fa8ac47 --- /dev/null +++ b/groups/machine/hardware.py @@ -0,0 +1,5 @@ +{ + 'bundles': { + 'hardware', + }, +} diff --git a/groups/hardware/hetzner-cloud.py b/groups/machine/hetzner-cloud.py similarity index 100% rename from groups/hardware/hetzner-cloud.py rename to groups/machine/hetzner-cloud.py diff --git a/groups/hardware/raspberry-pi.py b/groups/machine/raspberry-pi.py similarity index 52% rename from groups/hardware/raspberry-pi.py rename to groups/machine/raspberry-pi.py index 64983f5..0b6dba7 100644 --- a/groups/hardware/raspberry-pi.py +++ b/groups/machine/raspberry-pi.py @@ -1,4 +1,7 @@ { + 'supergroups': { + 'hardware', + }, 'bundles': { 'raspberry-pi', }, diff --git a/nodes/home.server.py b/nodes/home.server.py index 71ad55d..0fb5849 100644 --- a/nodes/home.server.py +++ b/nodes/home.server.py @@ -6,6 +6,7 @@ 'nextcloud', 'monitored', 'webserver', + 'hardware', ], 'bundles': [ 'gitea',