25.12.2.3 The setup_instruments Table
The 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 xxx_instancesfile_instances or rwlock_instances.
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.
For more information about the role of the setup_instruments table in event filtering, see Section 25.4.3, “Event Pre-Filtering”.
The setup_instruments table has these columns:
-
NAMEThe 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 instrumentNAMEvalue. (Events do not really have a “name,” but this provides a way to associate events with instruments.) -
ENABLEDWhether the instrument is enabled. The value is
YESorNO. A disabled instrument produces no events. This column can be modified, although settingENABLEDhas no effect for instruments that have already been created. -
TIMEDWhether the instrument is timed. The value is
YESorNO. This column can be modified, although settingTIMEDhas no effect for instruments that have already been created.For memory instruments, the
TIMEDcolumn insetup_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
NULLfor theTIMER_START,TIMER_END, andTIMER_WAITtimer values. This in turn causes those values to be ignored when calculating the sum, minimum, maximum, and average time values in summary tables.
TRUNCATE TABLE is not permitted for the setup_instruments table.
© 2025 Oracle
Licensed under the GPLv2 License.