diff --git a/.env.example b/.env.example index c690720..d82e45f 100644 --- a/.env.example +++ b/.env.example @@ -1 +1,3 @@ -PROMETHEUS_EXPORTER_PORT = 9100 \ No newline at end of file +# port binding for prometheus-exporter +# default value = 9100 +PROMETHEUS_EXPORTER_PORT = 9100 diff --git a/README.md b/README.md index 6f02d83..d2cf754 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,115 @@ # Prometheus exporter -to handle updates of ZVKS metrics in local Registry and to share with Prometheus later \ No newline at end of file +Программный компонент проекта "Буревестник ВКС", предоставляющий функционал +"кастомного" `Prometheus` экспортера для обработки метрических данных + +### Функциональные особенности + +1) приемка метрических данных с "Интеграционного модуля" в особом формате +2) приведение принятых метрических данных к виду `Prometheus`-метрик +3) хранение и актуализация метрических данных формата `Prometheus`-метрик в локальном `Registry` +4) предоставления веб-интерфейса (аналогичного интерфейсу стандартного `Prometheus` экспортера) для получения + +### Прикладные ограничения локальной сборки пакета + +Для локальной сборки Rust-пакета `prometheus-exporter` необходимы: +1) `cargo` (>=1.85.0) +2) `rustc` (>=1.85.0) +3) `rustup` (>=1.28.1) для выбора `target` ОС и архитектуры сборки + +### Руководство по сборке пакета + +1) На первом этапе следует удостовериться в отсутствии багов и неточностей в работе модуля предвариетльно запустив юнит-тесты командой: +``` +cargo test +``` +> Пакетный менеджер `cargo` автоматически соберет проект в необходимой для тестирования конфигурации и запустит тесты, в терминале будут отображены результаты +>> ВАЖНО! При возникновении какой-либо ошибки в процессе тестирования убедительная просьба - оставить соответствующий `Issue` в данном репозитории и не использовать пакет до устранения проблемы + +2) Сама сборка Rust-пакета `prometheus-exporter` осуществляется введением команды + +* для сборки `Debug`-версии проекта + +``` bash +cargo build +``` + +* для сборки `Release`-версии проекта +``` bash +cargo build --release +``` + +### Запуск проекта + +Для запуска проекта необходимо воспользоваться одной из команд: + +* для запуска `Debug`-версии проекта + +``` bash +cargo run +``` + +* для запуска `Release`-версии проекта +``` bash +cargo run --release +``` + +> Если необходимо работать с бинарными файлами, их можно найти по пути `<путь_до_пакета/target//таргет_сборки/>` + +### Преднастройка запуска + +Преднастройка пакета `prometheus-exporter` осуществляется внутри `.env` файла по примеру, описанному в файле `.env.example` + +``` toml + +# port binding for prometheus-exporter +# default value = 9100 +PROMETHEUS_EXPORTER_PORT = 9100 + +``` + +### Проверка работоспособности + +С точки зрения специфики программного модуля `Prometehus exporter` существует **2 способа** проверки работоспособности + +#### Прикладные требования для проверки работоспособности `prometheus-exporter` + +* наличие утилиты `curl` или ближайшего аналога + +#### Способы + +1) Попытка получить данные + +``` bash +curl -X GET http://localhost:9100/metrics +``` + +2) Попытка загрузить тестовую метрику + +Вид тестовой метрики по формату который принимает пакет `prometheus-exporter`: + +``` json +{ + "service_name" : "test", + "endpoint_name" : "test", + "metrics" : [{ + "id" : "test", + "type" : "", + "addr" : "test", + "value" : 12, + "description" : "test help", + }] +} +``` + +Команда загрузки тестовой метрики в `prometheus-exporter`: + +``` bash +curl -X POST -H 'Content-Type: application/json' 'http://localhost:9100/update' -d '{ "service_name" : "test", "endpoint_name" : "test", "metrics" : [{ "id" : "test", "type" : "", "addr" : "test", "value" : 12, "description" : "test help" }]}' +``` + +Ответом от сервера если метрика загрузится будет: + +``` +Ok +``` \ No newline at end of file