Spec-Zone.ru › MySQL 5.7

25.4.7 Предварительное фильтрование по потребителю

Таблица setup_consumers содержит список доступных типов потребителей и их включение:

mysql> SELECT * FROM performance_schema.setup_consumers;
+----------------------------------+---------+
| NAME                             | ENABLED |
+----------------------------------+---------+
| events_stages_current            | NO      |
| events_stages_history            | NO      |
| events_stages_history_long       | NO      |
| events_statements_current        | YES     |
| events_statements_history        | YES     |
| events_statements_history_long   | NO      |
| events_transactions_current      | NO      |
| events_transactions_history      | NO      |
| events_transactions_history_long | NO      |
| events_waits_current             | NO      |
| events_waits_history             | NO      |
| events_waits_history_long        | NO      |
| global_instrumentation           | YES     |
| thread_instrumentation           | YES     |
| statements_digest                | YES     |
+----------------------------------+---------+

Измените таблицу setup_consumers, чтобы повлиять на предварительное фильтрование на стадии потребителя и определить пункты назначения, в которые отправляются события. Для включения или отключения потребителя установите его значение ENABLED в YES или NO.

Изменения в таблице setup_consumers влияют на мониторинг немедленно.

Если вы отключите потребителя, сервер не тратит время на поддержание пунктов назначения для этого потребителя. Например, если вы не заинтересованы в исторической информации о событиях, отключите потребителей истории:

UPDATE performance_schema.setup_consumers
SET ENABLED = 'NO'
WHERE NAME LIKE '%history%';

Параметры потребителя в таблице setup_consumers образуют иерархию от верхних уровней к нижним. Применяются следующие принципы:

  • Пункты назначения, связанные с потребителем, не получают событий, если Performance Schema не проверяет потребителя и потребитель не включен.

  • Потребитель проверяется только в том случае, если все зависящие от него потребители (если таковые имеются) включены.

  • Если потребитель не проверяется или проверяется, но отключен, другие потребители, зависящие от него, не проверяются.

  • Зависимые потребители могут иметь свои собственные зависимые потребители.

  • Если событие не будет отправлено ни в один пункт назначения, Performance Schema его не генерирует.

В следующих списках описаны доступные значения потребителей. Для обсуждения нескольких типичных конфигураций потребителей и их влияния на инструментирование см. Раздел 25.4.8, «Примеры конфигураций потребителей».

  • Глобальные и потоковые потребители

  • Потребители событий ожидания

  • Потребители событий стадии

  • Потребители событий операторов

  • Потребители событий транзакций

  • Потребитель сводки операторов

Глобальные и потоковые потребители

  • global_instrumentation является потребителем наивысшего уровня. Если global_instrumentation имеет значение NO, это отключает глобальную инструментировку. Все остальные настройки находятся на более низком уровне и не проверяются; неважно, что они установлено. Не сохраняется информация о глобальных и потоковых состояниях, и не собираются отдельные события в таблицах current-events и event-history. Если global_instrumentation имеет значение YES, Performance Schema сохраняет информацию о глобальных состояниях и также проверяет потребителя thread_instrumentation.

  • thread_instrumentation проверяется только в том случае, если global_instrumentation имеет значение YES. В противном случае, если thread_instrumentation имеет значение NO, это отключает потокоспецифическую инструментировку, и все настройки нижнего уровня игнорируются. Не сохраняется информация о каждом потоке, и не собираются отдельные события в таблицах current-events и event-history. Если thread_instrumentation имеет значение YES, Performance Schema сохраняет потокоспецифическую информацию и также проверяет потребителей events_xxx_current.

Потребители событий ожидания

Для этих потребителей необходимо, чтобы как global_instrumentation, так и thread_instrumentation имели значение YES, иначе они не проверяются. Если проверка проходит, они действуют следующим образом:

  • events_waits_current, если NO, отключает сбор отдельных событий ожидания в таблице events_waits_current. Если YES, он включает сбор событий ожидания, и Performance Schema проверяет потребителей events_waits_history и events_waits_history_long.

  • events_waits_history не проверяется, если event_waits_current имеет значение NO. В противном случае, значение events_waits_history равное NO или YES отключает или включает сбор событий ожидания в таблице events_waits_history.

  • events_waits_history_long не проверяется, если event_waits_current имеет значение NO. В противном случае, значение events_waits_history_long равное NO или YES отключает или включает сбор событий ожидания в таблице events_waits_history_long.

Потребители событий стадии

Для этих потребителей необходимо, чтобы как global_instrumentation, так и thread_instrumentation имели значение YES, иначе они не проверяются. Если проверка проходит, они действуют следующим образом:

  • events_stages_current, если NO, отключает сбор отдельных событий стадии в таблице events_stages_current. Если YES, он включает сбор событий стадии, и Performance Schema проверяет потребителей events_stages_history и events_stages_history_long.

  • events_stages_history не проверяется, если event_stages_current имеет значение NO. В противном случае, значение events_stages_history равное NO или YES отключает или включает сбор событий стадии в таблице events_stages_history.

  • events_stages_history_long не проверяется, если event_stages_current имеет значение NO. В противном случае, значение events_stages_history_long равное NO или YES отключает или включает сбор событий стадии в таблице events_stages_history_long.

Потребители событий операторов

Для этих потребителей необходимо, чтобы как global_instrumentation, так и thread_instrumentation имели значение YES, иначе они не проверяются. Если проверка проходит, они действуют следующим образом:

  • events_statements_current, если NO, отключает сбор отдельных событий операторов в таблице events_statements_current. Если YES, он включает сбор событий операторов, и Performance Schema проверяет потребителей events_statements_history и events_statements_history_long.

  • events_statements_history не проверяется, если events_statements_current имеет значение NO. В противном случае, значение events_statements_history равное NO или YES отключает или включает сбор событий операторов в таблице events_statements_history.

  • events_statements_history_long не проверяется, если events_statements_current имеет значение NO. В противном случае, значение events_statements_history_long равное NO или YES отключает или включает сбор событий операторов в таблице events_statements_history_long.

END_OF_DOCUMENT_MARKER

Потребители событий транзакций

Для этих потребителей необходимо, чтобы оба global_instrumentation и thread_instrumentation были YES, иначе они не проверяются. Если они проверены, они действуют следующим образом:

  • events_transactions_current, если NO, отключает сбор отдельных событий транзакций в таблице events_transactions_current. Если YES, то это включает сбор событий транзакций, и Performance Schema проверяет потребителей events_transactions_history и events_transactions_history_long.

  • events_transactions_history не проверяется, если events_transactions_current имеет значение NO. В противном случае значение events_transactions_history, равное NO или YES, отключает или включает сбор событий транзакций в таблице events_transactions_history.

  • events_transactions_history_long не проверяется, если events_transactions_current имеет значение NO. В противном случае значение events_transactions_history_long, равное NO или YES, отключает или включает сбор событий транзакций в таблице events_transactions_history_long.

Потребитель дайджестов запросов

Потребитель statements_digest требует, чтобы global_instrumentation был YES, иначе он не проверяется. Нет зависимости от потребителей событий запросов, поэтому вы можете получить статистику по дайджестам, не собирая статистику в events_statements_current, что выгодно с точки зрения накладных расходов. И наоборот, вы можете получить подробные запросы в events_statements_current без дайджестов (столбцы DIGEST и DIGEST_TEXT являются NULL).

Дополнительную информацию о дайджестировании запросов см. в разделе 25.10, «Дайджесты запросов Performance Schema».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/performance-schema-consumer-filtering.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API