Spec-Zone.ru › MySQL 9.2

29.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_cpu            | NO      |
| events_statements_current        | YES     |
| events_statements_history        | YES     |
| events_statements_history_long   | NO      |
| events_transactions_current      | YES     |
| events_transactions_history      | YES     |
| 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 его не генерирует.

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

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

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

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

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

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

  • Потребитель сводных данных операторов

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

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

  • thread_instrumentation проверяется только при условии, что global_instrumentation имеет значение YES. В противном случае, если thread_instrumentation имеет значение NO, это отключает инструментотацию для отдельных потоков, и все настройки более низкого уровня игнорируются. Информация не сохраняется для каждого потока, и отдельные события не собираются в таблицах текущих событий или истории событий. Если 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_cpu, если NO, отключает измерение CPU_TIME. Если YES, и инструментотация включена и отслеживается, CPU_TIME измеряется.

  • 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.

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

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

  • 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).

Дополнительную информацию о сводных данных заявок см. в разделе 29.10, «Сводные данные и выборка заявок Performance Schema».

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

Spec-Zone.ru

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