2023-02-20 19:48:28 -08:00

41 lines
1.0 KiB
Python

#!/usr/bin/env python3
# https://pimylifeup.com/raspberry-pi-temperature/
import os
import time
import subprocess
from prometheus_client import start_http_server, Gauge, REGISTRY, GC_COLLECTOR, PLATFORM_COLLECTOR, PROCESS_COLLECTOR
REGISTRY.unregister(GC_COLLECTOR)
REGISTRY.unregister(PLATFORM_COLLECTOR)
REGISTRY.unregister(PROCESS_COLLECTOR)
def setup_gauge():
g = Gauge(f'sys_cpu_temp_celsius_degrees', 'CPU Temperature', ['node_name'])
g.set_function(_get_temp)
g.labels(_get_node_name())
def _get_temp():
return float(subprocess.run(['/usr/bin/vcgencmd', 'measure_temp'], capture_output=True).stdout.decode('utf-8')
.replace('temp=', '').replace("'C\n", ''))
def _get_node_name():
# https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/
try:
return os.environ['NODE_NAME']
except:
return 'unknown-node'
if __name__ == '__main__':
setup_gauge()
start_http_server(8555)
while True:
# Stay alive!
time.sleep(1)