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
|
2 years ago | |
---|---|---|
dashboard | 2 years ago | |
.gitignore | 2 years ago | |
COPYING | 2 years ago | |
Containerfile | 2 years ago | |
Makefile | 2 years ago | |
README.md | 2 years ago | |
frisbi24.janet | 2 years ago | |
project.janet | 2 years 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