diff --git a/Cargo.lock b/Cargo.lock index 659a371fba8..9d5ac775668 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1891,10 +1891,7 @@ name = "graph-server-metrics" version = "0.28.2" dependencies = [ "graph", - "http", "hyper", - "lazy_static", - "serde", ] [[package]] diff --git a/graph/src/components/server/metrics.rs b/graph/src/components/server/metrics.rs deleted file mode 100644 index 1bd9f4e1fd1..00000000000 --- a/graph/src/components/server/metrics.rs +++ /dev/null @@ -1,12 +0,0 @@ -use futures::prelude::*; - -/// Common trait for index node server implementations. -pub trait MetricsServer { - type ServeError; - - /// Creates a new Tokio task that, when spawned, brings up the index node server. - fn serve( - &mut self, - port: u16, - ) -> Result + Send>, Self::ServeError>; -} diff --git a/graph/src/components/server/mod.rs b/graph/src/components/server/mod.rs index b0a510c26a6..da2b4d47b76 100644 --- a/graph/src/components/server/mod.rs +++ b/graph/src/components/server/mod.rs @@ -6,6 +6,3 @@ pub mod subscription; /// Component for the index node server. pub mod index_node; - -/// Components for the Prometheus metrics server. -pub mod metrics; diff --git a/graph/src/lib.rs b/graph/src/lib.rs index 553f1343e13..032b7f1fc0f 100644 --- a/graph/src/lib.rs +++ b/graph/src/lib.rs @@ -115,7 +115,6 @@ pub mod prelude { PrometheusError, Registry, }; pub use crate::components::server::index_node::IndexNodeServer; - pub use crate::components::server::metrics::MetricsServer; pub use crate::components::server::query::GraphQLServer; pub use crate::components::server::subscription::SubscriptionServer; pub use crate::components::store::{ diff --git a/node/src/main.rs b/node/src/main.rs index 031f9e4ad11..5e81d07d56d 100644 --- a/node/src/main.rs +++ b/node/src/main.rs @@ -568,12 +568,12 @@ async fn main() { .compat(), ); - graph::spawn( + graph::spawn(async move { metrics_server .serve(metrics_port) + .await .expect("Failed to start metrics server") - .compat(), - ); + }); }; graph::spawn(launch_services(logger.clone(), env_vars.cheap_clone())); diff --git a/server/metrics/Cargo.toml b/server/metrics/Cargo.toml index e9e9966e1f9..67f6092123f 100644 --- a/server/metrics/Cargo.toml +++ b/server/metrics/Cargo.toml @@ -5,7 +5,4 @@ edition.workspace = true [dependencies] graph = { path = "../../graph" } -http = "0.2" hyper = { version = "0.14", features = ["server"] } -lazy_static = "1.2.0" -serde = "1.0" diff --git a/server/metrics/src/lib.rs b/server/metrics/src/lib.rs index 71d27b866a8..f67d9dadf32 100644 --- a/server/metrics/src/lib.rs +++ b/server/metrics/src/lib.rs @@ -2,13 +2,13 @@ use std::net::{Ipv4Addr, SocketAddrV4}; use std::sync::Arc; use anyhow::Error; -use graph::prometheus::{Encoder, Registry, TextEncoder}; use hyper::header::{ACCESS_CONTROL_ALLOW_ORIGIN, CONTENT_TYPE}; use hyper::service::{make_service_fn, service_fn}; use hyper::{Body, Response, Server}; use thiserror::Error; -use graph::prelude::{MetricsServer as MetricsServerTrait, *}; +use graph::prelude::*; +use graph::prometheus::{Encoder, Registry, TextEncoder}; /// Errors that may occur when starting the server. #[derive(Debug, Error)] @@ -30,15 +30,12 @@ impl PrometheusMetricsServer { registry, } } -} - -impl MetricsServerTrait for PrometheusMetricsServer { - type ServeError = PrometheusMetricsServeError; - fn serve( + /// Creates a new Tokio task that, when spawned, brings up the index node server. + pub async fn serve( &mut self, port: u16, - ) -> Result + Send>, Self::ServeError> { + ) -> Result, PrometheusMetricsServeError> { let logger = self.logger.clone(); info!( @@ -73,6 +70,6 @@ impl MetricsServerTrait for PrometheusMetricsServer { .serve(new_service) .map_err(move |e| error!(logger, "Metrics server error"; "error" => format!("{}", e))); - Ok(Box::new(task.compat())) + Ok(task.await) } }