From 15d214e2372308fa1d12b576a675c9e2cbf6cde1 Mon Sep 17 00:00:00 2001 From: Ellie Huxtable Date: Thu, 16 Nov 2023 23:18:13 +0000 Subject: feat: add metrics server and http metrics (#1394) * feat: add metrics server and http metrics * setup metrics * update default config * fix tests --- atuin-server/src/settings.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'atuin-server/src/settings.rs') diff --git a/atuin-server/src/settings.rs b/atuin-server/src/settings.rs index 744f4ec2..d6f1867c 100644 --- a/atuin-server/src/settings.rs +++ b/atuin-server/src/settings.rs @@ -7,6 +7,23 @@ use serde::{de::DeserializeOwned, Deserialize, Serialize}; static EXAMPLE_CONFIG: &str = include_str!("../server.toml"); +#[derive(Clone, Debug, Deserialize, Serialize)] +pub struct Metrics { + pub enable: bool, + pub host: String, + pub port: u16, +} + +impl Default for Metrics { + fn default() -> Self { + Self { + enable: false, + host: String::from("127.0.0.1"), + port: 9001, + } + } +} + #[derive(Clone, Debug, Deserialize, Serialize)] pub struct Settings { pub host: String, @@ -18,6 +35,7 @@ pub struct Settings { pub page_size: i64, pub register_webhook_url: Option, pub register_webhook_username: String, + pub metrics: Metrics, #[serde(flatten)] pub db_settings: DbSettings, @@ -46,6 +64,9 @@ impl Settings { .set_default("path", "")? .set_default("register_webhook_username", "")? .set_default("page_size", 1100)? + .set_default("metrics.enable", false)? + .set_default("metrics.host", "127.0.0.1")? + .set_default("metrics.port", 9001)? .add_source( Environment::with_prefix("atuin") .prefix_separator("_") -- cgit v1.3.1