22.214.171.124 The setup_instruments Table
setup_instruments table lists classes of instrumented objects for which events can be collected:
mysql> SELECT * FROM performance_schema.setup_instruments; +---------------------------------------------------+---------+-------+ | NAME | ENABLED | TIMED | +---------------------------------------------------+---------+-------+ ... | stage/sql/end | NO | NO | | stage/sql/executing | NO | NO | | stage/sql/init | NO | NO | | stage/sql/insert | NO | NO | ... | statement/sql/load | YES | YES | | statement/sql/grant | YES | YES | | statement/sql/check | YES | YES | | statement/sql/flush | YES | YES | ... | wait/synch/mutex/sql/LOCK_global_read_lock | YES | YES | | wait/synch/mutex/sql/LOCK_global_system_variables | YES | YES | | wait/synch/mutex/sql/LOCK_lock_db | YES | YES | | wait/synch/mutex/sql/LOCK_manager | YES | YES | ... | wait/synch/rwlock/sql/LOCK_grant | YES | YES | | wait/synch/rwlock/sql/LOGGER::LOCK_logger | YES | YES | | wait/synch/rwlock/sql/LOCK_sys_init_connect | YES | YES | | wait/synch/rwlock/sql/LOCK_sys_init_slave | YES | YES | ... | wait/io/file/sql/binlog | YES | YES | | wait/io/file/sql/binlog_index | YES | YES | | wait/io/file/sql/casetest | YES | YES | | wait/io/file/sql/dbopt | YES | YES | ...
Each instrument added to the source code provides a row for the
setup_instruments table, even when the instrumented code is not executed. When an instrument is enabled and executed, instrumented instances are created, which are visible in the
tables, such as
Modifications to most
setup_instruments rows affect monitoring immediately. For some instruments, modifications are effective only at server startup; changing them at runtime has no effect. This affects primarily mutexes, conditions, and rwlocks in the server, although there may be other instruments for which this is true.
setup_instruments table has these columns:
The instrument name. Instrument names may have multiple parts and form a hierarchy, as discussed in Section 25.6, “Performance Schema Instrument Naming Conventions”. Events produced from execution of an instrument have an
EVENT_NAMEvalue that is taken from the instrument
NAMEvalue. (Events do not really have a “name,” but this provides a way to associate events with instruments.)
Whether the instrument is enabled. The value is
NO. A disabled instrument produces no events. This column can be modified, although setting
ENABLEDhas no effect for instruments that have already been created.
Whether the instrument is timed. The value is
NO. This column can be modified, although setting
TIMEDhas no effect for instruments that have already been created.
For memory instruments, the
setup_instrumentsis ignored because memory operations are not timed.
If an enabled instrument is not timed, the instrument code is enabled, but the timer is not. Events produced by the instrument have
TIMER_WAITtimer values. This in turn causes those values to be ignored when calculating the sum, minimum, maximum, and average time values in summary tables.