diff options
| author | DanConwayDev <DanConwayDev@protonmail.com> | 2025-12-04 15:17:04 +0000 |
|---|---|---|
| committer | DanConwayDev <DanConwayDev@protonmail.com> | 2025-12-04 15:24:19 +0000 |
| commit | fd0c87c787d0626b3546fa571541c9c809711821 (patch) | |
| tree | 934f20d973127f380b807d2bd44b25c197cf349c /src/main.rs | |
| parent | 762cd8e815e797f173f541795de774fbbf978fc3 (diff) | |
add prometheus metrics
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs index f80e920..9200cc2 100644 --- a/src/main.rs +++ b/src/main.rs | |||
| @@ -1,10 +1,14 @@ | |||
| 1 | use std::sync::Arc; | ||
| 2 | |||
| 1 | use anyhow::Result; | 3 | use anyhow::Result; |
| 2 | use tracing::{info, Level}; | 4 | use tracing::{info, Level}; |
| 3 | use tracing_subscriber::FmtSubscriber; | 5 | use tracing_subscriber::FmtSubscriber; |
| 4 | 6 | ||
| 5 | use ngit_grasp::{ | 7 | use ngit_grasp::{ |
| 6 | config::{Config, DatabaseBackend}, | 8 | config::{Config, DatabaseBackend}, |
| 7 | http, nostr, | 9 | http, |
| 10 | metrics::Metrics, | ||
| 11 | nostr, | ||
| 8 | }; | 12 | }; |
| 9 | 13 | ||
| 10 | #[tokio::main] | 14 | #[tokio::main] |
| @@ -29,6 +33,15 @@ async fn main() -> Result<()> { | |||
| 29 | } | 33 | } |
| 30 | info!("Database backend: {}", config.database_backend); | 34 | info!("Database backend: {}", config.database_backend); |
| 31 | 35 | ||
| 36 | // Initialize metrics if enabled | ||
| 37 | let metrics = if config.metrics_enabled { | ||
| 38 | info!("Metrics enabled on /metrics endpoint"); | ||
| 39 | Some(Arc::new(Metrics::new(config.metrics_connection_per_ip_abuse_threshold))) | ||
| 40 | } else { | ||
| 41 | info!("Metrics disabled"); | ||
| 42 | None | ||
| 43 | }; | ||
| 44 | |||
| 32 | // Create Nostr relay with NIP-34 validation | 45 | // Create Nostr relay with NIP-34 validation |
| 33 | // Returns both the relay and database for direct queries in handlers | 46 | // Returns both the relay and database for direct queries in handlers |
| 34 | if let Ok(relay_with_db) = nostr::builder::create_relay(&config) { | 47 | if let Ok(relay_with_db) = nostr::builder::create_relay(&config) { |
| @@ -39,7 +52,7 @@ async fn main() -> Result<()> { | |||
| 39 | 52 | ||
| 40 | // Start HTTP server with integrated relay and database | 53 | // Start HTTP server with integrated relay and database |
| 41 | info!("Starting HTTP server on {}", config.bind_address); | 54 | info!("Starting HTTP server on {}", config.bind_address); |
| 42 | http::run_server(config, relay_with_db.relay, relay_with_db.database).await?; | 55 | http::run_server(config, relay_with_db.relay, relay_with_db.database, metrics).await?; |
| 43 | } | 56 | } |
| 44 | 57 | ||
| 45 | Ok(()) | 58 | Ok(()) |