Skip to content

Commit 9871e66

Browse files
committed
refactor: [torrust#1403] extract types and rename. WIP
1 parent 88b2cc2 commit 9871e66

File tree

6 files changed

+386
-64
lines changed

6 files changed

+386
-64
lines changed

packages/axum-rest-tracker-api-server/src/v1/context/stats/resources.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
//! API context.
33
use serde::{Deserialize, Serialize};
44
use torrust_rest_tracker_api_core::statistics::services::{TrackerLabeledMetrics, TrackerMetrics};
5-
use torrust_tracker_primitives::metrics::LabeledMetrics;
5+
use torrust_tracker_primitives::metrics::LabeledMetricCollection;
66

77
/// It contains all the statistics generated by the tracker.
88
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
@@ -121,7 +121,7 @@ impl From<TrackerMetrics> for Stats {
121121
#[derive(Serialize, Debug, PartialEq)]
122122
pub struct LabeledStats {
123123
// Extendable metrics
124-
labeled_metrics: LabeledMetrics,
124+
labeled_metrics: LabeledMetricCollection,
125125
}
126126

127127
impl From<TrackerLabeledMetrics> for LabeledStats {

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

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
use std::collections::BTreeMap;
22
use std::net::IpAddr;
33

4+
use torrust_tracker_primitives::metrics::{LabelName, LabelSet, LabelValue, MetricName};
5+
46
use crate::event::Event;
57
use crate::statistics::repository::Repository;
68

@@ -31,12 +33,16 @@ pub async fn handle_event(event: Event, stats_repository: &Repository) {
3133

3234
stats_repository
3335
.increase_counter(
34-
"announce_requests_received_total",
35-
&BTreeMap::from([
36-
("ip_version".to_string(), ip_version),
37-
("protocol".to_string(), "http".to_string()),
38-
("url".to_string(), format!("http://{}", connection.server_socket_addr())), // todo: use the actual scheme
39-
]),
36+
&MetricName::new("announce_requests_received_total"),
37+
&LabelSet::new(BTreeMap::from([
38+
(LabelName::new("ip_version"), LabelValue::new(&ip_version)),
39+
(LabelName::new("protocol"), LabelValue::new("http")),
40+
(
41+
LabelName::new("url"),
42+
// todo: use the actual scheme
43+
LabelValue::new(&format!("http://{}", connection.server_socket_addr())), // // DevSkim: ignore DS137138
44+
),
45+
])),
4046
)
4147
.await;
4248
}
@@ -61,12 +67,16 @@ pub async fn handle_event(event: Event, stats_repository: &Repository) {
6167

6268
stats_repository
6369
.increase_counter(
64-
"scrape_requests_received_total",
65-
&BTreeMap::from([
66-
("ip_version".to_string(), ip_version),
67-
("protocol".to_string(), "http".to_string()),
68-
("url".to_string(), format!("http://{}", connection.server_socket_addr())), // todo: use the actual scheme
69-
]),
70+
&MetricName::new("scrape_requests_received_total"),
71+
&LabelSet::new(BTreeMap::from([
72+
(LabelName::new("ip_version"), LabelValue::new(&ip_version)),
73+
(LabelName::new("protocol"), LabelValue::new("http")),
74+
(
75+
LabelName::new("url"),
76+
// todo: use the actual scheme
77+
LabelValue::new(&format!("http://{}", connection.server_socket_addr())), // DevSkim: ignore DS137138
78+
),
79+
])),
7080
)
7181
.await;
7282
}

packages/http-tracker-core/src/statistics/metrics.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
use std::collections::BTreeMap;
2-
31
use serde::Serialize;
4-
use torrust_tracker_primitives::metrics::LabeledMetrics;
2+
use torrust_tracker_primitives::metrics::{LabelSet, LabeledMetricCollection, MetricName};
53

64
/// Metrics collected by the tracker.
75
#[derive(Debug, Clone, PartialEq, Default, Serialize)]
@@ -18,11 +16,11 @@ pub struct Metrics {
1816
/// Total number of TCP (HTTP tracker) `scrape` requests from IPv6 peers.
1917
pub tcp6_scrapes_handled: u64,
2018

21-
pub labeled_metrics: LabeledMetrics,
19+
pub labeled_metrics: LabeledMetricCollection,
2220
}
2321

2422
impl Metrics {
25-
pub fn increase_counter(&mut self, metric_name: &str, metric_labels: &BTreeMap<String, String>) {
26-
self.labeled_metrics.increase_counter(metric_name, metric_labels);
23+
pub fn increase_counter(&mut self, metric_name: &MetricName, labels: &LabelSet) {
24+
self.labeled_metrics.increase_counter(metric_name, labels);
2725
}
2826
}

packages/http-tracker-core/src/statistics/repository.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
use std::collections::BTreeMap;
21
use std::sync::Arc;
32

43
use tokio::sync::{RwLock, RwLockReadGuard};
4+
use torrust_tracker_primitives::metrics::{LabelSet, MetricName};
55

66
use super::metrics::Metrics;
77

@@ -53,9 +53,9 @@ impl Repository {
5353
drop(stats_lock);
5454
}
5555

56-
pub async fn increase_counter(&self, metric_name: &str, metric_labels: &BTreeMap<String, String>) {
56+
pub async fn increase_counter(&self, metric_name: &MetricName, labels: &LabelSet) {
5757
let mut stats_lock = self.stats.write().await;
58-
stats_lock.increase_counter(metric_name, metric_labels);
58+
stats_lock.increase_counter(metric_name, labels);
5959
drop(stats_lock);
6060
}
6161
}

0 commit comments

Comments
 (0)