readme update merging #10

Merged
Ghost merged 1 commits from feature/readme into rc 2025-03-20 16:29:52 +03:00
2 changed files with 116 additions and 2 deletions

View File

@ -1 +1,3 @@
# port binding for prometheus-exporter
# default value = 9100
PROMETHEUS_EXPORTER_PORT = 9100 PROMETHEUS_EXPORTER_PORT = 9100

114
README.md
View File

@ -1,3 +1,115 @@
# Prometheus exporter # Prometheus exporter
to handle updates of ZVKS metrics in local Registry and to share with Prometheus later Программный компонент проекта "Буревестник ВКС", предоставляющий функционал
"кастомного" `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/<debug или release>/таргет_сборки/>`
### Преднастройка запуска
Преднастройка пакета `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
```