diff --git a/influxdb_iox/src/commands/run/ingester.rs b/influxdb_iox/src/commands/run/ingester.rs index 7f4903c28d..5dd5207487 100644 --- a/influxdb_iox/src/commands/run/ingester.rs +++ b/influxdb_iox/src/commands/run/ingester.rs @@ -12,7 +12,7 @@ use influxdb_ioxd::{ }, Service, }; -use object_store::ObjectStoreImpl; +use object_store::{instrumentation::ObjectStoreMetrics, DynObjectStore, ObjectStoreImpl}; use observability_deps::tracing::*; use query::exec::Executor; use std::{convert::TryFrom, sync::Arc}; @@ -83,10 +83,11 @@ pub async fn command(config: Config) -> Result<()> { .get_catalog("ingester", Arc::clone(&metric_registry)) .await?; - let object_store = Arc::new( - ObjectStoreImpl::try_from(config.run_config.object_store_config()) - .map_err(Error::ObjectStoreParsing)?, - ); + let object_store = ObjectStoreImpl::try_from(config.run_config.object_store_config()) + .map_err(Error::ObjectStoreParsing)?; + // Decorate the object store with a metric recorder. + let object_store: Arc = + Arc::new(ObjectStoreMetrics::new(object_store, &*metric_registry)); let exec = Arc::new(Executor::new(config.query_exec_thread_count)); let server_type = create_ingester_server_type( diff --git a/influxdb_ioxd/src/server_type/ingester.rs b/influxdb_ioxd/src/server_type/ingester.rs index bc8cc3a28a..680870e426 100644 --- a/influxdb_ioxd/src/server_type/ingester.rs +++ b/influxdb_ioxd/src/server_type/ingester.rs @@ -16,7 +16,7 @@ use ingester::{ }; use iox_catalog::interface::Catalog; use metric::Registry; -use object_store::ObjectStoreImpl; +use object_store::DynObjectStore; use query::exec::Executor; use trace::TraceCollector; @@ -134,7 +134,7 @@ pub async fn create_ingester_server_type( common_state: &CommonServerState, metric_registry: Arc, catalog: Arc, - object_store: Arc, + object_store: Arc, exec: Arc, write_buffer_config: &WriteBufferConfig, ingester_config: IngesterConfig,