fix: show workbench session read telemetry
This commit is contained in:
@@ -66,6 +66,11 @@ IMPORTANT_ATTRS = [
|
||||
"workbench.read_model.route", "workbench.read_model.count",
|
||||
"workbench.read_model.family", "workbench.read_model.status",
|
||||
"workbench.read_model.reason",
|
||||
"source", "sessionCount", "fallbackTitleCount", "fallbackTitleRatio",
|
||||
"emptyPreviewCount", "includeSessionId", "sessionIds", "traceIds",
|
||||
"returnedMessages", "totalMessages", "roleSequencePrefix",
|
||||
"consecutiveUserPrefix", "adjacentSameRoleCount", "userCount",
|
||||
"agentCount",
|
||||
"db.system", "db.operation.name", "db.sql.table", "db.query.arg_count",
|
||||
"db.index.expected", "db.pool.max_open", "db.pool.open_connections",
|
||||
"db.pool.in_use", "db.pool.idle", "db.pool.wait_count",
|
||||
@@ -361,6 +366,11 @@ IMPORTANT_ATTRS = [
|
||||
"workbench.read_model.route", "workbench.read_model.count",
|
||||
"workbench.read_model.family", "workbench.read_model.status",
|
||||
"workbench.read_model.reason",
|
||||
"source", "sessionCount", "fallbackTitleCount", "fallbackTitleRatio",
|
||||
"emptyPreviewCount", "includeSessionId", "sessionIds", "traceIds",
|
||||
"returnedMessages", "totalMessages", "roleSequencePrefix",
|
||||
"consecutiveUserPrefix", "adjacentSameRoleCount", "userCount",
|
||||
"agentCount",
|
||||
"http.target", "http.url", "url.path",
|
||||
"db.system", "db.operation.name", "db.sql.table", "db.query.arg_count",
|
||||
"db.index.expected", "db.pool.max_open", "db.pool.open_connections",
|
||||
@@ -790,6 +800,11 @@ IMPORTANT_ATTRS = [
|
||||
"workbench.read_model.route", "workbench.read_model.count",
|
||||
"workbench.read_model.family", "workbench.read_model.status",
|
||||
"workbench.read_model.reason",
|
||||
"source", "sessionCount", "fallbackTitleCount", "fallbackTitleRatio",
|
||||
"emptyPreviewCount", "includeSessionId", "sessionIds", "traceIds",
|
||||
"returnedMessages", "totalMessages", "roleSequencePrefix",
|
||||
"consecutiveUserPrefix", "adjacentSameRoleCount", "userCount",
|
||||
"agentCount",
|
||||
"db.system", "db.operation.name", "db.sql.table", "db.query.arg_count",
|
||||
"db.index.expected", "db.pool.max_open", "db.pool.open_connections",
|
||||
"db.pool.in_use", "db.pool.idle", "db.pool.wait_count",
|
||||
|
||||
@@ -235,6 +235,8 @@ export function renderTraceTable(input: {
|
||||
});
|
||||
const runnerRows = traceRunnerRows(allSpans);
|
||||
const readRows = traceReadWindowRows(allSpans);
|
||||
const sessionListRows = traceSessionListRows(allSpans);
|
||||
const sessionMessageRows = traceSessionMessageRows(allSpans);
|
||||
const turnRows = traceTurnStatusRows(allSpans);
|
||||
const projectionRows = traceProjectionRows(allSpans);
|
||||
const countRows = asArray(input.result.spanNameCounts).slice(0, 8).map((item) => {
|
||||
@@ -270,6 +272,12 @@ export function renderTraceTable(input: {
|
||||
"Trace read windows:",
|
||||
formatTable(["TRACE", "SESSION", "SINCE", "LIMIT", "RETURNED", "RANGE", "TOTAL", "MORE", "FULL", "LAST"], readRows.length > 0 ? readRows : [["-", "-", "-", "-", "-", "-", "-", "-", "-", "-"]]),
|
||||
"",
|
||||
"Session list reads:",
|
||||
formatTable(["SOURCE", "COUNT", "FALLBACK", "RATIO", "EMPTY_PREVIEW", "INCLUDE", "SESSIONS", "TRACES"], sessionListRows.length > 0 ? sessionListRows : [["-", "-", "-", "-", "-", "-", "-", "-"]]),
|
||||
"",
|
||||
"Session message reads:",
|
||||
formatTable(["SESSION", "RETURNED", "TOTAL", "ROLES", "USER_PREFIX", "ADJ_SAME", "USER", "AGENT", "TRACES"], sessionMessageRows.length > 0 ? sessionMessageRows : [["-", "-", "-", "-", "-", "-", "-", "-", "-"]]),
|
||||
"",
|
||||
"Turn status reads:",
|
||||
formatTable(["TRACE", "SESSION", "TURN", "STATUS", "PHASE", "ROUTE", "HTTP"], turnRows.length > 0 ? turnRows : [["-", "-", "-", "-", "-", "-", "-"]]),
|
||||
"",
|
||||
@@ -350,6 +358,41 @@ function traceReadWindowRows(spans: Record<string, unknown>[]): string[][] {
|
||||
return dedupeRows(rows).slice(0, 12);
|
||||
}
|
||||
|
||||
function traceSessionListRows(spans: Record<string, unknown>[]): string[][] {
|
||||
const rows = spans.filter((span) => textValue(span.name) === "session_list_read").map((span) => {
|
||||
const attrs = asPlainRecord(span.attributes);
|
||||
return [
|
||||
shortenEnd(spanColumnAttr(attrs, ["source"]), 10),
|
||||
shortenEnd(spanColumnAttr(attrs, ["sessionCount"]), 8),
|
||||
shortenEnd(spanColumnAttr(attrs, ["fallbackTitleCount"]), 8),
|
||||
shortenEnd(spanColumnAttr(attrs, ["fallbackTitleRatio"]), 8),
|
||||
shortenEnd(spanColumnAttr(attrs, ["emptyPreviewCount"]), 8),
|
||||
shortenMiddle(spanColumnAttr(attrs, ["includeSessionId"]), 18),
|
||||
shortenMiddle(spanColumnAttr(attrs, ["sessionIds"]), 34),
|
||||
shortenMiddle(spanColumnAttr(attrs, ["traceIds"]), 34),
|
||||
];
|
||||
});
|
||||
return dedupeRows(rows).slice(0, 12);
|
||||
}
|
||||
|
||||
function traceSessionMessageRows(spans: Record<string, unknown>[]): string[][] {
|
||||
const rows = spans.filter((span) => textValue(span.name) === "session_messages_read").map((span) => {
|
||||
const attrs = asPlainRecord(span.attributes);
|
||||
return [
|
||||
shortenMiddle(spanColumnAttr(attrs, ["sessionId"]), 18),
|
||||
shortenEnd(spanColumnAttr(attrs, ["returnedMessages"]), 8),
|
||||
shortenEnd(spanColumnAttr(attrs, ["totalMessages"]), 8),
|
||||
shortenEnd(spanColumnAttr(attrs, ["roleSequencePrefix"]), 32),
|
||||
shortenEnd(spanColumnAttr(attrs, ["consecutiveUserPrefix"]), 8),
|
||||
shortenEnd(spanColumnAttr(attrs, ["adjacentSameRoleCount"]), 8),
|
||||
shortenEnd(spanColumnAttr(attrs, ["userCount"]), 8),
|
||||
shortenEnd(spanColumnAttr(attrs, ["agentCount"]), 8),
|
||||
shortenMiddle(spanColumnAttr(attrs, ["traceIds"]), 34),
|
||||
];
|
||||
});
|
||||
return dedupeRows(rows).slice(0, 12);
|
||||
}
|
||||
|
||||
function traceTurnStatusRows(spans: Record<string, unknown>[]): string[][] {
|
||||
const rows = spans.filter((span) => textValue(span.name) === "turn_status_read").map((span) => {
|
||||
const attrs = asPlainRecord(span.attributes);
|
||||
|
||||
Reference in New Issue
Block a user