readme update merging #10
|
|
@ -1 +1,3 @@
|
||||||
|
# port binding for prometheus-exporter
|
||||||
|
# default value = 9100
|
||||||
PROMETHEUS_EXPORTER_PORT = 9100
|
PROMETHEUS_EXPORTER_PORT = 9100
|
||||||
114
README.md
114
README.md
|
|
@ -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
|
||||||
|
```
|
||||||
Loading…
Reference in New Issue