The setup_consumers
table lists the available consumer types and which are enabled:
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 | 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 |
+----------------------------------+---------+
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 destinations for that consumer. For example, if you do not care about historical event information, disable the history consumers:
UPDATE performance_schema.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 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 Section 27.4.8, “Example Consumer Configurations”.
global_instrumentation
is the highest level consumer. If global_instrumentation
is NO
, 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. If global_instrumentation
is YES
, the Performance Schema maintains information for global states and also checks the thread_instrumentation
consumer.
thread_instrumentation
is checked only if global_instrumentation
is YES
. Otherwise, if thread_instrumentation
is NO
, 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. If thread_instrumentation
is YES
, the Performance Schema maintains thread-specific information and also checks events_
consumers.xxx
_current
These consumers require both global_instrumentation
and thread_instrumentation
to be YES
or they are not checked. If checked, they act as follows:
events_waits_current
, if NO
, disables collection of individual wait events in the events_waits_current
table. If YES
, it enables wait event collection and the Performance Schema checks the events_waits_history
and events_waits_history_long
consumers.
events_waits_history
is not checked if event_waits_current
is NO
. Otherwise, an events_waits_history
value of NO
or YES
disables or enables collection of wait events in the events_waits_history
table.
events_waits_history_long
is not checked if event_waits_current
is NO
. Otherwise, an events_waits_history_long
value of NO
or YES
disables or enables collection of wait events in the events_waits_history_long
table.
These consumers require both global_instrumentation
and thread_instrumentation
to be YES
or they are not checked. If checked, they act as follows:
events_stages_current
, if NO
, disables collection of individual stage events in the events_stages_current
table. If YES
, it enables stage event collection and the Performance Schema checks the events_stages_history
and events_stages_history_long
consumers.
events_stages_history
is not checked if event_stages_current
is NO
. Otherwise, an events_stages_history
value of NO
or YES
disables or enables collection of stage events in the events_stages_history
table.
events_stages_history_long
is not checked if event_stages_current
is NO
. Otherwise, an events_stages_history_long
value of NO
or YES
disables or enables collection of stage events in the events_stages_history_long
table.
These consumers require both global_instrumentation
and thread_instrumentation
to be YES
or they are not checked. If checked, they act as follows:
events_statements_current
, if NO
, disables collection of individual statement events in the events_statements_current
table. If YES
, it enables statement event collection and the Performance Schema checks the events_statements_history
and events_statements_history_long
consumers.
events_statements_history
is not checked if events_statements_current
is NO
. Otherwise, an events_statements_history
value of NO
or YES
disables or enables collection of statement events in the events_statements_history
table.
events_statements_history_long
is not checked if events_statements_current
is NO
. Otherwise, an events_statements_history_long
value of NO
or YES
disables or enables collection of statement events in the events_statements_history_long
table.
These consumers require both global_instrumentation
and thread_instrumentation
to be YES
or they are not checked. If checked, they act as follows:
events_transactions_current
, if NO
, disables collection of individual transaction events in the events_transactions_current
table. If YES
, it enables transaction event collection and the Performance Schema checks the events_transactions_history
and events_transactions_history_long
consumers.
events_transactions_history
is not checked if events_transactions_current
is NO
. Otherwise, an events_transactions_history
value of NO
or YES
disables or enables collection of transaction events in the events_transactions_history
table.
events_transactions_history_long
is not checked if events_transactions_current
is NO
. Otherwise, an events_transactions_history_long
value of NO
or YES
disables or enables collection of transaction events in the events_transactions_history_long
table.
The statements_digest
consumer requires global_instrumentation
to be YES
or it is not checked. There is no dependency on the statement event consumers, so you can obtain statistics per digest without having to collect statistics in events_statements_current
, which is advantageous in terms of overhead. Conversely, you can get detailed statements in events_statements_current
without digests (the DIGEST
and DIGEST_TEXT
columns are NULL
in this case).
For more information about statement digesting, see Section 27.10, “Performance Schema Statement Digests and Sampling”.