prometheus-exporter/README.md

115 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Prometheus exporter
Программный компонент проекта "Буревестник ВКС", предоставляющий функционал
"кастомного" `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
```