Skip to content

Commit b3d4c35

Browse files
committed
Rename metrics labels
1 parent 5071c02 commit b3d4c35

File tree

8 files changed

+75
-100
lines changed

8 files changed

+75
-100
lines changed

portalnet/src/config.rs

Lines changed: 13 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
use std::net::SocketAddr;
2-
use std::path::PathBuf;
32

43
use ethereum_types::H256;
54

@@ -22,25 +21,6 @@ pub struct PortalnetConfig {
2221
pub internal_ip: bool,
2322
pub no_stun: bool,
2423
pub node_addr_cache_capacity: usize,
25-
pub enr_file_location: Option<PathBuf>,
26-
}
27-
28-
impl PortalnetConfig {
29-
pub fn new(
30-
trin_config: &TrinConfig,
31-
private_key: H256,
32-
enr_file_location: Option<PathBuf>,
33-
) -> Self {
34-
Self {
35-
external_addr: trin_config.external_addr,
36-
private_key,
37-
listen_port: trin_config.discovery_port,
38-
no_stun: trin_config.no_stun,
39-
bootnodes: trin_config.bootnodes.clone(),
40-
enr_file_location,
41-
..Default::default()
42-
}
43-
}
4424
}
4525

4626
impl Default for PortalnetConfig {
@@ -54,7 +34,19 @@ impl Default for PortalnetConfig {
5434
internal_ip: false,
5535
no_stun: false,
5636
node_addr_cache_capacity: NODE_ADDR_CACHE_CAPACITY,
57-
enr_file_location: None,
37+
}
38+
}
39+
}
40+
41+
impl PortalnetConfig {
42+
pub fn new(trin_config: &TrinConfig, private_key: H256) -> Self {
43+
Self {
44+
external_addr: trin_config.external_addr,
45+
private_key,
46+
listen_port: trin_config.discovery_port,
47+
no_stun: trin_config.no_stun,
48+
bootnodes: trin_config.bootnodes.clone(),
49+
..Default::default()
5850
}
5951
}
6052
}

portalnet/src/discovery.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use std::hash::{Hash, Hasher};
22
use std::net::Ipv4Addr;
3+
use std::path::PathBuf;
34
use std::str::FromStr;
45
use std::{convert::TryFrom, fmt, fs, io, net::SocketAddr, sync::Arc};
56

portalnet/src/metrics/overlay.rs

Lines changed: 52 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -17,39 +17,39 @@ use crate::types::messages::{Request, Response};
1717
/// and content validation.
1818
#[derive(Clone)]
1919
pub struct OverlayMetrics {
20-
pub message_count: IntCounterVec,
21-
pub utp_outcome_count: IntCounterVec,
20+
pub message_total: IntCounterVec,
21+
pub utp_outcome_total: IntCounterVec,
2222
pub utp_active_gauge: IntGaugeVec,
23-
pub validation_count: IntCounterVec,
23+
pub validation_total: IntCounterVec,
2424
}
2525

2626
impl OverlayMetrics {
2727
pub fn new(registry: &Registry) -> anyhow::Result<Self> {
28-
let message_count = register_int_counter_vec_with_registry!(
28+
let message_total = register_int_counter_vec_with_registry!(
2929
opts!(
30-
"trin_message_count",
30+
"trin_message_total",
3131
"count all network messages sent and received"
3232
),
3333
&["protocol", "direction", "type"],
3434
registry
3535
)?;
36-
let utp_outcome_count = register_int_counter_vec_with_registry!(
36+
let utp_outcome_total = register_int_counter_vec_with_registry!(
3737
opts!(
38-
"trin_utp_outcome",
38+
"trin_utp_outcome_total",
3939
"track success rate for all utp transfers outbound and inbound"
4040
),
4141
&["protocol", "direction", "outcome"],
4242
registry
4343
)?;
4444
let utp_active_gauge = register_int_gauge_vec_with_registry!(
4545
opts!(
46-
"trin_utp_active",
46+
"trin_utp_active_streams",
4747
"count all active utp transfers outbound and inbound"
4848
),
4949
&["protocol", "direction"],
5050
registry
5151
)?;
52-
let validation_count = register_int_counter_vec_with_registry!(
52+
let validation_total = register_int_counter_vec_with_registry!(
5353
opts!(
5454
"trin_validation_total",
5555
"count all content validations successful and failed"
@@ -58,10 +58,10 @@ impl OverlayMetrics {
5858
registry
5959
)?;
6060
Ok(Self {
61-
message_count,
62-
utp_outcome_count,
61+
message_total,
62+
utp_outcome_total,
6363
utp_active_gauge,
64-
validation_count,
64+
validation_total,
6565
})
6666
}
6767
}
@@ -73,53 +73,43 @@ pub struct OverlayMetricsReporter {
7373
}
7474

7575
impl OverlayMetricsReporter {
76-
pub fn message_total(&self, direction: &str, message_type: &str) {
77-
let protocol: &str = &self.protocol.to_string();
78-
self.overlay_metrics
79-
.message_count
80-
.with_label_values(&[protocol, direction, message_type])
81-
.inc();
82-
}
83-
8476
//
8577
// Message Count
8678
//
8779

8880
/// Returns the value of the given metric with the specified labels.
89-
pub fn message_count_by_labels(
81+
fn message_total_by_labels(
9082
&self,
9183
direction: MessageDirectionLabel,
9284
message_name: MessageLabel,
9385
) -> u64 {
94-
let protocol: &str = &self.protocol.to_string();
95-
let labels: [&str; 3] = [protocol, direction.into(), message_name.into()];
86+
let labels: [&str; 3] = [&self.protocol, direction.into(), message_name.into()];
9687
self.overlay_metrics
97-
.message_count
88+
.message_total
9889
.with_label_values(&labels)
9990
.get()
10091
}
10192

10293
pub fn report_outbound_request(&self, request: &Request) {
103-
self.increment_message_count(MessageDirectionLabel::Sent, request.into());
94+
self.increment_message_total(MessageDirectionLabel::Sent, request.into());
10495
}
10596

10697
pub fn report_inbound_request(&self, request: &Request) {
107-
self.increment_message_count(MessageDirectionLabel::Received, request.into());
98+
self.increment_message_total(MessageDirectionLabel::Received, request.into());
10899
}
109100

110101
pub fn report_outbound_response(&self, response: &Response) {
111-
self.increment_message_count(MessageDirectionLabel::Sent, response.into());
102+
self.increment_message_total(MessageDirectionLabel::Sent, response.into());
112103
}
113104

114105
pub fn report_inbound_response(&self, response: &Response) {
115-
self.increment_message_count(MessageDirectionLabel::Received, response.into());
106+
self.increment_message_total(MessageDirectionLabel::Received, response.into());
116107
}
117108

118-
fn increment_message_count(&self, direction: MessageDirectionLabel, message: MessageLabel) {
119-
let protocol: &str = &self.protocol.to_string();
120-
let labels: [&str; 3] = [protocol, direction.into(), message.into()];
109+
fn increment_message_total(&self, direction: MessageDirectionLabel, message: MessageLabel) {
110+
let labels: [&str; 3] = [&self.protocol, direction.into(), message.into()];
121111
self.overlay_metrics
122-
.message_count
112+
.message_total
123113
.with_label_values(&labels)
124114
.inc();
125115
}
@@ -128,46 +118,41 @@ impl OverlayMetricsReporter {
128118
// uTP metrics
129119
//
130120

131-
fn utp_active_count(&self, direction: UtpDirectionLabel) -> u64 {
132-
let protocol: &str = &self.protocol.to_string();
133-
let labels: [&str; 2] = [protocol, direction.into()];
121+
fn utp_active_streams(&self, direction: UtpDirectionLabel) -> u64 {
122+
let labels: [&str; 2] = [&self.protocol, direction.into()];
134123
self.overlay_metrics
135124
.utp_active_gauge
136125
.with_label_values(&labels)
137126
.get() as u64
138127
}
139128

140-
fn utp_outcome_count(&self, direction: UtpDirectionLabel, outcome: UtpOutcomeLabel) -> u64 {
141-
let protocol: &str = &self.protocol.to_string();
142-
let labels: [&str; 3] = [protocol, direction.into(), outcome.into()];
129+
fn utp_outcome_total(&self, direction: UtpDirectionLabel, outcome: UtpOutcomeLabel) -> u64 {
130+
let labels: [&str; 3] = [&self.protocol, direction.into(), outcome.into()];
143131
self.overlay_metrics
144-
.utp_outcome_count
132+
.utp_outcome_total
145133
.with_label_values(&labels)
146134
.get()
147135
}
148136

149137
pub fn report_utp_outcome(&self, direction: UtpDirectionLabel, outcome: UtpOutcomeLabel) {
150-
let protocol: &str = &self.protocol.to_string();
151-
let labels: [&str; 3] = [protocol, direction.into(), outcome.into()];
138+
let labels: [&str; 3] = [&self.protocol, direction.into(), outcome.into()];
152139
self.overlay_metrics
153-
.utp_outcome_count
140+
.utp_outcome_total
154141
.with_label_values(&labels)
155142
.inc();
156143
self.report_utp_active_dec(direction);
157144
}
158145

159146
pub fn report_utp_active_inc(&self, direction: UtpDirectionLabel) {
160-
let protocol: &str = &self.protocol.to_string();
161-
let labels: [&str; 2] = [protocol, direction.into()];
147+
let labels: [&str; 2] = [&self.protocol, direction.into()];
162148
self.overlay_metrics
163149
.utp_active_gauge
164150
.with_label_values(&labels)
165151
.inc();
166152
}
167153

168154
pub fn report_utp_active_dec(&self, direction: UtpDirectionLabel) {
169-
let protocol: &str = &self.protocol.to_string();
170-
let labels: [&str; 2] = [protocol, direction.into()];
155+
let labels: [&str; 2] = [&self.protocol, direction.into()];
171156
self.overlay_metrics
172157
.utp_active_gauge
173158
.with_label_values(&labels)
@@ -178,49 +163,47 @@ impl OverlayMetricsReporter {
178163
// Validations
179164
//
180165
/// Returns the value of the given metric with the specified labels.
181-
pub fn validation_count_by_outcome(&self, outcome: bool) -> u64 {
182-
let protocol: &str = &self.protocol.to_string();
166+
fn validation_total_by_outcome(&self, outcome: bool) -> u64 {
183167
let outcome = outcome.to_string();
184-
let labels: [&str; 2] = [protocol, outcome.as_str()];
168+
let labels: [&str; 2] = [&self.protocol, outcome.as_str()];
185169
self.overlay_metrics
186-
.validation_count
170+
.validation_total
187171
.with_label_values(&labels)
188172
.get()
189173
}
190174

191175
pub fn report_validation(&self, success: bool) {
192-
let protocol: &str = &self.protocol.to_string();
193176
let success = success.to_string();
194-
let labels: [&str; 2] = [protocol, success.as_str()];
177+
let labels: [&str; 2] = [&self.protocol, success.as_str()];
195178
self.overlay_metrics
196-
.validation_count
179+
.validation_total
197180
.with_label_values(&labels)
198181
.inc();
199182
}
200183

201184
pub fn get_utp_summary(&self) -> String {
202185
let inbound_success =
203-
self.utp_outcome_count(UtpDirectionLabel::Inbound, UtpOutcomeLabel::Success);
204-
let inbound_failed_connection = self.utp_outcome_count(
186+
self.utp_outcome_total(UtpDirectionLabel::Inbound, UtpOutcomeLabel::Success);
187+
let inbound_failed_connection = self.utp_outcome_total(
205188
UtpDirectionLabel::Inbound,
206189
UtpOutcomeLabel::FailedConnection,
207190
);
208191
let inbound_failed_data_tx =
209-
self.utp_outcome_count(UtpDirectionLabel::Inbound, UtpOutcomeLabel::FailedDataTx);
192+
self.utp_outcome_total(UtpDirectionLabel::Inbound, UtpOutcomeLabel::FailedDataTx);
210193
let inbound_failed_shutdown =
211-
self.utp_outcome_count(UtpDirectionLabel::Inbound, UtpOutcomeLabel::FailedShutdown);
194+
self.utp_outcome_total(UtpDirectionLabel::Inbound, UtpOutcomeLabel::FailedShutdown);
212195
let outbound_success =
213-
self.utp_outcome_count(UtpDirectionLabel::Outbound, UtpOutcomeLabel::Success);
214-
let outbound_failed_connection = self.utp_outcome_count(
196+
self.utp_outcome_total(UtpDirectionLabel::Outbound, UtpOutcomeLabel::Success);
197+
let outbound_failed_connection = self.utp_outcome_total(
215198
UtpDirectionLabel::Outbound,
216199
UtpOutcomeLabel::FailedConnection,
217200
);
218201
let outbound_failed_data_tx =
219-
self.utp_outcome_count(UtpDirectionLabel::Outbound, UtpOutcomeLabel::FailedDataTx);
202+
self.utp_outcome_total(UtpDirectionLabel::Outbound, UtpOutcomeLabel::FailedDataTx);
220203
let outbound_failed_shutdown =
221-
self.utp_outcome_count(UtpDirectionLabel::Outbound, UtpOutcomeLabel::FailedShutdown);
222-
let active_inbound = self.utp_active_count(UtpDirectionLabel::Inbound);
223-
let active_outbound = self.utp_active_count(UtpDirectionLabel::Outbound);
204+
self.utp_outcome_total(UtpDirectionLabel::Outbound, UtpOutcomeLabel::FailedShutdown);
205+
let active_inbound = self.utp_active_streams(UtpDirectionLabel::Inbound);
206+
let active_outbound = self.utp_active_streams(UtpDirectionLabel::Outbound);
224207
format!(
225208
"(in/out): active={} ({}/{}), success={} ({}/{}), failed={} ({}/{}) \
226209
failed_connection={} ({}/{}), failed_data_tx={} ({}/{}), failed_shutdown={} ({}/{})",
@@ -253,14 +236,14 @@ impl OverlayMetricsReporter {
253236
pub fn get_message_summary(&self) -> String {
254237
// for every offer you made, how many accepts did you receive
255238
// for every offer you received, how many accepts did you make
256-
let successful_validations = self.validation_count_by_outcome(true);
257-
let failed_validations = self.validation_count_by_outcome(false);
239+
let successful_validations = self.validation_total_by_outcome(true);
240+
let failed_validations = self.validation_total_by_outcome(false);
258241
format!(
259242
"offers={}/{}, accepts={}/{}, validations={}/{}",
260-
self.message_count_by_labels(MessageDirectionLabel::Received, MessageLabel::Accept),
261-
self.message_count_by_labels(MessageDirectionLabel::Sent, MessageLabel::Offer),
262-
self.message_count_by_labels(MessageDirectionLabel::Sent, MessageLabel::Accept),
263-
self.message_count_by_labels(MessageDirectionLabel::Received, MessageLabel::Offer),
243+
self.message_total_by_labels(MessageDirectionLabel::Received, MessageLabel::Accept),
244+
self.message_total_by_labels(MessageDirectionLabel::Sent, MessageLabel::Offer),
245+
self.message_total_by_labels(MessageDirectionLabel::Sent, MessageLabel::Accept),
246+
self.message_total_by_labels(MessageDirectionLabel::Received, MessageLabel::Offer),
264247
successful_validations,
265248
successful_validations + failed_validations,
266249
)

portalnet/src/overlay.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ where
141141
config.table_filter,
142142
config.bucket_filter,
143143
)));
144+
// Initialize metrics, keep a reference in order to build metrics summaries for logging
144145
let metrics = OverlayMetricsReporter {
145146
overlay_metrics: PORTALNET_METRICS.overlay(),
146147
protocol: protocol.to_string(),

portalnet/src/overlay_service.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2697,10 +2697,9 @@ mod tests {
26972697
use crate::{
26982698
config::PortalnetConfig,
26992699
discovery::{Discovery, NodeAddress},
2700-
metrics::{portalnet::PORTALNET_METRICS, registry::METRICS_REGISTRY},
2700+
metrics::portalnet::PORTALNET_METRICS,
27012701
overlay::OverlayConfig,
27022702
storage::{DistanceFunction, MemoryContentStore},
2703-
types::messages::PortalnetConfig,
27042703
utils::db::setup_temp_dir,
27052704
};
27062705
use ethportal_api::types::content_key::overlay::IdentityContentKey;

portalnet/src/types/messages.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ use std::{
22
convert::{TryFrom, TryInto},
33
fmt,
44
ops::Deref,
5-
path::PathBuf,
65
str::FromStr,
76
};
87

src/lib.rs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,19 +45,18 @@ pub async fn run_trin(
4545
let (node_data_dir, private_key) =
4646
configure_node_data_dir(trin_data_dir, trin_config.private_key)?;
4747

48-
// Initialize prometheus metrics
49-
if let Some(addr) = trin_config.enable_metrics_with_url {
50-
prometheus_exporter::start(addr)?;
51-
}
52-
53-
let portalnet_config =
54-
PortalnetConfig::new(&trin_config, private_key, Some(node_data_dir.clone()));
48+
let portalnet_config = PortalnetConfig::new(&trin_config, private_key);
5549

5650
// Initialize base discovery protocol
5751
let mut discovery = Discovery::new(portalnet_config.clone(), node_data_dir.clone())?;
5852
let talk_req_rx = discovery.start().await?;
5953
let discovery = Arc::new(discovery);
6054

55+
// Initialize prometheus metrics
56+
if let Some(addr) = trin_config.enable_metrics_with_url {
57+
prometheus_exporter::start(addr)?;
58+
}
59+
6160
// Initialize and spawn uTP socket
6261
let (utp_talk_reqs_tx, utp_talk_reqs_rx) = mpsc::unbounded_channel();
6362
let discv5_utp_socket = Discv5UdpSocket::new(Arc::clone(&discovery), utp_talk_reqs_rx);

utp-testing/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ use jsonrpsee::proc_macros::rpc;
1212
use jsonrpsee::server::{Server, ServerHandle};
1313
use portalnet::config::PortalnetConfig;
1414
use portalnet::discovery::{Discovery, UtpEnr};
15+
use portalnet::types::messages::ProtocolId;
1516
use portalnet::utils::db::setup_temp_dir;
1617
use std::net::SocketAddr;
1718
use std::str::FromStr;

0 commit comments

Comments
 (0)