diff --git a/influxdb_iox/src/commands/run/router2.rs b/influxdb_iox/src/commands/run/router2.rs index e6e8ab9e51..edfaedeb19 100644 --- a/influxdb_iox/src/commands/run/router2.rs +++ b/influxdb_iox/src/commands/run/router2.rs @@ -80,7 +80,12 @@ pub async fn command(config: Config) -> Result<()> { config.run_config.max_http_request_size, NopDmlHandler::default(), ); - let router_server = RouterServer::new(http, Default::default(), metrics); + let router_server = RouterServer::new( + http, + Default::default(), + metrics, + common_state.trace_collector(), + ); let server_type = Arc::new(RouterServerType::new(router_server, &common_state)); info!("starting router2"); diff --git a/router2/src/server.rs b/router2/src/server.rs index 77c2cb92a7..a58a14b669 100644 --- a/router2/src/server.rs +++ b/router2/src/server.rs @@ -3,6 +3,7 @@ use std::sync::Arc; use crate::dml_handler::DmlHandler; +use trace::TraceCollector; use self::{grpc::GrpcDelegate, http::HttpDelegate}; @@ -14,6 +15,7 @@ pub mod http; #[derive(Debug, Default)] pub struct RouterServer { metrics: Arc, + trace_collector: Option>, http: HttpDelegate, grpc: GrpcDelegate, @@ -22,9 +24,15 @@ pub struct RouterServer { impl RouterServer { /// Initialise a new [`RouterServer`] using the provided HTTP and gRPC /// handlers. - pub fn new(http: HttpDelegate, grpc: GrpcDelegate, metrics: Arc) -> Self { + pub fn new( + http: HttpDelegate, + grpc: GrpcDelegate, + metrics: Arc, + trace_collector: Option>, + ) -> Self { Self { metrics, + trace_collector, http, grpc, } @@ -34,6 +42,11 @@ impl RouterServer { pub fn metric_registry(&self) -> Arc { Arc::clone(&self.metrics) } + + /// Trace collector associated with this server. + pub fn trace_collector(&self) -> &Option> { + &self.trace_collector + } } impl RouterServer