diff --git a/temp-telegraf/README.md b/temp-telegraf/README.md new file mode 100644 index 0000000000..f7080b14d2 --- /dev/null +++ b/temp-telegraf/README.md @@ -0,0 +1,37 @@ +# raspberrypi-temperature-telegraf +Collect RaspberryPi CPU and GPU temperature with telegraf + +### How to use (No script required :fire:) +1. Add this to you telegraf.conf +``` +[[inputs.file]] + files = ["/sys/class/thermal/thermal_zone0/temp"] + name_override = "cpu_temperature" + data_format = "value" + data_type = "integer" + +[[inputs.exec]] + commands = [ "/opt/vc/bin/vcgencmd measure_temp" ] + name_override = "gpu_temperature" + data_format = "grok" + grok_patterns = ["%{NUMBER:value:float}"] + +``` +2. Add telegraf user to video group ```sudo usermod -a -G video telegraf``` +3. ```sudo service telegraf stop;sudo service telegraf start``` +4. Run test ```telegraf -config /etc/telegraf/telegraf.conf -test``` + +### How to use (Old way) +1. Copy ```telegraf_pi_temp.sh``` to ```/usr/local/bin/telegraf_pi_temp.sh``` +2. Modify file permissions ```chmod +x /usr/local/bin/telegraf_pi_temp.sh``` +3. Add ```telegraf``` user to video group ```sudo usermod -a -G video telegraf``` +4. ```sudo service telegraf restart``` or ```sudo reboot``` +5. Add to your telegraf.conf snippet from ```telegraf.conf``` +6. Run test ```telegraf -config /etc/telegraf/telegraf.conf -test``` + +### Data format +To get a human readable *cpu* temperature divide it by 1000 (in grafana use the math(/ 1000) function +```json +{"cpu":54768, "gpu":54.8} +``` + diff --git a/temp-telegraf/telegraf.conf b/temp-telegraf/telegraf.conf new file mode 100644 index 0000000000..b267f5da0c --- /dev/null +++ b/temp-telegraf/telegraf.conf @@ -0,0 +1,5 @@ +[[inputs.exec]] + commands = ["/usr/local/bin/telegraf_pi_temp.sh"] + timeout = "5s" + data_format = "json" + name_suffix = "_pi_temp" \ No newline at end of file diff --git a/temp-telegraf/telegraf_pi_temp.sh b/temp-telegraf/telegraf_pi_temp.sh new file mode 100644 index 0000000000..89d1023596 --- /dev/null +++ b/temp-telegraf/telegraf_pi_temp.sh @@ -0,0 +1,7 @@ +#!/bin/bash +prefix="temp=" +suffix="'C" +gpu=$(/opt/vc/bin/vcgencmd measure_temp) +gpu_temp=${gpu#$prefix} +gpu_temp=${gpu_temp%$suffix} +echo -e "{\"cpu\":"$(