From 0258ff1eea67ed6274cddeebcd9360d32ef3cf7c Mon Sep 17 00:00:00 2001 From: Asmir Avdicevic Date: Wed, 22 May 2024 12:41:17 +0200 Subject: [PATCH] feat(cli): add metrics server to iroh doctor (#2292) ## Description Folks try to look at metrics while doctor alone is running (note this clashes by default with the iroh node if both are running locally on port :9090). Also kind of inconvenient given if you want to look at a running iroh node when doctor is running. Suggestions welcome, maybe default off metrics on `doctor`? Also most metrics are not really used in the `doctor` path, but we can fix that as we figure out what's cool to measure. ## Breaking Changes ## Notes & open questions ## Change checklist - [x] Self-review. - [ ] Documentation updates if relevant. - [ ] Tests if relevant. - [ ] All breaking changes documented. --- iroh-cli/src/commands/doctor.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/iroh-cli/src/commands/doctor.rs b/iroh-cli/src/commands/doctor.rs index 01445e2d33..156bb4dd9d 100644 --- a/iroh-cli/src/commands/doctor.rs +++ b/iroh-cli/src/commands/doctor.rs @@ -1068,7 +1068,8 @@ fn inspect_ticket(ticket: &str, zbase32: bool) -> anyhow::Result<()> { pub async fn run(command: Commands, config: &NodeConfig) -> anyhow::Result<()> { let data_dir = iroh_data_root()?; let _guard = crate::logging::init_terminal_and_file_logging(&config.file_logs, &data_dir)?; - match command { + let metrics_fut = super::start::start_metrics_server(config.metrics_addr); + let cmd_res = match command { Commands::Report { stun_host, stun_port, @@ -1200,7 +1201,11 @@ pub async fn run(command: Commands, config: &NodeConfig) -> anyhow::Result<()> { Ok(()) } + }; + if let Some(metrics_fut) = metrics_fut { + metrics_fut.abort(); } + cmd_res } async fn run_plotter(