Pre-Filtering by Consumer
The setup_consumers table lists the available consumer types and which are enabled:
mysql> SELECT * FROM setup_consumers;
+--------------------------------+---------+
| NAME | ENABLED |
+--------------------------------+---------+
| events_stages_current | NO |
| events_stages_history | NO |
| events_stages_history_long | NO |
| events_statements_current | YES |
| events_statements_history | NO |
| events_statements_history_long | NO |
| events_waits_current | NO |
| events_waits_history | NO |
| events_waits_history_long | NO |
| global_instrumentation | YES |
| thread_instrumentation | YES |
+--------------------------------+---------+
Modify the setup_consumers table to affect pre-filtering at the consumer stage and determine the destinations to which events are sent. To enable or disable a consumer, set its ENABLED value to YES or NO.
Modifications to the setup_consumers table affect monitoring immediately.
If you disable a consumer, the server does not spend time maintaining it. For example, you can disable history consumers if you do not care about historical event information:
mysql>UPDATE setup_consumers->SET ENABLED = 'NO' WHERE NAME LIKE '%history%';
The consumer settings in the setup_consumers table form a hierarchy from higher levels to lower. The following principles apply:
- Destinations associated with a consumer receive no events unless the Performance Schema checks the consumer and the consumer is enabled.
- A consumer is checked only if all consumers that it depends on (if any) are enabled.
- If a consumer is not checked, or is checked but is disabled, other consumers that depend on it are not checked.
- Dependent consumers may have their own dependent consumers.
- If an event would not be sent to any destination, the Performance Schema does not produce it.
The following lists describe the available consumer values. For discussion of several representative consumer configurations and their effect on instrumentation, see , "Example Consumer Configurations".
Global and Thread Consumers
global_instrumentationis the highest level consumer. Ifglobal_instrumentationisNO, it disables global instrumentation. All other settings are lower level and are not checked; it does not matter what they are set to. No global or per thread information is maintained and no individual events are collected in the current-events or event-history tables. Ifglobal_instrumentationisYES, the Performance Schema maintains information for global states and also checks thethread_instrumentationconsumer.thread_instrumentationis checked only ifglobal_instrumentationisYES. Otherwise, ifthread_instrumentationisNO, it disables thread-specific instrumentation and all lower-level settings are ignored. No information is maintained per thread and no individual events are collected in the current-events or event-history tables. Ifthread_instrumentationisYES, the Performance Schema maintains thread-specific information and also checksevents_consumers.xxx_current
Wait Event Consumers
These consumers require both global_instrumentation and thread_instrumentation to be YES or they are not checked.
events_waits_current, ifNO, disables collection of individual wait events in theevents_waits_currenttable. IfYES, it enables wait event collection and the Performance Schema checks theevents_waits_historyandevents_waits_history_longconsumers.events_waits_historyis not checked ifevent_waits_currentisNO. Otherwise, aevents_waits_historyvalue ofNOorYESdisables or enables collection of wait events in theevents_waits_historytable.events_waits_history_longis not checked ifevent_waits_currentisNO. Otherwise, aevents_waits_history_longvalue ofNOorYESdisables or enables collection of wait events in theevents_waits_history_longtable.
Stage Event Consumers
These consumers require both global_instrumentation and thread_instrumentation to be YES or they are not checked.
events_stages_current, ifNO, disables collection of individual stage events in theevents_stages_currenttable. IfYES, it enables stage event collection and the Performance Schema checks theevents_stages_historyandevents_stages_history_longconsumers.events_stages_historyis not checked ifevent_stages_currentisNO. Otherwise, aevents_stages_historyvalue ofNOorYESdisables or enables collection of stage events in theevents_stages_historytable.events_stages_history_longis not checked ifevent_stages_currentisNO. Otherwise, aevents_stages_history_longvalue ofNOorYESdisables or enables collection of stage events in theevents_stages_history_longtable.
Statement Event Consumers
These consumers require both global_instrumentation and thread_instrumentation to be YES or they are not checked.
events_statements_current, ifNO, disables collection of individual statement events in theevents_statements_currenttable. IfYES, it enables statement event collection and the Performance Schema checks theevents_statements_historyandevents_statements_history_longconsumers.events_statements_historyis not checked ifevent_statements_currentisNO. Otherwise, aevents_statements_historyvalue ofNOorYESdisables or enables collection of statement events in theevents_statements_historytable.events_statements_history_longis not checked ifevent_statements_currentisNO. Otherwise, aevents_statements_history_longvalue ofNOorYESdisables or enables collection of statement events in theevents_statements_history_longtable.