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 CyclesFunding,
19 CyclesTopup,
20 DelegatedAuth,
21 Http,
22 Icc,
23 Lifecycle,
24 Perf,
25 RootCapability,
26 System,
27 Timer,
28 WasmStore,
29}
30
31#[derive(CandidType, Deserialize)]
38pub struct MetricEntry {
39 pub labels: Vec<String>,
41
42 pub principal: Option<Principal>,
44
45 pub value: MetricValue,
47}
48
49#[derive(CandidType, Deserialize)]
54pub enum MetricValue {
55 Count(u64),
56 CountAndU64 { count: u64, value_u64: u64 },
57 U128(u128),
58}
59
60#[derive(CandidType, Deserialize)]
67pub struct QueryPerfSample<T> {
68 pub value: T,
70
71 pub local_instructions: u64,
73}