summaryrefslogtreecommitdiff
path: root/dist/stat_data.py
diff options
context:
space:
mode:
Diffstat (limited to 'dist/stat_data.py')
-rw-r--r--dist/stat_data.py44
1 files changed, 40 insertions, 4 deletions
diff --git a/dist/stat_data.py b/dist/stat_data.py
index 48066c11700..694ffc86ee4 100644
--- a/dist/stat_data.py
+++ b/dist/stat_data.py
@@ -81,6 +81,10 @@ class SessionStat(Stat):
prefix = 'session'
def __init__(self, name, desc, flags=''):
Stat.__init__(self, name, SessionStat.prefix, desc, flags)
+class ThreadState(Stat):
+ prefix = 'thread-state'
+ def __init__(self, name, desc, flags=''):
+ Stat.__init__(self, name, ThreadState.prefix, desc, flags)
class TxnStat(Stat):
prefix = 'transaction'
def __init__(self, name, desc, flags=''):
@@ -97,10 +101,20 @@ class YieldStat(Stat):
##########################################
groups = {}
groups['cursor'] = [CursorStat.prefix, SessionStat.prefix]
-groups['evict'] = [CacheStat.prefix, ConnStat.prefix, BlockStat.prefix]
+groups['evict'] = [
+ BlockStat.prefix,
+ CacheStat.prefix,
+ ConnStat.prefix,
+ ThreadState.prefix
+]
groups['lsm'] = [LSMStat.prefix, TxnStat.prefix]
groups['memory'] = [CacheStat.prefix, ConnStat.prefix, RecStat.prefix]
-groups['system'] = [ConnStat.prefix, DhandleStat.prefix, SessionStat.prefix]
+groups['system'] = [
+ ConnStat.prefix,
+ DhandleStat.prefix,
+ SessionStat.prefix,
+ ThreadState.prefix
+]
##########################################
# CONNECTION statistics
@@ -113,6 +127,7 @@ connection_stats = [
ConnStat('cond_auto_wait_reset', 'auto adjusting condition resets'),
ConnStat('cond_wait', 'pthread mutex condition wait calls'),
ConnStat('file_open', 'files currently open', 'no_clear,no_scale'),
+ ConnStat('fsync_io', 'total fsync I/Os'),
ConnStat('memory_allocation', 'memory allocations'),
ConnStat('memory_free', 'memory frees'),
ConnStat('memory_grow', 'memory re-allocations'),
@@ -162,6 +177,7 @@ connection_stats = [
CacheStat('cache_bytes_write', 'bytes written from cache', 'size'),
CacheStat('cache_eviction_aggressive_set', 'eviction currently operating in aggressive mode', 'no_clear,no_scale'),
CacheStat('cache_eviction_app', 'pages evicted by application threads'),
+ CacheStat('cache_eviction_app_dirty', 'modified pages evicted by application threads'),
CacheStat('cache_eviction_checkpoint', 'checkpoint blocked page eviction'),
CacheStat('cache_eviction_clean', 'unmodified pages evicted'),
CacheStat('cache_eviction_deepen', 'page split during eviction deepened the tree'),
@@ -176,6 +192,9 @@ connection_stats = [
CacheStat('cache_eviction_hazard', 'hazard pointer blocked page eviction'),
CacheStat('cache_eviction_internal', 'internal pages evicted'),
CacheStat('cache_eviction_maximum_page_size', 'maximum page size at eviction', 'no_clear,no_scale,size'),
+ CacheStat('cache_eviction_pages_queued', 'pages queued for eviction'),
+ CacheStat('cache_eviction_pages_queued_oldest', 'pages queued for urgent eviction'),
+ CacheStat('cache_eviction_pages_seen', 'pages seen by eviction walk'),
CacheStat('cache_eviction_queue_empty', 'eviction server candidate queue empty when topping up'),
CacheStat('cache_eviction_queue_not_empty', 'eviction server candidate queue not empty when topping up'),
CacheStat('cache_eviction_server_evicting', 'eviction server evicting pages'),
@@ -186,6 +205,8 @@ connection_stats = [
CacheStat('cache_eviction_split_internal', 'internal pages split during eviction'),
CacheStat('cache_eviction_split_leaf', 'leaf pages split during eviction'),
CacheStat('cache_eviction_walk', 'pages walked for eviction'),
+ CacheStat('cache_eviction_walks_active', 'files with active eviction walks', 'no_clear,no_scale,size'),
+ CacheStat('cache_eviction_walks_started', 'files with new eviction walks started'),
CacheStat('cache_eviction_worker_evicting', 'eviction worker thread evicting pages'),
CacheStat('cache_hazard_checks', 'hazard pointer check calls'),
CacheStat('cache_hazard_max', 'hazard pointer maximum array length', 'max_aggregate,no_scale'),
@@ -250,6 +271,8 @@ connection_stats = [
LogStat('log_slot_unbuffered', 'consolidated slot unbuffered writes'),
LogStat('log_sync', 'log sync operations'),
LogStat('log_sync_dir', 'log sync_dir operations'),
+ LogStat('log_sync_dir_duration', 'log sync_dir time duration (usecs)'),
+ LogStat('log_sync_duration', 'log sync time duration (usecs)'),
LogStat('log_write_lsn', 'log server thread advances write LSN'),
LogStat('log_write_lsn_skip', 'log server thread write LSN walk skipped'),
LogStat('log_writes', 'log write operations'),
@@ -270,6 +293,10 @@ connection_stats = [
##########################################
TxnStat('txn_begin', 'transaction begins'),
TxnStat('txn_checkpoint', 'transaction checkpoints'),
+ TxnStat('txn_checkpoint_fsync_post', 'transaction fsync calls for checkpoint after allocating the transaction ID'),
+ TxnStat('txn_checkpoint_fsync_post_duration', 'transaction fsync duration for checkpoint after allocating the transaction ID (usecs)'),
+ TxnStat('txn_checkpoint_fsync_pre', 'transaction fsync calls for checkpoint before allocating the transaction ID'),
+ TxnStat('txn_checkpoint_fsync_pre_duration', 'transaction fsync duration for checkpoint before allocating the transaction ID (usecs)'),
TxnStat('txn_checkpoint_generation', 'transaction checkpoint generation', 'no_clear,no_scale'),
TxnStat('txn_checkpoint_running', 'transaction checkpoint currently running', 'no_clear,no_scale'),
TxnStat('txn_checkpoint_time_max', 'transaction checkpoint max time (msecs)', 'no_clear,no_scale'),
@@ -322,6 +349,13 @@ connection_stats = [
CursorStat('cursor_update', 'cursor update calls'),
##########################################
+ # Thread State statistics
+ ##########################################
+ ThreadState('fsync_active', 'active filesystem fsync calls','no_clear,no_scale'),
+ ThreadState('read_active', 'active filesystem read calls','no_clear,no_scale'),
+ ThreadState('write_active', 'active filesystem write calls','no_clear,no_scale'),
+
+ ##########################################
# Yield statistics
##########################################
YieldStat('page_busy_blocked', 'page acquire busy blocked'),
@@ -480,9 +514,11 @@ dsrc_stats = sorted(dsrc_stats, key=attrgetter('desc'))
# Cursor Join statistics
##########################################
join_stats = [
- JoinStat('accesses', 'accesses'),
- JoinStat('actual_count', 'actual count of items'),
JoinStat('bloom_false_positive', 'bloom filter false positives'),
+ JoinStat('bloom_insert', 'items inserted into a bloom filter'),
+ JoinStat('iterated', 'items iterated'),
+ JoinStat('main_access', 'accesses to the main table'),
+ JoinStat('membership_check', 'checks that conditions of membership are satisfied'),
]
join_stats = sorted(join_stats, key=attrgetter('desc'))