1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use crate::engine::RocksEngine;
use crate::perf_context_impl::PerfContextStatistics;
use engine_traits::{PerfContext, PerfContextExt, PerfContextKind, PerfLevel};
impl PerfContextExt for RocksEngine {
type PerfContext = RocksPerfContext;
fn get_perf_context(&self, level: PerfLevel, kind: PerfContextKind) -> Self::PerfContext {
RocksPerfContext {
stats: PerfContextStatistics::new(level, kind),
}
}
}
pub struct RocksPerfContext {
stats: PerfContextStatistics,
}
impl PerfContext for RocksPerfContext {
fn start_observe(&mut self) {
self.stats.start()
}
fn report_metrics(&mut self) {
self.stats.report()
}
}