ENetrebin (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
Строка 1: | Строка 1: | ||
'''''[ | '''''[[Расширения]] / Расширения 2.0 / MySQL (remote monitoring)''''' | ||
Удаленно отслеживайте свои экземпляры MySQL, собирайте ключевые показатели эффективности и информацию о медленных запросах. | Удаленно отслеживайте свои экземпляры MySQL, собирайте ключевые показатели эффективности и информацию о медленных запросах. | ||
Строка 36: | Строка 36: | ||
=== Сбор самых медленных запросов === | === Сбор самых медленных запросов === | ||
Включите запись медленных запросов в таблицу: | Включите запись медленных запросов в таблицу: | ||
< | <SET GLOBAL log_output = 'TABLE'; | ||
SET GLOBAL slow_query_log = 'ON';</code> | SET GLOBAL slow_query_log = 'ON';</code> | ||
Порог медленного запроса по умолчанию составляет 10 секунд. Вы можете выбрать порог «медленного запроса», выполнив: | Порог медленного запроса по умолчанию составляет 10 секунд. Вы можете выбрать порог «медленного запроса», выполнив: | ||
Строка 66: | Строка 66: | ||
<code>SELECT * FROM information_schema.INNODB_METRICS WHERE name IN ('cpu_utime_abs', 'cpu_stime_abs');</code> | <code>SELECT * FROM information_schema.INNODB_METRICS WHERE name IN ('cpu_utime_abs', 'cpu_stime_abs');</code> | ||
И: | И: | ||
< | <SELECT SUBSTRING_INDEX(event_name,'/',2) AS code_area, | ||
SUM(current_alloc) AS current_alloc | SUM(current_alloc) AS current_alloc | ||
FROM sys.x$memory_global_by_current_bytes | FROM sys.x$memory_global_by_current_bytes |
Текущая версия от 12:10, 11 ноября 2024
Расширения / Расширения 2.0 / MySQL (remote monitoring)
Удаленно отслеживайте свои экземпляры MySQL, собирайте ключевые показатели эффективности и информацию о медленных запросах.
Обзор
Удаленно отслеживайте базы данных MySQL, в которых невозможно установить ЕдиныйАгент.
Начало работы
Активация расширения
- Активируйте расширение в Hub, перейдя по адресу:
- Расширения → MySQL → Добавить в среду
- Добавьте новую конфигурацию мониторинга для каждого экземпляра MySQL, который вы хотите отслеживать.
Создание пользователя MySQL
Создайте пользователя, идентифицируемого собственным паролем, настройте имя пользователя и пароль по своему усмотрению.
CREATE USER 'astromkey'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
Предоставьте пользователю разрешения:
GRANT SELECT ON performance_schema.* TO 'astromkey'@'%';
- Позволяет пользователю запрашивать схему Performance_schema.
GRANT PROCESS ON *.* TO 'astromkey'@'%';
- Позволяет пользователю видеть показатели потоков и подключений других пользователей.
GRANT SHOW DATABASES ON *.* TO 'astromkey'@'%';
- Позволяет пользователю видеть показатели базы данных для всех баз данных.
GRANT SELECT ON mysql.slow_log TO 'astromkey'@'%';
- Позволяет пользователю запрашивать медленные запросы
GRANT SELECT ON sys.x$memory_global_by_current_bytes TO 'astromkey'@'%';
- Разрешить пользователю запрашивать статистику памяти
Сбор показателей инфраструктуры
Чтобы включить сбор показателей ЦП, запустите этот запрос на экземпляре MySQL:
SET GLOBAL innodb_monitor_enable='cpu%';
Сбор самых медленных запросов
Включите запись медленных запросов в таблицу:
<SET GLOBAL log_output = 'TABLE'; SET GLOBAL slow_query_log = 'ON';
Порог медленного запроса по умолчанию составляет 10 секунд. Вы можете выбрать порог «медленного запроса», выполнив:
SET GLOBAL long_query_time = 2;
Это установит порог медленных запросов равным 2 секундам.
Информация о совместимости
- MySQL >= 5.7
Часто задаваемые вопросы
Почему я не вижу метрики Waits?
Чтобы собрать показатели ожидания, необходимо включить сбор данных для экземпляра MySQL. См. документацию: https://dev.mysql.com/doc/mysql-perfschema-excerpt/8.0/en/performance-schema-wait-tables.html
Могу ли я отслеживать MariaDB с помощью этого расширения?
Это расширение тестировалось только на экземплярах MySQL. MariaDB официально не поддерживается через это расширение.
Я получаю сообщение об ошибке «Открытый ключ RSA недоступен на стороне клиента»
Это означает, что имя пользователя не идентифицируется собственным паролем. См. раздел «Начало работы».
Я не вижу показателей процессора и памяти
Убедитесь, что для вашего экземпляра включен сбор данных.
- Для процессора:
SET GLOBAL innodb_monitor_enable='cpu%';
- Для памяти: посетите https://dev.mysql.com/doc/refman/8.0/en/monitor-mysql-memory-use.html .
Вы можете проверить возможность запроса данных, выполнив:
SELECT * FROM information_schema.INNODB_METRICS WHERE name IN ('cpu_utime_abs', 'cpu_stime_abs');
И:
<SELECT SUBSTRING_INDEX(event_name,'/',2) AS code_area, SUM(current_alloc) AS current_alloc FROM sys.x$memory_global_by_current_bytes GROUP BY SUBSTRING_INDEX(event_name,'/',2) ORDER BY SUM(current_alloc) DESC;
Я не вижу медленных запросов
См. Сбор самых медленных запросов
раздел «Начало работы».
Тип содержимого | Количество включенных объектов |
---|---|
Screen Injections | 1 |
Screen Logs Cards | 2 |
Screen Properties | 2 |
Screen Layout | 2 |
Generic Relationship | 2 |
Dashboards | 1 |
Screen Chart Groups | 6 |
Metric Metadata | 34 |
List Screen Layout | 1 |
Screen Entities Lists | 2 |
Generic Type | 2 |
Наборы функций
Ниже приведен полный список наборов функций, представленных в этой версии. Чтобы обеспечить соответствие вашим потребностям, отдельные метрики могут быть активированы и деактивированы вашим администратором во время настройки.
Наборы функций | Количество включенных показателей | ||
---|---|---|---|
waits | 4 | ||
Название метрики | Ключ метрики | Описание | Единица |
Waits IO | mysql.waits.waits_io.count | Сколько раз сервер ждал завершения операции ввода-вывода. | Count |
Waits IO Time | mysql.waits.waits_io_time.count | Общее время ожидания сервером завершения операций ввода-вывода. | MilliSecond |
Waits Sync | mysql.waits.waits_sync.count | Сколько раз сервер ждал завершения операции синхронизации. | Count |
Waits Sync Time | mysql.waits.waits_sync_time.count | Общее время ожидания сервером завершения операций синхронизации. | MilliSecond |
statements | 10 | ||
Название метрики | Ключ метрики | Описание | Единица |
Commits | mysql.statements.commit.count | Количество операторов COMMIT, выполненных этим сервером | Count |
Deletes | mysql.statements.delete.count | Количество операторов DELETE, выполненных этим сервером | Count |
Multi-Table Deletes | mysql.statements.delete_multi.count | Количество многотабличных операторов DELETE, выполненных этим сервером. | Count |
Inserts | mysql.statements.insert.count | Количество операторов INSERT, выполненных этим сервером | Count |
Selects | mysql.statements.select.count | Количество операторов SELECT, выполненных этим сервером | Count |
Updates | mysql.statements.update.count | Количество операторов UPDATE, выполненных этим сервером. | Count |
Executes | mysql.statements.execute.count | Количество операторов EXECUTE, выполненных этим сервером. | Count |
Multi-Table Updates | mysql.statements.update_multi.count | Количество многотабличных операторов UPDATE, выполненных этим сервером. | Count |
Bytes Sent | mysql.statements.bytes_sent.count | Количество байт, отправленных всем клиентам | Byte |
Bytes Received | mysql.statements.bytes_received.count | Количество байт, полученных от всех клиентов | Byte |
global_status | 16 | ||
Название метрики | Ключ метрики | Описание | Единица |
Queries | mysql.global_status.queries.count | Количество запросов, выполненных этим сервером | Count |
Slow Queries | mysql.global_status.slow_queries.count | Количество запросов, которые заняли более long_query_time секунд. Этот счетчик увеличивается независимо от того, включен ли журнал медленных запросов. Для получения информации об этом журнале см. Раздел 5.4.5, «Журнал медленных запросов». | Count |
Table Locks Waited | mysql.global_status.table_locks_waited.count | Сколько раз запрос на блокировку таблицы не мог быть удовлетворен немедленно и требовалось ожидание. Если это значение велико и у вас есть проблемы с производительностью, вам следует сначала оптимизировать запросы, а затем либо разделить таблицу или таблицы, либо использовать репликацию. | Count |
Table Locks Immediate | mysql.global_status.table_locks_immediate.count | Сколько раз запрос на блокировку таблицы мог быть удовлетворен немедленно. | Count |
Current Connections | mysql.global_status.current_connections | Количество открытых на данный момент соединений. | Count |
Threads Running | mysql.global_status.threads_running | Количество потоков, которые не находятся в спящем режиме. | Count |
Innodb Buffer Pool Pages Data | mysql.global_status.innodb_buffer_pool_pages_data | Количество страниц в буферном пуле InnoDB, содержащих данные. В число входят как грязные, так и чистые страницы. При использовании сжатых таблиц сообщаемое значение Innodb_buffer_pool_pages_data может быть больше, чем Innodb_buffer_pool_pages_total. | Count |
Innodb Buffer Pool Pages Dirty | mysql.global_status.innodb_buffer_pool_pages_dirty | Текущее количество грязных страниц в буферном пуле InnoDB. | Count |
Innodb Buffer Pool Pages Free | mysql.global_status.innodb_buffer_pool_pages_free | Количество свободных страниц в буферном пуле InnoDB. | Count |
Innodb Buffer Pool Pages Total | mysql.global_status.innodb_buffer_pool_pages_total | Общий размер буферного пула InnoDB в страницах. При использовании сжатых таблиц сообщаемое значение Innodb_buffer_pool_pages_data может быть больше, чем Innodb_buffer_pool_pages_total. | Count |
Innodb Data Reads | mysql.global_status.innodb_data_reads.count | Общее количество чтений данных (чтений файлов ОС). | Count |
Innodb Data Writes | mysql.global_status.innodb_data_writes.count | Общее количество записей данных. | Count |
Innodb Data Read | mysql.global_status.innodb_data_read.count | Общий объем данных, прочитанных из файлов. | Byte |
Innodb Data Written | mysql.global_status.innodb_data_written.count | Общий объем записанных данных. | Byte |
Availability | mysql.global_status.availability | Можно ли установить соединение с базой данных | Percent |
Status | mysql.global_status.status | Статус AVAILABLE возвращается, если мы можем запросить базу данных. | State |
infrastructure | 3 | ||
Название метрики | Ключ метрики | Описание | Единица |
CPU User | mysql.infrastructure.cpu.user | Общее время процессора, затрачиваемое в пользовательском режиме. | Percent |
CPU System | mysql.infrastructure.cpu.system | Общее время процессора, проведенное в системном режиме. | Percent |
Memory | mysql.infrastructure.memory | Объем памяти, используемый для каждой области кода. | Byte |
databases | |||
Название метрики | Ключ метрики | Описание | Единица |
Database Size | mysql.databases.size | Размер базы данных | MegaByte |
slow_queries | 0 | ||
Нет соответствующих метрик |