MySQL (remote monitoring)

Материал из Документация Ключ-АСТРОМ

Расширения / Расширения 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 недоступен на стороне клиента»

Это означает, что имя пользователя не идентифицируется собственным паролем. См. раздел «Начало работы».

Я не вижу показателей процессора и памяти

Убедитесь, что для вашего экземпляра включен сбор данных.

Вы можете проверить возможность запроса данных, выполнив:

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
Нет соответствующих метрик