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