Skip to content

Commit 15a34c7

Browse files
committed
feat: [#1438] merge UDP tracker core metrics
Extract `request_kind` label. Putting the request type in the metric name does not make sense. The purpose of the refactor to build the new extendable-labeled metrics was to start using labels to group metrics instead of changes in metric's names. From this: ``` udp_tracker_core_announce_requests_received_total{server_binding_ip="0.0.0.0",server_binding_port="6969",server_binding_protocol="udp"} 619656 udp_tracker_core_connect_requests_received_total{server_binding_ip="0.0.0.0",server_binding_port="6969",server_binding_protocol="udp"} 308493 udp_tracker_core_scrape_requests_received_total{server_binding_ip="0.0.0.0",server_binding_port="6969",server_binding_protocol="udp"} 32487 ``` To this: ``` udp_tracker_core_requests_received_total{request_kind="announce",server_binding_ip="0.0.0.0",server_binding_port="6969",server_binding_protocol="udp"} 619656 udp_tracker_core_requests_received_total{request_kind="connect",server_binding_ip="0.0.0.0",server_binding_port="6969",server_binding_protocol="udp"} 308493 udp_tracker_core_requests_received_total{request_kind="scrape",server_binding_ip="0.0.0.0",server_binding_port="6969",server_binding_protocol="udp"} 32487 ```
1 parent 8a36e45 commit 15a34c7

2 files changed

Lines changed: 18 additions & 30 deletions

File tree

packages/udp-tracker-core/src/statistics/event/handler.rs

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
use torrust_tracker_metrics::label::LabelSet;
1+
use torrust_tracker_metrics::label::{LabelName, LabelSet, LabelValue};
22
use torrust_tracker_metrics::metric::MetricName;
33
use torrust_tracker_primitives::DurationSinceUnixEpoch;
44

55
use crate::event::Event;
66
use crate::statistics::repository::Repository;
7+
use crate::statistics::UDP_TRACKER_CORE_REQUESTS_RECEIVED_TOTAL;
78

89
/// # Panics
910
///
@@ -24,12 +25,11 @@ pub async fn handle_event(event: Event, stats_repository: &Repository, now: Dura
2425

2526
// Extendable metrics
2627

28+
let mut label_set = LabelSet::from(context);
29+
label_set.upsert(LabelName::new("request_kind"), LabelValue::new("connect"));
30+
2731
stats_repository
28-
.increase_counter(
29-
&MetricName::new("udp_tracker_core_connect_requests_received_total"),
30-
&LabelSet::from(context),
31-
now,
32-
)
32+
.increase_counter(&MetricName::new(UDP_TRACKER_CORE_REQUESTS_RECEIVED_TOTAL), &label_set, now)
3333
.await;
3434
}
3535
Event::UdpAnnounce { context } => {
@@ -46,12 +46,11 @@ pub async fn handle_event(event: Event, stats_repository: &Repository, now: Dura
4646

4747
// Extendable metrics
4848

49+
let mut label_set = LabelSet::from(context);
50+
label_set.upsert(LabelName::new("request_kind"), LabelValue::new("announce"));
51+
4952
stats_repository
50-
.increase_counter(
51-
&MetricName::new("udp_tracker_core_announce_requests_received_total"),
52-
&LabelSet::from(context),
53-
now,
54-
)
53+
.increase_counter(&MetricName::new(UDP_TRACKER_CORE_REQUESTS_RECEIVED_TOTAL), &label_set, now)
5554
.await;
5655
}
5756
Event::UdpScrape { context } => {
@@ -68,12 +67,11 @@ pub async fn handle_event(event: Event, stats_repository: &Repository, now: Dura
6867

6968
// Extendable metrics
7069

70+
let mut label_set = LabelSet::from(context);
71+
label_set.upsert(LabelName::new("request_kind"), LabelValue::new("scrape"));
72+
7173
stats_repository
72-
.increase_counter(
73-
&MetricName::new("udp_tracker_core_scrape_requests_received_total"),
74-
&LabelSet::from(context),
75-
now,
76-
)
74+
.increase_counter(&MetricName::new(UDP_TRACKER_CORE_REQUESTS_RECEIVED_TOTAL), &label_set, now)
7775
.await;
7876
}
7977
}

packages/udp-tracker-core/src/statistics/mod.rs

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,26 +10,16 @@ use torrust_tracker_metrics::metric::description::MetricDescription;
1010
use torrust_tracker_metrics::metric::MetricName;
1111
use torrust_tracker_metrics::unit::Unit;
1212

13+
const UDP_TRACKER_CORE_REQUESTS_RECEIVED_TOTAL: &str = "udp_tracker_core_requests_received_total";
14+
1315
#[must_use]
1416
pub fn describe_metrics() -> Metrics {
1517
let mut metrics = Metrics::default();
1618

1719
metrics.metric_collection.describe_counter(
18-
&MetricName::new("udp_tracker_core_connect_requests_received_total"),
19-
Some(Unit::Count),
20-
Some(MetricDescription::new("Total number of UDP connect requests received")),
21-
);
22-
23-
metrics.metric_collection.describe_counter(
24-
&MetricName::new("udp_tracker_core_announce_requests_received_total"),
25-
Some(Unit::Count),
26-
Some(MetricDescription::new("Total number of UDP announce requests received")),
27-
);
28-
29-
metrics.metric_collection.describe_counter(
30-
&MetricName::new("udp_tracker_core_scrape_requests_received_total"),
20+
&MetricName::new(UDP_TRACKER_CORE_REQUESTS_RECEIVED_TOTAL),
3121
Some(Unit::Count),
32-
Some(MetricDescription::new("Total number of UDP scrape requests received")),
22+
Some(MetricDescription::new("Total number of UDP requests received")),
3323
);
3424

3525
metrics

0 commit comments

Comments
 (0)