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.