diff --git a/iroh-cli/src/commands.rs b/iroh-cli/src/commands.rs index eba273bb37..e178ae065f 100644 --- a/iroh-cli/src/commands.rs +++ b/iroh-cli/src/commands.rs @@ -40,6 +40,10 @@ pub(crate) struct Cli { #[cfg(unix)] #[clap(long)] pub(crate) log_fd: Option, + + /// Port to serve metrics on. -1 to disable. + #[clap(long)] + pub(crate) metrics_port: Option, } #[derive(Parser, Debug, Clone)] @@ -127,7 +131,14 @@ impl Cli { path.display() ); } - let config = NodeConfig::from_env(self.config.as_deref())?; + let mut config = NodeConfig::from_env(self.config.as_deref())?; + if let Some(metrics_port) = self.metrics_port { + if metrics_port < 0 { + config.metrics_addr = None; + } else { + config.metrics_addr = Some(([127, 0, 0, 1], metrics_port as u16).into()) + } + } let add_command = add.map(|source| blob::BlobCommands::Add { source, diff --git a/iroh-cli/src/config.rs b/iroh-cli/src/config.rs index b0d13c83af..0b8aee4a17 100644 --- a/iroh-cli/src/config.rs +++ b/iroh-cli/src/config.rs @@ -99,7 +99,7 @@ impl Default for NodeConfig { // TODO(ramfox): this should probably just be a relay map relay_nodes: [default_na_relay_node(), default_eu_relay_node()].into(), gc_policy: GcPolicy::Disabled, - metrics_addr: None, + metrics_addr: Some(([127, 0, 0, 1], 9090).into()), } } }