Версия 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]