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