fix(observability): standardize session telemetry attrs (#23213)

This commit is contained in:
Kit Langton
2026-04-17 21:14:23 -04:00
committed by GitHub
parent 5181f9b4e1
commit 23a2d01282
3 changed files with 22 additions and 4 deletions

View File

@@ -74,7 +74,7 @@ const live: Layer.Layer<
.clone()
.tag("providerID", input.model.providerID)
.tag("modelID", input.model.id)
.tag("sessionID", input.sessionID)
.tag("session.id", input.sessionID)
.tag("small", (input.small ?? false).toString())
.tag("agent", input.agent.name)
.tag("mode", input.agent.mode)
@@ -317,6 +317,18 @@ const live: Layer.Layer<
const tracer = cfg.experimental?.openTelemetry
? Option.getOrUndefined(yield* Effect.serviceOption(OtelTracer.OtelTracer))
: undefined
const telemetryTracer = tracer
? new Proxy(tracer, {
get(target, prop, receiver) {
if (prop !== "startSpan") return Reflect.get(target, prop, receiver)
return (...args: Parameters<typeof target.startSpan>) => {
const span = target.startSpan(...args)
span.setAttribute("session.id", input.sessionID)
return span
}
},
})
: undefined
return streamText({
onError(error) {
@@ -390,7 +402,7 @@ const live: Layer.Layer<
experimental_telemetry: {
isEnabled: cfg.experimental?.openTelemetry,
functionId: "session.llm",
tracer,
tracer: telemetryTracer,
metadata: {
userId: cfg.username ?? "unknown",
sessionId: input.sessionID,

View File

@@ -123,7 +123,7 @@ export const layer: Layer.Layer<
reasoningMap: {},
}
let aborted = false
const slog = log.clone().tag("sessionID", input.sessionID).tag("messageID", input.assistantMessage.id)
const slog = log.clone().tag("session.id", input.sessionID).tag("messageID", input.assistantMessage.id)
const parse = (e: unknown) =>
MessageV2.fromError(e, {