#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 ). Это был бы забавный проект, и вы бы узнали кое-что полезное.