Интеллектуальный разъем питания для мониторинга с Prometheus / Grafana

#rest #prometheus #grafana

#rest #prometheus #grafana

Вопрос:

Мне едва удалось настроить Prometheus amp; Grafana на моем новом Raspberry Pi (работает под управлением Raspbian). Теперь я хотел бы отслеживать smart power plug с помощью REST API. Это означает, что я мог бы отправить curl команду и получить некоторые данные обратно:

 $ curl --location --request GET '[Switch IP]/report'

{
  "power": 35.804927825927734,
  "relay": true,
  "temperature": 21.369983673095703
}
 

Однако я в недоумении относительно того, как получить эти данные, которые автоматически запрашиваются и анализируются Prometheus. Мой Google Fu подводит меня, поскольку все результаты объясняют, как запросить Prometheus. Любые подсказки будут высоко оценены.

Ответ №1:

К сожалению, это нетривиально.

Prometheus «очищает» конечные точки HTTP и ожидает, что они опубликуют показатели, используя формат представления Prometheus. Это простой текстовый формат, в котором перечислены показатели с их значениями. Я не смог найти хороший пример.

Вам потребуется «экспортер», который взаимодействует с вашими устройствами и создает показатели (в формате Prometheus) и публикует их на конечной точке HTTP (а не просто на простой текстовой странице).

Затем вы бы указали сервер Prometheus на конечную точку этого экспортера, и Prometheus периодически считывал бы показатели, представляющие ваше устройство, и позволял бы вам взаимодействовать с результатами.

Комментарии:

1. Спасибо! Рад, что на самом деле с облегчением услышал, что это не только я. Я очень удивлен, что это должно быть такой сложной задачей. Не мог бы я написать простой скрипт на Python / bash, который каким-то образом загружает данные в базу данных Prometheus?

2. Я думаю, что есть альтернативы. Нередко устройства публикуют показатели Prometheus «из коробки». (1) Выполните поиск в myStrom и попросите их добавить конечную точку (по умолчанию) /metrics в свой API, который будет создавать для вас показатели устройства. (2) Используйте один из превосходных инструментов домашней автоматизации, например home-assistant.io/integrations/mystrom . Они (часто, пожалуйста, проверьте) интегрируются с Prometheus, поэтому вы получите это для всех добавляемых вами устройств. (3) Посмотрите, написал ли кто-нибудь еще интеграцию, которую вы можете использовать (не удалось найти ни одного после краткого поиска в Google).

3. (4) Самостоятельно напишите интеграцию с Python, но я рекомендую вам использовать Prometheus SDK ( github.com/prometheus/client_python ). Это был бы забавный проект, и вы бы узнали кое-что полезное.