MySQL 9.0.0
Source Code Documentation
Instrumentation Binary Interface
Collaboration diagram for Instrumentation Binary Interface:

Modules

 Cond Instrumentation (ABI)
 
 Error Instrumentation (ABI)
 
 File Instrumentation (ABI)
 
 Idle Instrumentation (ABI)
 
 Memory Instrumentation (ABI)
 
 Metadata Lock Instrumentation (ABI)
 
 Metric Instrumentation (ABI)
 
 Mutex Instrumentation (ABI)
 
 Row Lock Instrumentation (ABI)
 
 Rwlock Instrumentation (ABI)
 
 Socket Instrumentation (ABI)
 
 Stage Instrumentation (ABI)
 
 Statement Instrumentation (ABI)
 
 System Instrumentation (ABI)
 
 TLS Channel Instrumentation (ABI)
 
 Table Instrumentation (ABI)
 
 Thread Instrumentation (ABI)
 
 Transaction Instrumentation (ABI)
 

Classes

struct  PSI_placeholder
 
struct  PSI_instr
 Instrumented artifact. More...
 

Macros

#define PSI_DOCUMENT_ME   ""
 
#define PSI_FLAG_SINGLETON   (1 << 0)
 Singleton flag. More...
 
#define PSI_FLAG_MUTABLE   (1 << 1)
 Mutable flag. More...
 
#define PSI_FLAG_THREAD   (1 << 2)
 Per Thread flag. More...
 
#define PSI_FLAG_STAGE_PROGRESS   (1 << 3)
 Stage progress flag. More...
 
#define PSI_FLAG_RWLOCK_SX   (1 << 4)
 Shared Exclusive flag. More...
 
#define PSI_FLAG_TRANSFER   (1 << 5)
 Transferable flag. More...
 
#define PSI_FLAG_USER   (1 << 6)
 User flag. More...
 
#define PSI_FLAG_ONLY_GLOBAL_STAT   (1 << 7)
 Global stat only flag. More...
 
#define PSI_FLAG_RWLOCK_PR   (1 << 8)
 Priority lock flag. More...
 
#define PSI_FLAG_THREAD_SYSTEM   (1 << 9)
 System thread flag. More...
 
#define PSI_FLAG_AUTO_SEQNUM   (1 << 10)
 Automatic sequence number flag. More...
 
#define PSI_FLAG_NO_SEQNUM   (1 << 11)
 No sequence number flag. More...
 
#define PSI_FLAG_MEM_COLLECT   (1 << 12)
 Enable collecting the memory consumed by threads. More...
 
#define PSI_FLAG_DISABLED   (1 << 13)
 Instrument is disabled by default. More...
 
#define PSI_FLAG_UNTIMED   (1 << 14)
 Instrument is not timed by default. More...
 
#define PSI_VOLATILITY_UNKNOWN   0
 
#define PSI_VOLATILITY_PERMANENT   1
 
#define PSI_VOLATILITY_PROVISIONING   2
 
#define PSI_VOLATILITY_DDL   3
 
#define PSI_VOLATILITY_CACHE   4
 
#define PSI_VOLATILITY_SESSION   5
 
#define PSI_VOLATILITY_TRANSACTION   6
 
#define PSI_VOLATILITY_QUERY   7
 
#define PSI_VOLATILITY_INTRA_QUERY   8
 
#define PSI_COUNT_VOLATILITY   9
 

Variables

static constexpr unsigned PSI_INSTRUMENT_ME = 0
 
static constexpr unsigned PSI_NOT_INSTRUMENTED = 0
 

Detailed Description

Macro Definition Documentation

◆ PSI_COUNT_VOLATILITY

#define PSI_COUNT_VOLATILITY   9

◆ PSI_DOCUMENT_ME

#define PSI_DOCUMENT_ME   ""

◆ PSI_FLAG_AUTO_SEQNUM

#define PSI_FLAG_AUTO_SEQNUM   (1 << 10)

Automatic sequence number flag.

Generate thread instances names automatically.

◆ PSI_FLAG_DISABLED

#define PSI_FLAG_DISABLED   (1 << 13)

Instrument is disabled by default.

◆ PSI_FLAG_MEM_COLLECT

#define PSI_FLAG_MEM_COLLECT   (1 << 12)

Enable collecting the memory consumed by threads.

◆ PSI_FLAG_MUTABLE

#define PSI_FLAG_MUTABLE   (1 << 1)

Mutable flag.

This flag indicate that an instrumentation point is a general placeholder, that can mutate into a more specific instrumentation point.

◆ PSI_FLAG_NO_SEQNUM

#define PSI_FLAG_NO_SEQNUM   (1 << 11)

No sequence number flag.

Use thread instances names without sequence numbers.

◆ PSI_FLAG_ONLY_GLOBAL_STAT

#define PSI_FLAG_ONLY_GLOBAL_STAT   (1 << 7)

Global stat only flag.

This flag indicates statistics for the instrument are aggregated globally only. No per thread / account / user / host aggregations are available.

◆ PSI_FLAG_RWLOCK_PR

#define PSI_FLAG_RWLOCK_PR   (1 << 8)

Priority lock flag.

Indicates that rwlock support the priority lock scheduling.

◆ PSI_FLAG_RWLOCK_SX

#define PSI_FLAG_RWLOCK_SX   (1 << 4)

Shared Exclusive flag.

Indicates that rwlock support the shared exclusive state.

◆ PSI_FLAG_SINGLETON

#define PSI_FLAG_SINGLETON   (1 << 0)

Singleton flag.

This flag indicate that an instrumentation point is a singleton.

◆ PSI_FLAG_STAGE_PROGRESS

#define PSI_FLAG_STAGE_PROGRESS   (1 << 3)

Stage progress flag.

This flag apply to the stage instruments only. It indicates the instrumentation provides progress data.

◆ PSI_FLAG_THREAD

#define PSI_FLAG_THREAD   (1 << 2)

Per Thread flag.

This flag indicates the instrumented object is per thread. Reserved for future use.

◆ PSI_FLAG_THREAD_SYSTEM

#define PSI_FLAG_THREAD_SYSTEM   (1 << 9)

System thread flag.

Indicates that the instrumented object exists on a system thread.

◆ PSI_FLAG_TRANSFER

#define PSI_FLAG_TRANSFER   (1 << 5)

Transferable flag.

This flag indicate that an instrumented object can be created by a thread and destroyed by another thread.

◆ PSI_FLAG_UNTIMED

#define PSI_FLAG_UNTIMED   (1 << 14)

Instrument is not timed by default.

◆ PSI_FLAG_USER

#define PSI_FLAG_USER   (1 << 6)

User flag.

This flag indicate that an instrumented object exists on a user or foreground thread. If not set, then the object exists on a system or background thread.

◆ PSI_VOLATILITY_CACHE

#define PSI_VOLATILITY_CACHE   4

◆ PSI_VOLATILITY_DDL

#define PSI_VOLATILITY_DDL   3

◆ PSI_VOLATILITY_INTRA_QUERY

#define PSI_VOLATILITY_INTRA_QUERY   8

◆ PSI_VOLATILITY_PERMANENT

#define PSI_VOLATILITY_PERMANENT   1

◆ PSI_VOLATILITY_PROVISIONING

#define PSI_VOLATILITY_PROVISIONING   2

◆ PSI_VOLATILITY_QUERY

#define PSI_VOLATILITY_QUERY   7

◆ PSI_VOLATILITY_SESSION

#define PSI_VOLATILITY_SESSION   5

◆ PSI_VOLATILITY_TRANSACTION

#define PSI_VOLATILITY_TRANSACTION   6

◆ PSI_VOLATILITY_UNKNOWN

#define PSI_VOLATILITY_UNKNOWN   0

Variable Documentation

◆ PSI_INSTRUMENT_ME

constexpr unsigned PSI_INSTRUMENT_ME = 0
staticconstexpr

◆ PSI_NOT_INSTRUMENTED

constexpr unsigned PSI_NOT_INSTRUMENTED = 0
staticconstexpr