@@ -36,7 +36,10 @@ use influxdb3_server::{
3636} ;
3737use influxdb3_shutdown:: { ShutdownManager , wait_for_signal} ;
3838use influxdb3_sys_events:: SysEventStore ;
39- use influxdb3_telemetry:: store:: { CreateTelemetryStoreArgs , TelemetryStore } ;
39+ use influxdb3_telemetry:: {
40+ ProcessingEngineMetrics ,
41+ store:: { CreateTelemetryStoreArgs , TelemetryStore } ,
42+ } ;
4043use influxdb3_wal:: { Gen1Duration , WalConfig } ;
4144use influxdb3_write:: {
4245 WriteBuffer ,
@@ -694,15 +697,16 @@ pub async fn command(config: Config) -> Result<()> {
694697 . await ;
695698
696699 info ! ( "setting up telemetry store" ) ;
697- let telemetry_store = setup_telemetry_store (
698- & config. object_store_config ,
699- node_def. instance_id ( ) ,
700+ let telemetry_store = setup_telemetry_store ( TelemetryStoreSetupArgs {
701+ object_store_config : & config. object_store_config ,
702+ instance_id : node_def. instance_id ( ) ,
700703 num_cpus,
701- Some ( Arc :: clone ( & write_buffer_impl. persisted_files ( ) ) ) ,
702- config. telemetry_endpoint . as_str ( ) ,
703- config. disable_telemetry_upload ,
704- catalog. catalog_uuid ( ) . to_string ( ) ,
705- )
704+ persisted_files : Some ( Arc :: clone ( & write_buffer_impl. persisted_files ( ) ) ) ,
705+ telemetry_endpoint : & config. telemetry_endpoint ,
706+ disable_upload : config. disable_telemetry_upload ,
707+ catalog_uuid : catalog. catalog_uuid ( ) . to_string ( ) ,
708+ processing_engine_metrics : Arc :: clone ( & catalog) as Arc < dyn ProcessingEngineMetrics > ,
709+ } )
706710 . await ;
707711
708712 let write_buffer: Arc < dyn WriteBuffer > = write_buffer_impl;
@@ -916,14 +920,28 @@ fn determine_package_manager() -> Arc<dyn PythonEnvironmentManager> {
916920 Arc :: new ( DisabledManager )
917921}
918922
919- async fn setup_telemetry_store (
920- object_store_config : & ObjectStoreConfig ,
923+ struct TelemetryStoreSetupArgs < ' a > {
924+ object_store_config : & ' a ObjectStoreConfig ,
921925 instance_id : Arc < str > ,
922926 num_cpus : usize ,
923927 persisted_files : Option < Arc < PersistedFiles > > ,
924- telemetry_endpoint : & str ,
928+ telemetry_endpoint : & ' a str ,
925929 disable_upload : bool ,
926930 catalog_uuid : String ,
931+ processing_engine_metrics : Arc < dyn ProcessingEngineMetrics > ,
932+ }
933+
934+ async fn setup_telemetry_store (
935+ TelemetryStoreSetupArgs {
936+ object_store_config,
937+ instance_id,
938+ num_cpus,
939+ persisted_files,
940+ telemetry_endpoint,
941+ disable_upload,
942+ catalog_uuid,
943+ processing_engine_metrics,
944+ } : TelemetryStoreSetupArgs < ' _ > ,
927945) -> Arc < TelemetryStore > {
928946 let os = std:: env:: consts:: OS ;
929947 let influxdb_pkg_version = env ! ( "CARGO_PKG_VERSION" ) ;
@@ -937,7 +955,10 @@ async fn setup_telemetry_store(
937955
938956 if disable_upload {
939957 debug ! ( "Initializing TelemetryStore with upload disabled." ) ;
940- TelemetryStore :: new_without_background_runners ( persisted_files. map ( |p| p as _ ) )
958+ TelemetryStore :: new_without_background_runners (
959+ persisted_files. map ( |p| p as _ ) ,
960+ processing_engine_metrics,
961+ )
941962 } else {
942963 debug ! ( "Initializing TelemetryStore with upload enabled for {telemetry_endpoint}." ) ;
943964 TelemetryStore :: new ( CreateTelemetryStoreArgs {
@@ -949,6 +970,7 @@ async fn setup_telemetry_store(
949970 persisted_files : persisted_files. map ( |p| p as _ ) ,
950971 telemetry_endpoint : telemetry_endpoint. to_string ( ) ,
951972 catalog_uuid,
973+ processing_engine_metrics,
952974 } )
953975 . await
954976 }
0 commit comments