Skip to main content

systemprompt_runtime/
span.rs

1//! Tracing span construction for inbound requests.
2
3use systemprompt_logging::{RequestSpan, RequestSpanBuilder};
4use systemprompt_models::RequestContext;
5
6pub fn create_request_span(ctx: &RequestContext) -> RequestSpan {
7    let mut builder = RequestSpanBuilder::new(
8        &ctx.auth.user_id,
9        &ctx.request.session_id,
10        &ctx.execution.trace_id,
11    );
12
13    if !ctx.execution.context_id.as_str().is_empty() {
14        builder = builder.with_context_id(&ctx.execution.context_id);
15    }
16
17    if let Some(ref task_id) = ctx.execution.task_id {
18        builder = builder.with_task_id(task_id);
19    }
20
21    if let Some(ref client_id) = ctx.request.client_id {
22        builder = builder.with_client_id(client_id);
23    }
24
25    builder.build()
26}