cat_gateway/metrics/
chain_indexer.rs1pub(crate) mod reporter {
6 use std::sync::LazyLock;
7
8 use prometheus::{register_counter_vec, register_int_gauge_vec, CounterVec, IntGaugeVec};
9
10 const METRIC_LABELS: [&str; 3] = ["api_host_names", "service_id", "network"];
12
13 pub(crate) static CURRENT_LIVE_TIP_SLOT: LazyLock<IntGaugeVec> = LazyLock::new(|| {
15 register_int_gauge_vec!(
16 "indexer_current_live_tip_slot",
17 "Chain Indexer current live tip slot",
18 &METRIC_LABELS
19 )
20 .unwrap()
21 });
22
23 pub(crate) static CURRENT_IMMUTABLE_TIP_SLOT: LazyLock<IntGaugeVec> = LazyLock::new(|| {
25 register_int_gauge_vec!(
26 "indexer_current_immutable_tip_slot",
27 "Chain Indexer current immutable tip slot",
28 &METRIC_LABELS
29 )
30 .unwrap()
31 });
32
33 pub(crate) static HIGHEST_COMPLETE_INDEXED_SLOT: LazyLock<IntGaugeVec> = LazyLock::new(|| {
35 register_int_gauge_vec!(
36 "indexer_highest_complete_indexed_slot",
37 "Chain Indexer highest complete indexed slot",
38 &METRIC_LABELS
39 )
40 .unwrap()
41 });
42
43 pub(crate) static RUNNING_INDEXER_TASKS_COUNT: LazyLock<IntGaugeVec> = LazyLock::new(|| {
45 register_int_gauge_vec!(
46 "indexer_running_indexer_tasks_count",
47 "Chain Indexer number of current running indexer tasks",
48 &METRIC_LABELS
49 )
50 .unwrap()
51 });
52
53 pub(crate) static TRIGGERED_BACKWARD_PURGES_COUNT: LazyLock<CounterVec> = LazyLock::new(|| {
55 register_counter_vec!(
56 "indexer_triggered_backward_purges_count",
57 "Chain Indexer number of times triggering backward data purge",
58 &METRIC_LABELS
59 )
60 .unwrap()
61 });
62
63 pub(crate) static TRIGGERED_FORWARD_PURGES_COUNT: LazyLock<CounterVec> = LazyLock::new(|| {
65 register_counter_vec!(
66 "indexer_triggered_forward_purges_count",
67 "Chain Indexer number of times triggering forward data purge",
68 &METRIC_LABELS
69 )
70 .unwrap()
71 });
72
73 pub(crate) static PURGED_SLOTS: LazyLock<IntGaugeVec> = LazyLock::new(|| {
75 register_int_gauge_vec!(
76 "indexer_triggered_purged_slots",
77 "Chain Indexer total number of slots that have already been purged",
78 &METRIC_LABELS
79 )
80 .unwrap()
81 });
82
83 pub(crate) static IMMUTABLE_REACHED_TIP: LazyLock<IntGaugeVec> = LazyLock::new(|| {
85 register_int_gauge_vec!(
86 "indexer_reached_immutable_tip_indicator",
87 "Chain Indexer indicator whether immutable chain tip is reached or in progress. It also reflects a freshly downloaded mithril snapshots, when new immutable synchronization starts.",
88 &METRIC_LABELS
89 )
90 .unwrap()
91 });
92
93 pub(crate) static LIVE_REACHED_TIP: LazyLock<IntGaugeVec> = LazyLock::new(|| {
95 register_int_gauge_vec!(
96 "indexer_reached_live_tip_indicator",
97 "Chain Indexer indicator whether live chain tip is reached or in progress. Live chain synchronization never stops, this metric shows when first tip is reached.",
98 &METRIC_LABELS
99 )
100 .unwrap()
101 });
102
103 pub(crate) static SLOT_TIP_DIFF: LazyLock<IntGaugeVec> = LazyLock::new(|| {
105 register_int_gauge_vec!(
106 "indexer_slot_tip_diff",
107 "The slot difference between immutable tip slot and the volatile tip slot number",
108 &METRIC_LABELS
109 )
110 .unwrap()
111 });
112}