canic_core/dto/
metrics.rs1use crate::dto::prelude::*;
2
3#[derive(CandidType, Clone, Copy, Deserialize)]
14#[remain::sorted]
15pub enum MetricsKind {
16 Access,
17 CanisterOps,
18 Cascade,
19 CyclesFunding,
20 CyclesTopup,
21 DelegatedAuth,
22 Directory,
23 Http,
24 Icc,
25 Lifecycle,
26 Perf,
27 Pool,
28 RootCapability,
29 Scaling,
30 #[cfg(feature = "sharding")]
31 Sharding,
32 System,
33 Timer,
34 WasmStore,
35}
36
37#[derive(CandidType, Deserialize)]
44pub struct MetricEntry {
45 pub labels: Vec<String>,
47
48 pub principal: Option<Principal>,
50
51 pub value: MetricValue,
53}
54
55#[derive(CandidType, Deserialize)]
60pub enum MetricValue {
61 Count(u64),
62 CountAndU64 { count: u64, value_u64: u64 },
63 U128(u128),
64}
65
66#[derive(CandidType, Deserialize)]
73pub struct QueryPerfSample<T> {
74 pub value: T,
76
77 pub local_instructions: u64,
79}