subspace_farmer/farmer_cache/
metrics.rs1use prometheus_client::metrics::counter::Counter;
4use prometheus_client::metrics::gauge::Gauge;
5use prometheus_client::registry::{Registry, Unit};
6use std::sync::atomic::{AtomicI64, AtomicU64};
7
8#[derive(Debug)]
10pub(super) struct FarmerCacheMetrics {
11 pub(super) cache_get_hit: Counter<u64, AtomicU64>,
12 pub(super) cache_get_miss: Counter<u64, AtomicU64>,
13 pub(super) cache_get_error: Counter<u64, AtomicU64>,
14 pub(super) cache_find_hit: Counter<u64, AtomicU64>,
15 pub(super) cache_find_miss: Counter<u64, AtomicU64>,
16 pub(super) piece_cache_capacity_total: Gauge<i64, AtomicI64>,
17 pub(super) piece_cache_capacity_used: Gauge<i64, AtomicI64>,
18}
19
20impl FarmerCacheMetrics {
21 pub(super) fn new(registry: &mut Registry) -> Self {
23 let registry = registry.sub_registry_with_prefix("farmer_cache");
24
25 let cache_get_hit = Counter::default();
26 registry.register_with_unit(
27 "cache_get_hit",
28 "Cache get hit",
29 Unit::Other("Requests".to_string()),
30 cache_get_hit.clone(),
31 );
32
33 let cache_get_miss = Counter::default();
34 registry.register_with_unit(
35 "cache_get_miss",
36 "Cache get miss",
37 Unit::Other("Requests".to_string()),
38 cache_get_miss.clone(),
39 );
40
41 let cache_get_error = Counter::default();
42 registry.register_with_unit(
43 "cache_error",
44 "Cache get error",
45 Unit::Other("Requests".to_string()),
46 cache_get_error.clone(),
47 );
48
49 let cache_find_hit = Counter::default();
50 registry.register_with_unit(
51 "cache_find_hit",
52 "Cache find hit",
53 Unit::Other("Requests".to_string()),
54 cache_find_hit.clone(),
55 );
56
57 let cache_find_miss = Counter::default();
58 registry.register_with_unit(
59 "cache_find_miss",
60 "Cache find miss",
61 Unit::Other("Requests".to_string()),
62 cache_find_miss.clone(),
63 );
64
65 let piece_cache_capacity_total = Gauge::default();
66 registry.register_with_unit(
67 "piece_cache_capacity_total",
68 "Piece cache capacity total",
69 Unit::Other("Pieces".to_string()),
70 piece_cache_capacity_total.clone(),
71 );
72
73 let piece_cache_capacity_used = Gauge::default();
74 registry.register_with_unit(
75 "piece_cache_capacity_used",
76 "Piece cache capacity used",
77 Unit::Other("Pieces".to_string()),
78 piece_cache_capacity_used.clone(),
79 );
80
81 Self {
82 cache_get_hit,
83 cache_get_miss,
84 cache_get_error,
85 cache_find_hit,
86 cache_find_miss,
87 piece_cache_capacity_total,
88 piece_cache_capacity_used,
89 }
90 }
91}