I went a little over the top on logging temperatures on all my devices.

The above image is my Grafana dashboard with all kinds of temperatures, percentages and other measurements. Surprisingly this just started out as something I could look at to get my internet speed information.

It's basically several InfluxDB Databases and Grafana with a bunch of integrations, some of which I coded(some in Python and some in GoLang) and others I did not.

Here are the things I'm now monitoring(even though I don't really need to :) ) :

  • Temperature, CPU and Memory, and Upload, Download speeds, and ping times of my UDM Pro. This is a custom container running in my kube cluster.
  • Temperature, CPU and Memory of my UDM 16 port POE switch. This is a also custom container running in my kube cluster.
  • Hourly Speedtest that provides Upload, Download, and Ping time to Clouvider. This is a custom container I wrote in GoLang that is running in my kube cluster.
  • CPU and SSD Temperatures of all my Lenovo Kubernetes nodes. This was written with some custom GoLang code that reads the sensors and writes to InfluxDB. It runs as a cron job on each of the nodes.
  • CPU Temperatures of my 2 Raspberry Pi 4's that run PiHole(using Gravity Sync) and provide all the DNS for my network. This was the same code for the Lenovo computers tweaked for the Raspberry Pi's.
  • Temperature and Humidity in my network cabinet. This is running on a Raspberry Pi 2 with a Coral Environment board attached to provide this information. The code here was written in Python since most of it was already done and I just needed to add the code to write to Influx.
  • Outside Temperature, Humidity, and Rainfall from my Ambient Weather Station. This is a custom container running in my kube cluster that was coded in GoLang and queries the Ambient API every 15 minutes via a cron job.
  • Indoor Temperatures in the Den and the room our Dogs stay in. These temperature sensors are the remnants from my old one wire network. I used to use these in my old house and just had them sitting around. The Python code runs on a Raspberry Pi 3.

I've turned on a few alerts in Grafana that will email me via SendGrid if temperatures reach certain thresholds. Overall it was a fun learning experience. I also was able to see that one of the hard drives in my kubernetes cluster was going bad(overheating) and was able to replace it before I lost the node.