@@ -14,8 +14,9 @@ use saluki_context::{
1414 tags:: { SharedTagSet , TagSet } ,
1515} ;
1616use saluki_core:: {
17- diagnostic:: DiagnosticHandle ,
17+ diagnostic:: DiagnosticsEmitter ,
1818 runtime:: { state:: DataspaceRegistry , InitializationError , Supervisable , SupervisorFuture } ,
19+ support:: SubsystemIdentifier ,
1920} ;
2021use saluki_env:: workload:: {
2122 entity:: HighestPrecedenceEntityIdRef ,
@@ -210,21 +211,23 @@ impl Supervisable for RemoteAgentWorkloadAPIWorker {
210211 async fn initialize ( & self , process_shutdown : ShutdownHandle ) -> Result < SupervisorFuture , InitializationError > {
211212 let workload_route = DynamicRoute :: http ( EndpointType :: Privileged , & self . handler ) ;
212213
213- let state = self . handler . state . clone ( ) ;
214- let tags_handle = DiagnosticHandle :: new ( "workload-tags-dump.json" , move || state. tags_dump_json ( ) . into_bytes ( ) ) ;
215-
216- let state = self . handler . state . clone ( ) ;
217- let eds_handle = DiagnosticHandle :: new ( "workload-external-data-dump.json" , move || {
218- state. eds_dump_json ( ) . into_bytes ( )
219- } ) ;
214+ let tags_state = self . handler . state . clone ( ) ;
215+ let eds_state = self . handler . state . clone ( ) ;
220216
221217 Ok ( Box :: pin ( async move {
222218 let dataspace =
223219 DataspaceRegistry :: try_current ( ) . ok_or_else ( || generic_error ! ( "Dataspace not available." ) ) ?;
224220
225221 dataspace. assert ( workload_route, "workload-api" ) ;
226- dataspace. assert ( tags_handle, "diag-workload-tags" ) ;
227- dataspace. assert ( eds_handle, "diag-workload-eds" ) ;
222+
223+ let diagnostics =
224+ DiagnosticsEmitter :: from_dataspace ( SubsystemIdentifier :: from_segments ( [ "workload-api" ] ) , dataspace) ;
225+ diagnostics. register_collector ( "workload-tags-dump.json" , move || {
226+ tags_state. tags_dump_json ( ) . into_bytes ( )
227+ } ) ;
228+ diagnostics. register_collector ( "workload-external-data-dump.json" , move || {
229+ eds_state. eds_dump_json ( ) . into_bytes ( )
230+ } ) ;
228231
229232 process_shutdown. await ;
230233 Ok ( ( ) )
0 commit comments