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 System,
31 Timer,
32 WasmStore,
33}
34
35#[derive(CandidType, Deserialize)]
42pub struct MetricEntry {
43 pub labels: Vec<String>,
45
46 pub principal: Option<Principal>,
48
49 pub value: MetricValue,
51}
52
53#[derive(CandidType, Deserialize)]
58pub enum MetricValue {
59 Count(u64),
60 CountAndU64 { count: u64, value_u64: u64 },
61 U128(u128),
62}
63
64#[derive(CandidType, Deserialize)]
71pub struct QueryPerfSample<T> {
72 pub value: T,
74
75 pub local_instructions: u64,
77}