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 |
| 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:
mysql>UPDATE setup_consumersSET 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 22.3.8, “Example Consumer Configurations”.
Global and Thread Consumers
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
Wait Event Consumers
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.
Stage Event Consumers
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.
Statement Event Consumers
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.
Statement Digest Consumer
This 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 will be
NULL).