MySQL (remote monitoring): различия между версиями
ENetrebin (обсуждение | вклад) (Новая страница: «Удаленно отслеживайте свои экземпляры MySQL, собирайте ключевые показатели эффективности...») |
ENetrebin (обсуждение | вклад) |
||
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
'''''[https://doc.ruscomtech.ru/index.php/%D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D1%8F Расширения] / [https://doc.ruscomtech.ru/index.php/%D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D1%8F#.D0.A0.D0.B0.D1.81.D1.88.D0.B8.D1.80.D0.B5.D0.BD.D0.B8.D1.8F_2.0 Расширения 2.0] / MySQL (remote monitoring)''''' | |||
Удаленно отслеживайте свои экземпляры MySQL, собирайте ключевые показатели эффективности и информацию о медленных запросах. | Удаленно отслеживайте свои экземпляры MySQL, собирайте ключевые показатели эффективности и информацию о медленных запросах. | ||
Строка 72: | Строка 74: | ||
=== Я не вижу медленных запросов === | === Я не вижу медленных запросов === | ||
См. <code>Сбор самых медленных запросов</code> раздел «Начало работы». | См. <code>Сбор самых медленных запросов</code> раздел «Начало работы». | ||
{| class="wikitable" | |||
|+ | |||
!Тип содержимого | |||
!Количество включенных объектов | |||
|- | |||
|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 | |||
|} | |||
== Наборы функций == | |||
Ниже приведен полный список наборов функций, представленных в этой версии. Чтобы обеспечить соответствие вашим потребностям, отдельные метрики могут быть активированы и деактивированы вашим администратором во время настройки. | |||
{| class="wikitable" | |||
|+ | |||
! colspan="2" |Наборы функций | |||
! colspan="2" |Количество включенных показателей | |||
|- | |||
| colspan="2" |'''waits''' | |||
| colspan="2" |'''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 | |||
|- | |||
| colspan="2" |'''statements''' | |||
| colspan="2" |'''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 | |||
|- | |||
| colspan="2" |'''global_status''' | |||
| colspan="2" |'''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 | |||
|- | |||
| colspan="2" |'''infrastructure''' | |||
| colspan="2" |'''3''' | |||
|- | |||
|''Название метрики'' | |||
|''Ключ метрики'' | |||
|''Описание'' | |||
|''Единица'' | |||
|- | |||
|CPU User | |||
|mysql.infrastructure.cpu.user | |||
|Общее время процессора, затрачиваемое в пользовательском режиме. | |||
|Percent | |||
|- | |||
|CPU System | |||
|mysql.infrastructure.cpu.system | |||
|Общее время процессора, проведенное в системном режиме. | |||
|Percent | |||
|- | |||
|Memory | |||
|mysql.infrastructure.memory | |||
|Объем памяти, используемый для каждой области кода. | |||
|Byte | |||
|- | |||
| colspan="2" |'''databases''' | |||
| colspan="2" | | |||
|- | |||
|''Название метрики'' | |||
|''Ключ метрики'' | |||
|''Описание'' | |||
|''Единица'' | |||
|- | |||
|Database Size | |||
|mysql.databases.size | |||
|Размер базы данных | |||
|MegaByte | |||
|- | |||
| colspan="2" |'''slow_queries''' | |||
| colspan="2" |'''0''' | |||
|- | |||
| colspan="4" |Нет соответствующих метрик | |||
|} |
Текущая версия на 07:46, 15 ноября 2023
Расширения / Расширения 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 | ||
Нет соответствующих метрик |