stdguard_pgexporter_gitverse
Описание
stdguard_queries — экспортёр кастомных метрик stdguard_queries — это Prometheus-экспортёр, который собирает пользовательские метрики, выполняя SQL-запросы к базам данных и bash-команды на сервере. Вся конфигурация задаётся в двух YAML-файлах: stdguard_queries.yaml — содержит SQL-запросы к базам данных, включая поддержку сложной логики, фильтрации
Языки
- Go100%
stdguard_queries - экспортёр кастомных метрик
stdguard_queries - это Prometheus-экспортёр, который собирает пользовательские метрики, выполняя SQL-запросы к базам данных и bash-команды на сервере. Вся конфигурация задаётся в двух YAML-файлах:
- содержит SQL-запросы к базам данных, включая поддержку сложной логики, фильтрации и маршрутизации (master / replica).stdguard_queries.yaml- описывает bash-команды для получения системных данных (состояние бэкапов, мониторинг логов, количество процессов и т.п.).stdguard_system.yaml
Экспортёр периодически выполняет запросы/команды, преобразует результаты в метрики формата Prometheus и предоставляет их по HTTP-эндпоинту .
Особенности
- Гибкая конфигурация - все метрики описываются декларативно в YAML.
- Поддержка PostgreSQL - используется стандартный драйвер
с возможностью добавления других СУБД.database/sql - Выполнение bash-команд - удобно для сбора данных, недоступных через SQL (проверка бэкапов, логов, системных параметров).
- Маршрутизация запросов - параметр
позволяет выполнять запросы только на master-сервере или на всех узлах.master: true/false - Исключение БД - глобальный список
для пропуска служебных БД.excluded_databases - Метки (labels) - поддерживается добавление произвольных меток, в том числе из результатов запросов (строковые колонки после числовых).
Конфигурация
Файл stdguard_queries.yaml
Глобальные настройки
Поле Описание type Тип метрики: gauge или counter query SQL-запрос (может быть многострочным) labels Список строковых меток, добавляемых к метрике metric_name Имя метрики в Prometheus help Описание метрики master Если true, запрос выполняется только на master-сервере (по умолчанию false) Важные замечания по формату SQL-запросов Первая колонка SELECT всегда должна содержать числовое значение метрики. Если требуется несколько числовых значений, они должны идти подряд, затем строковые колонки.
Количество строковых колонок должно совпадать с длиной списка labels.
Порядок строковых колонок должен соответствовать порядку меток в labels.
Файл stdguard_system.yaml
Секция commands Каждая команда описывается полями:
Поле Описание type Тип метрики: gauge или counter command Выполняемая команда (может быть многострочной). Вывод команды (stdout) используется как значение метрики. labels Список статических меток, добавляемых к метрике metric_name Имя метрики в Prometheus help Описание метрики
Примеры метрик
Абстрактный SQL-запрос
Пояснение:
Первая колонка (value) - числовое значение метрики (всегда 1, что делает эту метрику счётчиком наличия записей).
Остальные колонки (database, table, severity) используются как метки в том порядке, который указан в labels.
Запрос возвращает строки для всех временных таблиц, каждая строка превращается в отдельную временную серию с метками.
Абстрактная bash-команда
Пояснение:
Команда может быть многострочной.
Значение, выведенное в stdout (в данном случае число), интерпретируется как значение метрики.
Статическая метка service добавляется ко всем измерениям этой метрики.
Установка
Из исходного кода
Docker
Бинарные файлы
Скачайте релиз и распакуйте.
Использование с Prometheus
Добавьте в prometheus.yml:
После перезапуска Prometheus метрики станут доступны для визуализации в Grafana и алертинга.