1#[derive(Debug, Copy, Clone, PartialEq, Eq)]
7#[repr(u32)]
8pub enum PerfMetric {
9 UserKeyComparisonCount = 0,
10 BlockCacheHitCount = 1,
11 BlockReadCount = 2,
12 BlockReadByte = 3,
13 BlockReadTime = 4,
14 BlockChecksumTime = 5,
15 BlockDecompressTime = 6,
16 GetReadBytes = 7,
17 MultigetReadBytes = 8,
18 IterReadBytes = 9,
19 InternalKeySkippedCount = 10,
20 InternalDeleteSkippedCount = 11,
21 InternalRecentSkippedCount = 12,
22 InternalMergeCount = 13,
23 GetSnapshotTime = 14,
24 GetFromMemtableTime = 15,
25 GetFromMemtableCount = 16,
26 GetPostProcessTime = 17,
27 GetFromOutputFilesTime = 18,
28 SeekOnMemtableTime = 19,
29 SeekOnMemtableCount = 20,
30 NextOnMemtableCount = 21,
31 PrevOnMemtableCount = 22,
32 SeekChildSeekTime = 23,
33 SeekChildSeekCount = 24,
34 SeekMinHeapTime = 25,
35 SeekMaxHeapTime = 26,
36 SeekInternalSeekTime = 27,
37 FindNextUserEntryTime = 28,
38 WriteWalTime = 29,
39 WriteMemtableTime = 30,
40 WriteDelayTime = 31,
41 WritePreAndPostProcessTime = 32,
42 DbMutexLockNanos = 33,
43 DbConditionWaitNanos = 34,
44 MergeOperatorTimeNanos = 35,
45 ReadIndexBlockNanos = 36,
46 ReadFilterBlockNanos = 37,
47 NewTableBlockIterNanos = 38,
48 NewTableIteratorNanos = 39,
49 BlockSeekNanos = 40,
50 FindTableNanos = 41,
51 BloomMemtableHitCount = 42,
52 BloomMemtableMissCount = 43,
53 BloomSstHitCount = 44,
54 BloomSstMissCount = 45,
55 KeyLockWaitTime = 46,
56 KeyLockWaitCount = 47,
57 EnvNewSequentialFileNanos = 48,
58 EnvNewRandomAccessFileNanos = 49,
59 EnvNewWritableFileNanos = 50,
60 EnvReuseWritableFileNanos = 51,
61 EnvNewRandomRwFileNanos = 52,
62 EnvNewDirectoryNanos = 53,
63 EnvFileExistsNanos = 54,
64 EnvGetChildrenNanos = 55,
65 EnvGetChildrenFileAttributesNanos = 56,
66 EnvDeleteFileNanos = 57,
67 EnvCreateDirNanos = 58,
68 EnvCreateDirIfMissingNanos = 59,
69 EnvDeleteDirNanos = 60,
70 EnvGetFileSizeNanos = 61,
71 EnvGetFileModificationTimeNanos = 62,
72 EnvRenameFileNanos = 63,
73 EnvLinkFileNanos = 64,
74 EnvLockFileNanos = 65,
75 EnvUnlockFileNanos = 66,
76 EnvNewLoggerNanos = 67,
77 NumberAsyncSeek = 68,
78 BlobCacheHitCount = 69,
79 BlobReadCount = 70,
80 BlobReadByte = 71,
81 BlobReadTime = 72,
82 BlobChecksumTime = 73,
83 BlobDecompressTime = 74,
84 InternalRangeDelReseekCount = 75,
85 BlockReadCpuTime = 76,
86 InternalMergePointLookupCount = 77,
87 DataBlockReadByte = 78,
88 IndexBlockReadByte = 79,
89 FilterBlockReadByte = 80,
90 CompressionDictBlockReadByte = 81,
91 MetadataBlockReadByte = 82,
92 TotalMetricCount = 85,
93}
94
95impl PerfMetric {
96 pub const fn name(&self) -> &'static str {
98 match self {
99 PerfMetric::BlobCacheHitCount => "blob_cache_hit_count",
100 PerfMetric::BlobChecksumTime => "blob_checksum_time",
101 PerfMetric::BlobDecompressTime => "blob_decompress_time",
102 PerfMetric::BlobReadByte => "blob_read_byte",
103 PerfMetric::BlobReadCount => "blob_read_count",
104 PerfMetric::BlobReadTime => "blob_read_time",
105 PerfMetric::BlockCacheHitCount => "block_cache_hit_count",
106 PerfMetric::BlockChecksumTime => "block_checksum_time",
107 PerfMetric::BlockDecompressTime => "block_decompress_time",
108 PerfMetric::BlockReadByte => "block_read_byte",
109 PerfMetric::BlockReadCount => "block_read_count",
110 PerfMetric::BlockReadCpuTime => "block_read_cpu_time",
111 PerfMetric::BlockReadTime => "block_read_time",
112 PerfMetric::BlockSeekNanos => "block_seek_nanos",
113 PerfMetric::BloomMemtableHitCount => "bloom_memtable_hit_count",
114 PerfMetric::BloomMemtableMissCount => "bloom_memtable_miss_count",
115 PerfMetric::BloomSstHitCount => "bloom_sst_hit_count",
116 PerfMetric::BloomSstMissCount => "bloom_sst_miss_count",
117 PerfMetric::CompressionDictBlockReadByte => "compression_dict_block_read_byte",
118 PerfMetric::DataBlockReadByte => "data_block_read_byte",
119 PerfMetric::DbConditionWaitNanos => "db_condition_wait_nanos",
120 PerfMetric::DbMutexLockNanos => "db_mutex_lock_nanos",
121 PerfMetric::EnvCreateDirIfMissingNanos => "env_create_dir_if_missing_nanos",
122 PerfMetric::EnvCreateDirNanos => "env_create_dir_nanos",
123 PerfMetric::EnvDeleteDirNanos => "env_delete_dir_nanos",
124 PerfMetric::EnvDeleteFileNanos => "env_delete_file_nanos",
125 PerfMetric::EnvFileExistsNanos => "env_file_exists_nanos",
126 PerfMetric::EnvGetChildrenFileAttributesNanos => "env_get_children_file_attributes_nanos",
127 PerfMetric::EnvGetChildrenNanos => "env_get_children_nanos",
128 PerfMetric::EnvGetFileModificationTimeNanos => "env_get_file_modification_time_nanos",
129 PerfMetric::EnvGetFileSizeNanos => "env_get_file_size_nanos",
130 PerfMetric::EnvLinkFileNanos => "env_link_file_nanos",
131 PerfMetric::EnvLockFileNanos => "env_lock_file_nanos",
132 PerfMetric::EnvNewDirectoryNanos => "env_new_directory_nanos",
133 PerfMetric::EnvNewLoggerNanos => "env_new_logger_nanos",
134 PerfMetric::EnvNewRandomAccessFileNanos => "env_new_random_access_file_nanos",
135 PerfMetric::EnvNewRandomRwFileNanos => "env_new_random_rw_file_nanos",
136 PerfMetric::EnvNewSequentialFileNanos => "env_new_sequential_file_nanos",
137 PerfMetric::EnvNewWritableFileNanos => "env_new_writable_file_nanos",
138 PerfMetric::EnvRenameFileNanos => "env_rename_file_nanos",
139 PerfMetric::EnvReuseWritableFileNanos => "env_reuse_writable_file_nanos",
140 PerfMetric::EnvUnlockFileNanos => "env_unlock_file_nanos",
141 PerfMetric::FilterBlockReadByte => "filter_block_read_byte",
142 PerfMetric::FindNextUserEntryTime => "find_next_user_entry_time",
143 PerfMetric::FindTableNanos => "find_table_nanos",
144 PerfMetric::GetFromMemtableCount => "get_from_memtable_count",
145 PerfMetric::GetFromMemtableTime => "get_from_memtable_time",
146 PerfMetric::GetFromOutputFilesTime => "get_from_output_files_time",
147 PerfMetric::GetPostProcessTime => "get_post_process_time",
148 PerfMetric::GetReadBytes => "get_read_bytes",
149 PerfMetric::GetSnapshotTime => "get_snapshot_time",
150 PerfMetric::IndexBlockReadByte => "index_block_read_byte",
151 PerfMetric::InternalDeleteSkippedCount => "internal_delete_skipped_count",
152 PerfMetric::InternalKeySkippedCount => "internal_key_skipped_count",
153 PerfMetric::InternalMergeCount => "internal_merge_count",
154 PerfMetric::InternalMergePointLookupCount => "internal_merge_point_lookup_count",
155 PerfMetric::InternalRangeDelReseekCount => "internal_range_del_reseek_count",
156 PerfMetric::InternalRecentSkippedCount => "internal_recent_skipped_count",
157 PerfMetric::IterReadBytes => "iter_read_bytes",
158 PerfMetric::KeyLockWaitCount => "key_lock_wait_count",
159 PerfMetric::KeyLockWaitTime => "key_lock_wait_time",
160 PerfMetric::MergeOperatorTimeNanos => "merge_operator_time_nanos",
161 PerfMetric::MetadataBlockReadByte => "metadata_block_read_byte",
162 PerfMetric::MultigetReadBytes => "multiget_read_bytes",
163 PerfMetric::NewTableBlockIterNanos => "new_table_block_iter_nanos",
164 PerfMetric::NewTableIteratorNanos => "new_table_iterator_nanos",
165 PerfMetric::NextOnMemtableCount => "next_on_memtable_count",
166 PerfMetric::NumberAsyncSeek => "number_async_seek",
167 PerfMetric::PrevOnMemtableCount => "prev_on_memtable_count",
168 PerfMetric::ReadFilterBlockNanos => "read_filter_block_nanos",
169 PerfMetric::ReadIndexBlockNanos => "read_index_block_nanos",
170 PerfMetric::SeekChildSeekCount => "seek_child_seek_count",
171 PerfMetric::SeekChildSeekTime => "seek_child_seek_time",
172 PerfMetric::SeekInternalSeekTime => "seek_internal_seek_time",
173 PerfMetric::SeekMaxHeapTime => "seek_max_heap_time",
174 PerfMetric::SeekMinHeapTime => "seek_min_heap_time",
175 PerfMetric::SeekOnMemtableCount => "seek_on_memtable_count",
176 PerfMetric::SeekOnMemtableTime => "seek_on_memtable_time",
177 PerfMetric::TotalMetricCount => "total_metric_count",
178 PerfMetric::UserKeyComparisonCount => "user_key_comparison_count",
179 PerfMetric::WriteDelayTime => "write_delay_time",
180 PerfMetric::WriteMemtableTime => "write_memtable_time",
181 PerfMetric::WritePreAndPostProcessTime => "write_pre_and_post_process_time",
182 PerfMetric::WriteWalTime => "write_wal_time",
183 }
184 }
185}