iota_config/
node_config_metrics.rs1use std::sync::Arc;
6
7use prometheus::{IntGauge, Registry, register_int_gauge_with_registry};
8
9use crate::NodeConfig;
10
11pub struct NodeConfigMetrics {
12 tx_deny_config_user_transaction_disabled: IntGauge,
13 tx_deny_config_shared_object_disabled: IntGauge,
14 tx_deny_config_package_publish_disabled: IntGauge,
15 tx_deny_config_package_upgrade_disabled: IntGauge,
16 tx_deny_config_num_denied_objects: IntGauge,
17 tx_deny_config_num_denied_packages: IntGauge,
18 tx_deny_config_num_denied_addresses: IntGauge,
19}
20
21impl NodeConfigMetrics {
22 pub fn new(registry: &Registry) -> Arc<Self> {
23 let this = Self {
24 tx_deny_config_user_transaction_disabled: register_int_gauge_with_registry!(
25 "tx_deny_config_user_transaction_disabled",
26 "Whether all user transactions are disabled",
27 registry
28 )
29 .unwrap(),
30 tx_deny_config_shared_object_disabled: register_int_gauge_with_registry!(
31 "tx_deny_config_shared_object_disabled",
32 "Whether all shared object transactions are disabled",
33 registry
34 )
35 .unwrap(),
36 tx_deny_config_package_publish_disabled: register_int_gauge_with_registry!(
37 "tx_deny_config_package_publish_disabled",
38 "Whether all package publish transactions are disabled",
39 registry
40 )
41 .unwrap(),
42 tx_deny_config_package_upgrade_disabled: register_int_gauge_with_registry!(
43 "tx_deny_config_package_upgrade_disabled",
44 "Whether all package upgrade transactions are disabled",
45 registry
46 )
47 .unwrap(),
48 tx_deny_config_num_denied_objects: register_int_gauge_with_registry!(
49 "tx_deny_config_num_denied_objects",
50 "Number of denied objects",
51 registry
52 )
53 .unwrap(),
54 tx_deny_config_num_denied_packages: register_int_gauge_with_registry!(
55 "tx_deny_config_num_denied_packages",
56 "Number of denied packages",
57 registry
58 )
59 .unwrap(),
60 tx_deny_config_num_denied_addresses: register_int_gauge_with_registry!(
61 "tx_deny_config_num_denied_addresses",
62 "Number of denied addresses",
63 registry
64 )
65 .unwrap(),
66 };
67 Arc::new(this)
68 }
69
70 pub fn record_metrics(&self, config: &NodeConfig) {
71 self.tx_deny_config_user_transaction_disabled
72 .set(config.transaction_deny_config.user_transaction_disabled() as i64);
73 self.tx_deny_config_shared_object_disabled
74 .set(config.transaction_deny_config.shared_object_disabled() as i64);
75 self.tx_deny_config_package_publish_disabled
76 .set(config.transaction_deny_config.package_publish_disabled() as i64);
77 self.tx_deny_config_package_upgrade_disabled
78 .set(config.transaction_deny_config.package_upgrade_disabled() as i64);
79 self.tx_deny_config_num_denied_objects
80 .set(config.transaction_deny_config.get_object_deny_set().len() as i64);
81 self.tx_deny_config_num_denied_packages
82 .set(config.transaction_deny_config.get_package_deny_set().len() as i64);
83 self.tx_deny_config_num_denied_addresses
84 .set(config.transaction_deny_config.get_address_deny_set().len() as i64);
85 }
86}