@@ -260,6 +260,8 @@ async fn main() -> anyhow::Result<()> {
260260 if let Some ( ev) = read_pod:: <ExecEvent >( & item) {
261261 emit( exporter. as_ref( ) , & mut stats, EnrichedEvent {
262262 identity: identity_for( & resolver, ev. pid, & ev. comm) ,
263+ workload: resolver. resolve_workload( ev. pid, 0 , 0 ) ,
264+ observation: None ,
263265 process: Some ( process_context( ev. pid, & ev. comm) ) ,
264266 provider: None ,
265267 event: AgentEvent :: ToolExec {
@@ -276,6 +278,8 @@ async fn main() -> anyhow::Result<()> {
276278 if let Some ( ev) = read_pod:: <ExitEvent >( & item) {
277279 emit( exporter. as_ref( ) , & mut stats, EnrichedEvent {
278280 identity: identity_for( & resolver, ev. pid, & ev. comm) ,
281+ workload: resolver. resolve_workload( ev. pid, 0 , 0 ) ,
282+ observation: None ,
279283 process: Some ( process_context( ev. pid, & ev. comm) ) ,
280284 provider: None ,
281285 event: AgentEvent :: ProcessExit {
@@ -296,6 +300,8 @@ async fn main() -> anyhow::Result<()> {
296300 } ;
297301 emit( exporter. as_ref( ) , & mut stats, EnrichedEvent {
298302 identity: identity_for( & resolver, ev. pid, & ev. comm) ,
303+ workload: resolver. resolve_workload( ev. pid, 0 , 0 ) ,
304+ observation: None ,
299305 process: Some ( process_context( ev. pid, & ev. comm) ) ,
300306 provider: None ,
301307 event: AgentEvent :: SecurityAction {
@@ -316,6 +322,8 @@ async fn main() -> anyhow::Result<()> {
316322 peers. insert( sock_key( ev. pid, ev. fd) , ( peer, ev. port) ) ;
317323 emit( exporter. as_ref( ) , & mut stats, EnrichedEvent {
318324 identity: identity_for( & resolver, ev. pid, & ev. comm) ,
325+ workload: resolver. resolve_workload( ev. pid, 0 , 0 ) ,
326+ observation: None ,
319327 process: Some ( process_context( ev. pid, & ev. comm) ) ,
320328 provider: None ,
321329 event: AgentEvent :: Egress {
@@ -347,6 +355,8 @@ async fn main() -> anyhow::Result<()> {
347355 llm_meta. insert( sock_key( ev. pid, ev. fd) , ( sni. clone( ) , provider. clone( ) , peer) ) ;
348356 emit( exporter. as_ref( ) , & mut stats, EnrichedEvent {
349357 identity: identity_for( & resolver, ev. pid, & ev. comm) ,
358+ workload: resolver. resolve_workload( ev. pid, 0 , 0 ) ,
359+ observation: None ,
350360 process: Some ( process_context( ev. pid, & ev. comm) ) ,
351361 provider,
352362 event: AgentEvent :: Egress {
@@ -365,6 +375,8 @@ async fn main() -> anyhow::Result<()> {
365375 if let Some ( query) = parse_dns_qname( & ev. data[ ..len] ) {
366376 emit( exporter. as_ref( ) , & mut stats, EnrichedEvent {
367377 identity: identity_for( & resolver, ev. pid, & ev. comm) ,
378+ workload: resolver. resolve_workload( ev. pid, 0 , 0 ) ,
379+ observation: None ,
368380 process: Some ( process_context( ev. pid, & ev. comm) ) ,
369381 provider: None ,
370382 event: AgentEvent :: Dns { pid: ev. pid, query } ,
@@ -388,6 +400,8 @@ async fn main() -> anyhow::Result<()> {
388400 } ;
389401 emit( exporter. as_ref( ) , & mut stats, EnrichedEvent {
390402 identity: identity_for( & resolver, ev. pid, & ev. comm) ,
403+ workload: resolver. resolve_workload( ev. pid, 0 , 0 ) ,
404+ observation: None ,
391405 process: Some ( process_context( ev. pid, & ev. comm) ) ,
392406 provider: None ,
393407 event,
@@ -405,6 +419,8 @@ async fn main() -> anyhow::Result<()> {
405419 if provider. is_some( ) {
406420 emit( exporter. as_ref( ) , & mut stats, EnrichedEvent {
407421 identity: identity_for( & resolver, ev. pid, & ev. comm) ,
422+ workload: resolver. resolve_workload( ev. pid, 0 , 0 ) ,
423+ observation: None ,
408424 process: Some ( process_context( ev. pid, & ev. comm) ) ,
409425 provider,
410426 event: AgentEvent :: LlmCall {
@@ -428,12 +444,15 @@ async fn main() -> anyhow::Result<()> {
428444 let content = String :: from_utf8_lossy( & ev. data[ ..len] ) . into_owned( ) ;
429445 if !content. is_empty( ) {
430446 let identity = identity_for( & resolver, ev. pid, & ev. comm) ;
447+ let workload = resolver. resolve_workload( ev. pid, 0 , 0 ) ;
431448 // Structured LLM telemetry (model/tokens) alongside the raw content.
432449 if let Some ( ( model, prompt_tokens, completion_tokens) ) =
433450 parse_llm_meta( & content)
434451 {
435452 emit( exporter. as_ref( ) , & mut stats, EnrichedEvent {
436453 identity: identity. clone( ) ,
454+ workload: workload. clone( ) ,
455+ observation: None ,
437456 process: Some ( process_context( ev. pid, & ev. comm) ) ,
438457 provider: None ,
439458 event: AgentEvent :: LlmApi {
@@ -447,6 +466,8 @@ async fn main() -> anyhow::Result<()> {
447466 }
448467 emit( exporter. as_ref( ) , & mut stats, EnrichedEvent {
449468 identity,
469+ workload,
470+ observation: None ,
450471 process: Some ( process_context( ev. pid, & ev. comm) ) ,
451472 provider: None ,
452473 event: AgentEvent :: SslContent {
@@ -674,6 +695,8 @@ fn emit_collector_heartbeat(
674695) {
675696 exporter. export ( & EnrichedEvent {
676697 identity : Identity :: default ( ) ,
698+ workload : None ,
699+ observation : None ,
677700 process : None ,
678701 provider : None ,
679702 event : AgentEvent :: CollectorHeartbeat {
0 commit comments