Skip to content

Commit 8ee076c

Browse files
authored
Merge pull request #2057 from input-output-hk/dlachaume/2054/add-missing-aggregator-prometheus-metric
Feat: add aggregator metric to record the number of restoration of the Cardano database
2 parents e68fb58 + 3f8d893 commit 8ee076c

File tree

4 files changed

+41
-3
lines changed

4 files changed

+41
-3
lines changed

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mithril-aggregator/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "mithril-aggregator"
3-
version = "0.5.92"
3+
version = "0.5.93"
44
description = "A Mithril Aggregator server"
55
authors = { workspace = true }
66
edition = { workspace = true }

mithril-aggregator/src/http_server/routes/statistics_routes.rs

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ fn post_statistics(
1717
.and(warp::post())
1818
.and(warp::body::json())
1919
.and(middlewares::with_event_transmitter(dependency_manager))
20+
.and(middlewares::with_metrics_service(dependency_manager))
2021
.and_then(handlers::post_snapshot_statistics)
2122
}
2223

@@ -28,11 +29,17 @@ mod handlers {
2829

2930
use crate::event_store::{EventMessage, TransmitterService};
3031
use crate::http_server::routes::reply;
32+
use crate::MetricsService;
3133

3234
pub async fn post_snapshot_statistics(
3335
snapshot_download_message: SnapshotDownloadMessage,
3436
event_transmitter: Arc<TransmitterService<EventMessage>>,
37+
metrics_service: Arc<MetricsService>,
3538
) -> Result<impl warp::Reply, Infallible> {
39+
metrics_service
40+
.get_cardano_db_total_restoration_since_startup()
41+
.increment();
42+
3643
let headers: Vec<(&str, &str)> = Vec::new();
3744

3845
match event_transmitter.send_event_message(
@@ -61,7 +68,8 @@ mod tests {
6168
};
6269

6370
use crate::{
64-
dependency_injection::DependenciesBuilder, http_server::SERVER_BASE_PATH, Configuration,
71+
dependency_injection::DependenciesBuilder, http_server::SERVER_BASE_PATH,
72+
initialize_dependencies, Configuration,
6573
};
6674

6775
fn setup_router(
@@ -108,4 +116,30 @@ mod tests {
108116
let _ = rx.try_recv().unwrap();
109117
result.unwrap();
110118
}
119+
120+
#[tokio::test]
121+
async fn test_post_statistics_increments_cardano_db_total_restoration_since_startup_metric() {
122+
let method = Method::POST.as_str();
123+
let path = "/statistics/snapshot";
124+
let dependency_manager = Arc::new(initialize_dependencies().await);
125+
let initial_counter_value = dependency_manager
126+
.metrics_service
127+
.get_cardano_db_total_restoration_since_startup()
128+
.get();
129+
130+
request()
131+
.method(method)
132+
.json(&SnapshotDownloadMessage::dummy())
133+
.path(&format!("/{SERVER_BASE_PATH}{path}"))
134+
.reply(&setup_router(dependency_manager.clone()))
135+
.await;
136+
137+
assert_eq!(
138+
initial_counter_value + 1,
139+
dependency_manager
140+
.metrics_service
141+
.get_cardano_db_total_restoration_since_startup()
142+
.get()
143+
);
144+
}
111145
}

mithril-aggregator/src/metrics/service.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ build_metrics_service!(
1212
"mithril_aggregator_artifact_detail_cardano_db_total_served_since_startup",
1313
"Number of Cardano db artifact details served since startup on a Mithril aggregator node"
1414
),
15+
cardano_db_total_restoration_since_startup:MetricCounter(
16+
"mithril_aggregator_cardano_db_total_restoration_since_startup",
17+
"Number of Cardano db restorations since startup on a Mithril aggregator node"
18+
),
1519
artifact_detail_mithril_stake_distribution_total_served_since_startup:MetricCounter(
1620
"mithril_aggregator_artifact_detail_mithril_stake_distribution_total_served_since_startup",
1721
"Number of Mithril stake distribution artifact details served since startup on a Mithril aggregator node"

0 commit comments

Comments
 (0)