Версия 0.14.0

Выпущена около декабря 2021 года. Это стабильная версия, которая поддерживает MySQL 5.1 и выше, но некоторые методы сбора метрик ограничены для версий MySQL ниже 5.6.

Ключевые особенности и характеристики:
1. Поддерживаемые коллекторы:

  • Основные коллекторы: global_status, global_variables, slave_status, info_schema.processlist, info_schema.innodb_metrics, auto_increment.columns, binlog_size, info_schema.tablestats, info_schema.query_response_time, info_schema.userstats, info_schema.tables, perf_schema.tablelocks, perf_schema.file_events, perf_schema.eventswaits, perf_schema.indexiowaits, perf_schema.tableiowaits.
  • Поддержка сбора метрик для InnoDB (innodb_cmp, innodb_cmpmem), heartbeat и других специфичных функций MySQL.
  • Возможность фильтрации метрик через параметр collect[] в конфигурации Prometheus для выборочного сбора.

2. Конфигурация:

  • Поддержка настройки через переменную окружения DATA_SOURCE_NAME (например, user:password@(hostname:3306)/) или файл конфигурации .my.cnf.
  • Поддержка TLS и базовой аутентификации через параметр --web.config.file.

3. Ограничения:

  • Не все методы сбора метрик поддерживаются для MySQL < 5.6.
  • Ограниченная производительность при высоких нагрузках без настройки лимита соединений (MAX_USER_CONNECTIONS).
  • Отсутствие поддержки некоторых новых коллекторов, появившихся в более поздних версиях.

4. Производительность и стабильность:

  • Версия оптимизирована для базового мониторинга, но может быть неэффективной при большом количестве метрик или сложных конфигурациях.
  • Требуется ручная настройка прав доступа для пользователя MySQL (например, GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.*).

Пример конфигурации (на основе systemd-сервиса):

[Service]
User=mysqld_exporter
Group=mysqld_exporter
Environment="DATA_SOURCE_NAME=mysqld_exporter:password@tcp(127.0.0.1:3306)/"
ExecStart=/usr/local/bin/mysqld_exporter \
  --config.my-cnf /etc/mysql_exporter/.my.cnf \
  --collect.global_status \
  --collect.info_schema.innodb_metrics \
  --collect.auto_increment.columns \
  --collect.info_schema.processlist

Версия 0.17.2

Выпущена 26 февраля 2025 года. Это последняя версия на момент запроса, с улучшениями производительности и новыми функциями. Поддерживает MySQL 5.1 и выше, с улучшенной совместимостью для более новых версий.

Ключевые особенности и изменения:
1. Новые и обновленные коллекторы:

  • Исправлен запрос в коллекторе perf_schema.events_statements_summary_by_digest (фикс бага #920), что улучшило сбор статистики производительности запросов.[](https://github.com/prometheus/mysqld_exporter/releases)
  • Поддержка всех коллекторов из 0.14.0, но с оптимизациями для более эффективного сбора метрик.
  • Улучшена совместимость с современными версиями MySQL (например, MySQL 8.x) и MariaDB.

2. Изменения в конфигурации:

  • Удалена поддержка устаревшей переменной окружения DATA_SOURCE_NAME. Теперь рекомендуется использовать файл .my.cnf или аргументы командной строки (например, --mysqld.address=localhost:3306, --mysqld.username=exporter).[](https://github.com/prometheus/mysqld_exporter/releases)
  • Файл конфигурации по умолчанию изменён на .my.cnf в рабочей директории процесса. Для использования старого пути $HOME/.my.cnf требуется указать флаг --config.my-cnf="$HOME/.my.cnf".[](https://github.com/prometheus/mysqld_exporter/releases)
  • Улучшена поддержка TLS и аутентификации, включая настройку CA-сертификатов и клиентских SSL-ключей.

3. Исправления и оптимизации:

  • Удалены некоторые внутренние метрики скрейпинга для упрощения и повышения производительности.[](https://github.com/prometheus/mysqld_exporter/releases)
  • Оптимизирована работа с большими базами данных, особенно при сборе метрик из information_schema и performance_schema.
  • Добавлены новые параметры для управления таймаутами, такие как --lock_wait_timeout (по умолчанию 2 секунды), чтобы избежать длительной блокировки метаданных.

4. Новые функции:

  • Улучшена поддержка мониторинга репликации, включая метрики для pt-heartbeat (collect.heartbeat) и более точное отслеживание задержек репликации.
  • Добавлены новые параметры для настройки, такие как --log_slow_filter для исключения медленных запросов при скрейпинге (не поддерживается Oracle MySQL).

Пример конфигурации (Docker, версия 0.17.2):

docker run -d \
  -p 9104:9104 \
  -v /home/user/.my.cnf:/.my.cnf \
  --network my-mysql-network \
  prom/mysqld-exporter \
  --mysqld.address=localhost:3306 \
  --mysqld.username=exporter \
  --collect.global_status \
  --collect.info_schema.processlist

Сравнение ключевых различий

| Характеристика | 0.14.0 | 0.17.2 |
|---------------------------------------|-----------------------------------------------------------------------------|-----------------------------------------------------------------------------|
| Дата выпуска | Декабрь 2021 | Февраль 2025 |
| Поддержка DATA_SOURCE_NAME | Поддерживается (например, mysqld_exporter:password@tcp(127.0.0.1:3306)/) | Удалена, требуется .my.cnf или аргументы командной строки (--mysqld.address) |
| Конфигурация по умолчанию | Требуется явное указание пути к .my.cnf | По умолчанию .my.cnf в рабочей директории, можно переопределить |
| Коллекторы | Базовый набор, включая global_status, slave_status, innodb_metrics | Те же + улучшения в perf_schema.events_statements_summary_by_digest |
| Производительность | Базовая, возможны проблемы при больших нагрузках | Оптимизирована, улучшена работа с большими БД и репликацией |
| TLS/аутентификация | Поддерживается через --web.config.file | Улучшена, с поддержкой CA-сертификатов и клиентских SSL-ключей |
| Параметры таймаутов | Ограниченная поддержка | Добавлен --lock_wait_timeout и другие параметры для управления блокировками |
| Совместимость | MySQL 5.1+, ограничения для < 5.6 | Улучшена совместимость с MySQL 8.x и MariaDB |
| Удалённые метрики | Все метрики экспонируются по умолчанию | Удалены некоторые внутренние метрики скрейпинга для оптимизации |

Вывод

  • 0.14.0 подходит для базового мониторинга MySQL с минимальными требованиями. Однако она менее производительна и имеет ограниченную гибкость конфигурации, особенно для современных версий MySQL. Использование DATA_SOURCE_NAME делает настройку проще, но устаревшей.
  • 0.17.2 — более современная и оптимизированная версия с улучшенной производительностью, поддержкой новых параметров (например, lock_wait_timeout) и лучшей совместимостью с новыми версиями MySQL. Удаление DATA_SOURCE_NAME требует обновления конфигураций, но делает настройку более прозрачной и безопасной.

Рекомендация: Если вы используете 0.14.0, обновление до 0.17.2 рекомендуется для улучшения производительности и совместимости, особенно для MySQL 8.x или высоконагруженных систем. Однако будьте готовы обновить конфигурации, так как DATA_SOURCE_NAME больше не поддерживается. Для деталей обновления обратитесь к CHANGELOG на GitHub: https://github.com/prometheus/mysqld_exporter/blob/master/CHANGELOG.md.[](https://github.com/prometheus/mysqld_exporter/releases)

[file-name 000173_2025-07-17_17-42-40.txt]