stdguard_pgexporter_gitverse

0

Описание

stdguard_queries — экспортёр кастомных метрик stdguard_queries — это Prometheus-экспортёр, который собирает пользовательские метрики, выполняя SQL-запросы к базам данных и bash-команды на сервере. Вся конфигурация задаётся в двух YAML-файлах: stdguard_queries.yaml — содержит SQL-запросы к базам данных, включая поддержку сложной логики, фильтрации

Языки

  • Go100%
месяц назад
README.md

stdguard_queries - экспортёр кастомных метрик

stdguard_queries - это Prometheus-экспортёр, который собирает пользовательские метрики, выполняя SQL-запросы к базам данных и bash-команды на сервере. Вся конфигурация задаётся в двух YAML-файлах:

  • stdguard_queries.yaml
    - содержит SQL-запросы к базам данных, включая поддержку сложной логики, фильтрации и маршрутизации (master / replica).
  • stdguard_system.yaml
    - описывает bash-команды для получения системных данных (состояние бэкапов, мониторинг логов, количество процессов и т.п.).

Экспортёр периодически выполняет запросы/команды, преобразует результаты в метрики формата Prometheus и предоставляет их по HTTP-эндпоинту

/metrics
.


Особенности

  • Гибкая конфигурация - все метрики описываются декларативно в YAML.
  • Поддержка PostgreSQL - используется стандартный драйвер
    database/sql
    с возможностью добавления других СУБД.
  • Выполнение bash-команд - удобно для сбора данных, недоступных через SQL (проверка бэкапов, логов, системных параметров).
  • Маршрутизация запросов - параметр
    master: true/false
    позволяет выполнять запросы только на master-сервере или на всех узлах.
  • Исключение БД - глобальный список
    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 и алертинга.