Prometheus exporter for frisbi24.ru. Janet 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 e396bc671d Frisbi24 exporter 1 year ago
dashboard Frisbi24 exporter 1 year ago
.gitignore Frisbi24 exporter 1 year ago
COPYING Frisbi24 exporter 1 year ago
Containerfile Frisbi24 exporter 1 year ago
Makefile Frisbi24 exporter 1 year ago
README.md Frisbi24 exporter 1 year ago
frisbi24.janet Frisbi24 exporter 1 year ago
project.janet Frisbi24 exporter 1 year ago

README.md

Frisbi24.ru Exporter

Описание

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

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

Лицензия

GNU General Public License Version 3.

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

Сборка

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

$ janet ./frisbi_exporter.rkt

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

$ make build

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

$ buildah bud

Запуск

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

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

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

$ FRISBI_EXPORTER_HOST=0.0.0.0 \
  FRISBI_EXPORTER_PORT=9000 \
  \
  janet ./frisbi_exporter.rkt

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

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

Для запроса метрик для конкретного лицевого счёта, нужно передать следующие параметры:

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

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

$ curl "localhost:9000/metrics?account_id=1111&service_id=2222"

# 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