Prometheus exporter for frisbi24.ru. Racket version.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Maxim Likhachev c7f31576a4 Update README.md 1 year ago
dashboard Frisbi24 2 years ago
COPYING Frisbi24 2 years ago
Containerfile Frisbi24 2 years ago
Makefile Frisbi24 2 years ago
README.md Update README.md 1 year ago
frisbi_exporter.rkt Frisbi24 2 years ago

README.md

Frisbi24.ru Exporter

NB: Актуальная версия экспортера переписана на Janet.

Описание

Простой экспортер метрик в формате Prometheus, собирающий информацию из API frisbi24.ru. Метрики включают в себя показания счётчиков и задолженности по разным категориям.

Пример панели Grafana можно найти в файле dashboard/frisbi_exporter.json.

Лицензия

GNU General Public License Version 3.

Использование

Сборка

Скрипт можно запустить при помощи Racket:

$ racket ./frisbi_exporter.rkt

либо собрать в исполнимый файл:

$ make build

Также представлен Containerfile, предназначенный для сборки образа контейнера:

$ buildah bud

Запуск

Для запуска экспортера необходимо установить следующие параметры:

  • FRISBI_ACCOUNT_ID -- номер лицевого счёта,
  • FRISBI_SERVICE_ID -- номер службы ЖКХ.

Оба значения можно найти в личном кабинете frisbi24.ru.

Также можно настроить хост и порт сервиса:

  • FRISBI_EXPORTER_HOST -- по умолчанию 127.0.0.1,
  • FRISBI_EXPORTER_PORT -- по умолчанию 8000.

Таким образом, команда запуска может выглядеть так:

$ FRISBI_EXPORTER_HOST=0.0.0.0 \
  FRISBI_EXPORTER_PORT=9000 \
  FRISBI_ACCOUNT_ID=xxxxxxxxxx \
  FRISBI_SERVICE_ID=yyyy \
  \
  racket ./frisbi_exporter.rkt

Получение метрик

Метрики доступны по адресу host:port/metrics:

$ curl localhost:9000/metrics

# HELP frisbi_debt Задолженности
# TYPE frisbi_debt gauge
frisbi_debt{id="1", account="xxxxxxxxxx", name="Капремонт", address="Екатеринбург, ..."} 100.0
frisbi_debt{id="2", account="xxxxxxxxxx", name="Обращение с ТКО", address="Екатеринбург, ..."} 200.0
frisbi_debt{id="3", account="xxxxxxxxxx", name="ЖКУ", address="Екатеринбург, ..."} 300.0

# HELP frisbi_meters_value Показания счётчиков
# TYPE frisbi_meters_value gauge
frisbi_meters_value{id="2", account="xxxxxxxxxx", name="ХВС-Осн.", address="Екатеринбург, ..."} 1
frisbi_meters_value{id="3", account="xxxxxxxxxx", name="Эл.эн.-Осн.", address="Екатеринбург, ..."} 1000
frisbi_meters_value{id="1", account="xxxxxxxxxx", name="ГВС-Осн.", address="Екатеринбург, ..."} 2

# HELP frisbi_meters_state Активность счётчиков
# TYPE frisbi_meters_state gauge
frisbi_meters_state{id="2", account="xxxxxxxxxx", name="ХВС-Осн.", address="Екатеринбург, ..."} 1
frisbi_meters_state{id="3", account="xxxxxxxxxx", name="Эл.эн.-Осн.", address="Екатеринбург, ..."} 1
frisbi_meters_state{id="1", account="xxxxxxxxxx", name="ГВС-Осн.", address="Екатеринбург, ..."} 1

# HELP frisbi_meters_expiry_days Срок действия счётчиков, дни
# TYPE frisbi_meters_expiry_days gauge
frisbi_meters_expiry_days{id="2", account="xxxxxxxxxx", name="ХВС-Осн.", address="Екатеринбург, ..."} 184
frisbi_meters_expiry_days{id="3", account="xxxxxxxxxx", name="Эл.эн.-Осн.", address="Екатеринбург, ..."} 371
frisbi_meters_expiry_days{id="1", account="xxxxxxxxxx", name="ГВС-Осн.", address="Екатеринбург, ..."} 184

# HELP frisbi_meters_expiry_date Срок действия счётчиков, дата
# TYPE frisbi_meters_expiry_date gauge
frisbi_meters_expiry_date{id="2", account="xxxxxxxxxx", name="ХВС-Осн.", address="Екатеринбург, ..."} 1017251200
frisbi_meters_expiry_date{id="3", account="xxxxxxxxxx", name="Эл.эн.-Осн.", address="Екатеринбург, ..."} 1078560000
frisbi_meters_expiry_date{id="1", account="xxxxxxxxxx", name="ГВС-Осн.", address="Екатеринбург, ..."} 1017251200