iota_config/
node_config_metrics.rs1use std::sync::Arc;
6
7use prometheus_filtered::{IntGauge, MetricLevel, 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 tx_deny_config_receiving_objects_disabled: IntGauge,
20 tx_deny_config_move_authenticator_disabled: IntGauge,
21}
22
23impl NodeConfigMetrics {
24 pub fn new(registry: &Registry) -> Arc<Self> {
25 let this = Self {
26 tx_deny_config_user_transaction_disabled: register_int_gauge_with_registry!(
27 "tx_deny_config_user_transaction_disabled",
28 "Whether all user transactions are disabled",
29 registry;
30 MetricLevel::Warn
31 )
32 .unwrap(),
33 tx_deny_config_shared_object_disabled: register_int_gauge_with_registry!(
34 "tx_deny_config_shared_object_disabled",
35 "Whether all shared object transactions are disabled",
36 registry;
37 MetricLevel::Warn
38 )
39 .unwrap(),
40 tx_deny_config_package_publish_disabled: register_int_gauge_with_registry!(
41 "tx_deny_config_package_publish_disabled",
42 "Whether all package publish transactions are disabled",
43 registry;
44 MetricLevel::Warn
45 )
46 .unwrap(),
47 tx_deny_config_package_upgrade_disabled: register_int_gauge_with_registry!(
48 "tx_deny_config_package_upgrade_disabled",
49 "Whether all package upgrade transactions are disabled",
50 registry;
51 MetricLevel::Warn
52 )
53 .unwrap(),
54 tx_deny_config_num_denied_objects: register_int_gauge_with_registry!(
55 "tx_deny_config_num_denied_objects",
56 "Number of denied objects",
57 registry;
58 MetricLevel::Warn
59 )
60 .unwrap(),
61 tx_deny_config_num_denied_packages: register_int_gauge_with_registry!(
62 "tx_deny_config_num_denied_packages",
63 "Number of denied packages",
64 registry;
65 MetricLevel::Warn
66 )
67 .unwrap(),
68 tx_deny_config_num_denied_addresses: register_int_gauge_with_registry!(
69 "tx_deny_config_num_denied_addresses",
70 "Number of denied addresses",
71 registry;
72 MetricLevel::Warn
73 )
74 .unwrap(),
75 tx_deny_config_receiving_objects_disabled: register_int_gauge_with_registry!(
76 "tx_deny_config_receiving_objects_disabled",
77 "Whether all receiving objects transactions are disabled",
78 registry;
79 MetricLevel::Warn
80 )
81 .unwrap(),
82 tx_deny_config_move_authenticator_disabled: register_int_gauge_with_registry!(
83 "tx_deny_config_move_authenticator_disabled",
84 "Whether all move authenticator transactions are disabled",
85 registry;
86 MetricLevel::Warn
87 )
88 .unwrap(),
89 };
90 Arc::new(this)
91 }
92
93 pub fn record_metrics(&self, config: &NodeConfig) {
94 self.tx_deny_config_user_transaction_disabled
95 .set(config.transaction_deny_config.user_transaction_disabled() as i64);
96 self.tx_deny_config_shared_object_disabled
97 .set(config.transaction_deny_config.shared_object_disabled() as i64);
98 self.tx_deny_config_package_publish_disabled
99 .set(config.transaction_deny_config.package_publish_disabled() as i64);
100 self.tx_deny_config_package_upgrade_disabled
101 .set(config.transaction_deny_config.package_upgrade_disabled() as i64);
102 self.tx_deny_config_num_denied_objects
103 .set(config.transaction_deny_config.get_object_deny_set().len() as i64);
104 self.tx_deny_config_num_denied_packages
105 .set(config.transaction_deny_config.get_package_deny_set().len() as i64);
106 self.tx_deny_config_num_denied_addresses
107 .set(config.transaction_deny_config.get_address_deny_set().len() as i64);
108 self.tx_deny_config_receiving_objects_disabled
109 .set(config.transaction_deny_config.receiving_objects_disabled() as i64);
110 self.tx_deny_config_move_authenticator_disabled
111 .set(config.transaction_deny_config.move_authenticator_disabled() as i64);
112 }
113}