Skip to content

s-nagaev/pi-temperature-exporter

Repository files navigation

Pi Temp Exporter logo

Pi Temperature Exporter

Build docker hub docker image arch docker image size license

A simple application for collecting Raspberry Pi's CPU and GPU temperatures and exporting them for Prometheus consumption.

Installation

The application can be run in two ways: running the binary file directly on the Raspberry Pi or in a Docker container.

Automated

Automated install/update of the application:

curl https://raw.githubusercontent.com/s-nagaev/pi-temperature-exporter/main/scripts/install.sh | bash

This script installs the binary to /usr/local/bin directory and sets up the systemd accordingly.

Manual

You can manually download a binary release from the release page.

Docker

To run this application as a Docker container, simply use the following command:

docker run --name pi-temp-exporter -p 9002:9002 pysergio/pi-temp-exporter

Note: when running as a Docker container, only the CPU temperature can be exported.

Alternatively, you can use the following Docker Compose file to set up the application:

version: '3'

services:
  pi-temp-exporter:
    image: pysergio/pi-temp-exporter
    ports:
      - "9002:9002"

Then you can start the application using the docker-compose up -d command.

Usage

Once the Pi Temperature Exporter is installed and running, you can verify that metrics are being exported by cURLing the /metrics endpoint:

curl http://localhost:9002/metrics

You should see output like this:

# HELP pi_cpu_temperature CPU Temperature in Celsius
# TYPE pi_cpu_temperature gauge
pi_cpu_temperature 57.939
# HELP pi_gpu_temperature GPU Temperature in Celsius
# TYPE pi_gpu_temperature gauge
pi_gpu_temperature 56.5

Success! The Pi Temperature Exporter is now exposing metrics that Prometheus can scrape!

Configure your Prometheus instance

If you need information about Prometheus installation steps, please, visit the official documentation page first.

The following prometheus.yml example configuration file will tell the Prometheus instance to scrape, and how frequently, from the Pi Temperature Exporter via your Raspberry Pi IP address. Suppose, your Raspberry Pi's local IP address is 192.168.0.100:

global:
  scrape_interval: 15s

scrape_configs:

- job_name: temperature
  static_configs:
  - targets: ['192.168.0.100:9002']

Health Check

The application also exposes a /health endpoint, which can be used for health check purposes.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.