@@ -200,7 +200,7 @@ rocksdb::DBOptions SharedRocksDBState::initialDbOptions() {
200200 }
201201
202202 options.statistics = rocksdb::CreateDBStatistics ();
203- options.statistics ->set_stats_level (rocksdb::kExceptHistogramOrTimers );
203+ options.statistics ->set_stats_level (rocksdb::StatsLevel (SERVER_KNOBS-> ROCKSDB_STATS_LEVEL ) );
204204
205205 options.db_log_dir = SERVER_KNOBS->LOG_DIRECTORY ;
206206
@@ -893,14 +893,19 @@ ACTOR Future<Void> rocksDBMetricLogger(UID id,
893893 { " CountIterSkippedKeys" , rocksdb::NUMBER_ITER_SKIP, 0 },
894894 };
895895
896+ // To control the rocksdb::StatsLevel, use ROCKSDB_STATS_LEVEL knob.
896897 state std::vector<std::pair<const char *, uint32_t >> histogramStats = {
897- { " CompactionTime" , rocksdb::COMPACTION_TIME },
898- { " CompactionCPUTime" , rocksdb::COMPACTION_CPU_TIME },
899- { " CompressionTimeNanos" , rocksdb::COMPRESSION_TIMES_NANOS },
900- { " DecompressionTimeNanos" , rocksdb::DECOMPRESSION_TIMES_NANOS },
901- { " HardRateLimitDelayCount" , rocksdb::HARD_RATE_LIMIT_DELAY_COUNT },
902- { " SoftRateLimitDelayCount" , rocksdb::SOFT_RATE_LIMIT_DELAY_COUNT },
903- { " WriteStall" , rocksdb::WRITE_STALL },
898+ { " CompactionTime" , rocksdb::COMPACTION_TIME }, // enabled if rocksdb::StatsLevel > kExceptTimers(2)
899+ { " CompactionCPUTime" , rocksdb::COMPACTION_CPU_TIME }, // enabled if rocksdb::StatsLevel > kExceptTimers(2)
900+ { " CompressionTimeNanos" ,
901+ rocksdb::COMPRESSION_TIMES_NANOS }, // enabled if rocksdb::StatsLevel > kExceptDetailedTimers(3)
902+ { " DecompressionTimeNanos" ,
903+ rocksdb::DECOMPRESSION_TIMES_NANOS }, // enabled if rocksdb::StatsLevel > kExceptDetailedTimers(3)
904+ { " HardRateLimitDelayCount" ,
905+ rocksdb::HARD_RATE_LIMIT_DELAY_COUNT }, // enabled if rocksdb::StatsLevel > kExceptHistogramOrTimers(1)
906+ { " SoftRateLimitDelayCount" ,
907+ rocksdb::SOFT_RATE_LIMIT_DELAY_COUNT }, // enabled if rocksdb::StatsLevel > kExceptHistogramOrTimers(1)
908+ { " WriteStall" , rocksdb::WRITE_STALL }, // enabled if rocksdb::StatsLevel > kExceptHistogramOrTimers(1)
904909 };
905910
906911 state std::vector<std::pair<const char *, std::string>> intPropertyStats = {
@@ -957,11 +962,13 @@ ACTOR Future<Void> rocksDBMetricLogger(UID id,
957962 cum = stat;
958963 }
959964
960- for (auto & [name, histogram] : histogramStats) {
961- rocksdb::HistogramData histogram_data;
962- statistics->histogramData (histogram, &histogram_data);
963- e.detail (format (" %s%d" , name, " P95" ), histogram_data.percentile95 );
964- e.detail (format (" %s%d" , name, " P99" ), histogram_data.percentile99 );
965+ if (SERVER_KNOBS->ROCKSDB_STATS_LEVEL > rocksdb::kExceptHistogramOrTimers ) {
966+ for (auto & [name, histogram] : histogramStats) {
967+ rocksdb::HistogramData histogram_data;
968+ statistics->histogramData (histogram, &histogram_data);
969+ e.detail (format (" %s%s" , name, " P95" ), histogram_data.percentile95 );
970+ e.detail (format (" %s%s" , name, " P99" ), histogram_data.percentile99 );
971+ }
965972 }
966973
967974 for (const auto & [name, property] : intPropertyStats) {
0 commit comments