Programming, robotics, traveling

10 Dec 2021

Сбор метрик с Raspberry Pi

Достаточно давно у меня появилась необходимость создать своё облако для объединения ресурсов и предоставления доступа ко внутренним сервисам. Такое облако я сделал, а этом году я добавил в эту систему работу с метриками. И буквально пару дней назад сделал так, чтобы Prometheus из Docker контейнера смог собирать метрики с устройств в сети VPN. Однако в случае с Raspberry Pi обычного node-exporter мне стало недостаточно. Тк он не собирает такие важные метрики как напряжение, температура и частота процессора. Эти метрики показывают проблемы с питанием или перегревом Raspberry Pi, что является очень критичным.

Я нашел репозиторий teemow/prometheus-raspberry-exporter, который позволяет добавить эти метрики в node-exporter через collector.textfile. A чуть позже я нашел его форк от prontog, в котором получше именованы метрики и есть обработка прерывания работы.

Я решил немного дописать этот проект под свои нужды:

  1. Поправить документацию
  2. Поправить именование файлов и синтаксис кода
  3. Поправить путь к исполняемому файлу vcgencmd (тк в новом релизе Raspberry Pi OS нет /opt/vc)
  4. Добавить метрику rpi_throttled (== vcgencmd get_throttled)
  5. Добавить в Grafana dashboard для отображения этих метрик
  6. Добавить алерты для этих метрик в Prometheus

Как результат получился форк urpylka/prometheus-raspberry-exporter.

image

На будущее хочу разобраться как запускать это всё в Docker контейнере, пока не совсем понятно с чем и как взаимодействует vcgencmd. Кстати, в ходе работы наткнулся на неплохую статью на тему Использование консольной программы vcgencmd.

Ссылки по теме

Alerts with Prometheus

Alertmanager + Telegram