fix(observability): standardize session telemetry attrs (#23213)
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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, {
|
||||
|
||||
Reference in New Issue
Block a user