sql_exporter


Репозиторий: sql_exporter

Документация: Доступна в репозитории (по использованию экспортера и настройке собираемых метрик)

Экспортер для мониторинга SQL-баз данных. Может быть запущен как процесс или как сервис.

Примечание

Примеры конфигурации и использования для различных СУБД можно найти в разделе «Конфигурирование баз данных».

Описание работы

sql_exporter предоставляет метрики из SQL-запросов к различным базам данных.

Это стандартный Prometheus экспортер с HTTP-сервером для отображения метрик.

Он содержит

Эндпойнт /metrics со стандартными метриками (go, proc, promhttp)

Возможность настройки пользовательских SQL-запросов для:

  • MySQL/MariaDB

  • PostgreSQL

  • Oracle

  • Microsoft SQL Server

  • SQLite

Основные возможности:

  • Поддержка множества SQL-драйверов

  • Настройка частоты опроса для каждого задания

  • Преобразование результатов SQL-запросов в метрики Prometheus

  • Поддержка параметризованных запросов

  • Отслеживание роста таблиц

  • Мониторинг производительности запросов

Запуск экспортёра

Возможна настройка Ui и через конфигурационный файл агента.

Через конфигурационный файл агента

config.yml
exporters:
  - name: sql_exporter
    start_type: args
    args: "--config.file=configs/sql_exporter.yml --web.listen-address=0.0.0.0:9399"
    address: 127.0.0.1:9399
    labels:
      component: database
      hostname: my-hostname-vm

exporters - секция в которой описывается запуск экспортёров

name - должно совпадать с именем бинарного файла (в данном случае sql_exporter)

start_type - тип запуска экспортёра

args - аргументы командной строки передающиеся экспортёру

address - адрес для опроса экспортёра агентом

labels - дополнительные лейблы которые будут добавлены к метрикам экспортёра

component - пример дополнительного лейбла

hostname - рекомендованый лейбл, по умолчанию hostname агента

Конфигурационный файл экспортера

Пример конфигурации:

configs/sql_exporter.yml
jobs:
- name: "postgresql_stats"
  interval: "30s"
  connections:
  - "postgresql://user:password@localhost:5432/dbname?sslmode=disable"
  queries:
  - name: "connection_stats"
    sql: "SELECT COUNT(*) as connections FROM pg_stat_activity"
    metrics:
    - name: "postgres_connections"
      type: "gauge"
      help: "Number of active connections"
      values: ["connections"]

Проверка работы

После запуска метрики будут доступны по адресу:

http://localhost:9399/metrics

Примечание

Замените localhost на IP-адрес хоста с конфигурируемым агентом.