iota_analytics_indexer/
analytics_metrics.rs

1// Copyright (c) Mysten Labs, Inc.
2// Modifications Copyright (c) 2024 IOTA Stiftung
3// SPDX-License-Identifier: Apache-2.0
4
5#![allow(dead_code)]
6use prometheus::{
7    IntCounterVec, IntGaugeVec, Registry, register_int_counter_vec_with_registry,
8    register_int_gauge_vec_with_registry,
9};
10
11#[derive(Clone)]
12pub struct AnalyticsMetrics {
13    pub total_received: IntCounterVec,
14    pub last_uploaded_checkpoint: IntGaugeVec,
15    pub max_checkpoint_on_store: IntGaugeVec,
16}
17
18impl AnalyticsMetrics {
19    pub fn new(registry: &Registry) -> Self {
20        Self {
21            total_received: register_int_counter_vec_with_registry!(
22                "total_received",
23                "Number of checkpoints received",
24                &["data_type"],
25                registry
26            )
27            .unwrap(),
28            last_uploaded_checkpoint: register_int_gauge_vec_with_registry!(
29                "last_uploaded_checkpoint",
30                "Number of uploaded checkpoints.",
31                &["data_type"],
32                registry,
33            )
34            .unwrap(),
35            max_checkpoint_on_store: register_int_gauge_vec_with_registry!(
36                "max_checkpoint_on_store",
37                "Max checkpoint on the db table.",
38                &["data_type"],
39                registry,
40            )
41            .unwrap(),
42        }
43    }
44}