cassandra_cpp/cassandra/
metrics.rs1use crate::cassandra_sys::CassMetrics as _CassMetrics;
2
3#[allow(missing_docs)] #[derive(Debug)]
6pub struct SessionMetrics {
7 pub min_us: u64,
8 pub max_us: u64,
9 pub mean_us: u64,
10 pub stddev_us: u64,
11 pub median_us: u64,
12 pub percentile_75th_us: u64,
13 pub percentile_95th_us: u64,
14 pub percentile_98th_us: u64,
15 pub percentile_99th_us: u64,
16 pub percentile_999th_us: u64,
17
18 pub mean_rate_per_sec: f64,
19 pub one_minute_rate_per_seq: f64,
20 pub five_minute_rate_per_sec: f64,
21 pub fifteen_minute_rate_per_sec: f64,
22
23 pub total_connections: u64,
24 pub available_connections: u64,
25 pub exceeded_pending_requests_water_mark: u64,
26 pub exceeded_write_bytes_water_mark: u64,
27
28 pub connection_timeouts: u64,
29 pub pending_request_timeouts: u64,
30 pub request_timeouts: u64,
31}
32
33impl SessionMetrics {
34 pub(crate) fn build(inner: *const _CassMetrics) -> Self {
36 let inner = unsafe { &*inner };
37 SessionMetrics {
38 min_us: inner.requests.min,
39 max_us: inner.requests.max,
40 mean_us: inner.requests.mean,
41 stddev_us: inner.requests.stddev,
42 median_us: inner.requests.median,
43 percentile_75th_us: inner.requests.percentile_75th,
44 percentile_95th_us: inner.requests.percentile_95th,
45 percentile_98th_us: inner.requests.percentile_98th,
46 percentile_99th_us: inner.requests.percentile_99th,
47 percentile_999th_us: inner.requests.percentile_999th,
48 mean_rate_per_sec: inner.requests.mean_rate,
49 one_minute_rate_per_seq: inner.requests.one_minute_rate,
50 five_minute_rate_per_sec: inner.requests.five_minute_rate,
51 fifteen_minute_rate_per_sec: inner.requests.fifteen_minute_rate,
52 total_connections: inner.stats.total_connections,
53 available_connections: inner.stats.available_connections,
54 exceeded_pending_requests_water_mark: inner.stats.exceeded_pending_requests_water_mark,
55 exceeded_write_bytes_water_mark: inner.stats.exceeded_write_bytes_water_mark,
56 connection_timeouts: inner.errors.connection_timeouts,
57 pending_request_timeouts: inner.errors.pending_request_timeouts,
58 request_timeouts: inner.errors.request_timeouts,
59 }
60 }
61}