fix: improve workbench triad analysis drilldown
This commit is contained in:
@@ -1621,6 +1621,8 @@ def agentrun_summary(spans, authority=None):
|
||||
def hwlab_read_model_summary(spans):
|
||||
trace_read_spans = []
|
||||
turn_read_spans = []
|
||||
session_list_spans = []
|
||||
session_message_spans = []
|
||||
projection_spans = []
|
||||
source_event_count = None
|
||||
requested_since_seq = None
|
||||
@@ -1648,6 +1650,10 @@ def hwlab_read_model_summary(spans):
|
||||
status_value = attrs.get("turnStatus") if attrs.get("turnStatus") is not None else attrs.get("status")
|
||||
turn_statuses.append(status_value)
|
||||
turn_status_counts[str(status_value)] += 1
|
||||
if name == "session_list_read":
|
||||
session_list_spans.append(public_span(item))
|
||||
if name == "session_messages_read":
|
||||
session_message_spans.append(public_span(item))
|
||||
if name == "projection_sync":
|
||||
projection_spans.append(public_span(item))
|
||||
after_seq = to_int(attrs.get("afterSeq"))
|
||||
@@ -1683,6 +1689,10 @@ def hwlab_read_model_summary(spans):
|
||||
"turnStatusCounts": [{"status": status, "count": count} for status, count in turn_status_counts.most_common()],
|
||||
"traceEventReadSpans": trace_read_spans,
|
||||
"turnStatusReadSpans": turn_read_spans,
|
||||
"sessionListReadCount": len(session_list_spans),
|
||||
"sessionMessageReadCount": len(session_message_spans),
|
||||
"sessionListReadSpans": session_list_spans,
|
||||
"sessionMessageReadSpans": session_message_spans,
|
||||
"projectionSpans": projection_spans,
|
||||
}
|
||||
|
||||
@@ -2144,6 +2154,8 @@ payload = {
|
||||
"traceStatus": read_model.get("traceStatus"),
|
||||
"turnStatus": read_model.get("turnStatus"),
|
||||
"turnStatusCounts": read_model.get("turnStatusCounts"),
|
||||
"sessionListReadCount": read_model.get("sessionListReadCount"),
|
||||
"sessionMessageReadCount": read_model.get("sessionMessageReadCount"),
|
||||
},
|
||||
"http": {
|
||||
"statusCounts": http_summary.get("statusCounts", [])[:20],
|
||||
@@ -2159,6 +2171,7 @@ payload = {
|
||||
"diagnoseFull": DIAGNOSE_FULL_COMMAND,
|
||||
"traceSummary": "bun scripts/cli.ts platform-infra observability trace --target ${target.id} --trace-id %s --limit 80" % resolved_trace_id,
|
||||
"traceReads": "bun scripts/cli.ts platform-infra observability trace --target ${target.id} --trace-id %s --grep trace_events_read --limit 20 --full" % resolved_trace_id,
|
||||
"sessionReads": "bun scripts/cli.ts platform-infra observability trace --target ${target.id} --trace-id %s --grep session_ --limit 60 --full" % resolved_trace_id,
|
||||
"turnStatus": "bun scripts/cli.ts platform-infra observability trace --target ${target.id} --trace-id %s --grep turn_status_read --limit 20 --full" % resolved_trace_id,
|
||||
"projection": "bun scripts/cli.ts platform-infra observability trace --target ${target.id} --trace-id %s --grep projection_sync --limit 120 --full" % resolved_trace_id,
|
||||
"runnerTerminal": "bun scripts/cli.ts platform-infra observability trace --target ${target.id} --trace-id %s --grep runner_terminal --limit 20 --full" % resolved_trace_id,
|
||||
@@ -2170,11 +2183,13 @@ if FULL:
|
||||
payload["full"] = {
|
||||
"traceEventReadSpans": read_model.get("traceEventReadSpans", []),
|
||||
"turnStatusReadSpans": read_model.get("turnStatusReadSpans", []),
|
||||
"sessionListReadSpans": read_model.get("sessionListReadSpans", []),
|
||||
"sessionMessageReadSpans": read_model.get("sessionMessageReadSpans", []),
|
||||
"projectionSpans": read_model.get("projectionSpans", [])[:LIMIT],
|
||||
"terminalSpans": agentrun.get("terminalSpans", [])[:LIMIT],
|
||||
"errorSpans": [public_span(item) for item in error_spans[:LIMIT]],
|
||||
"httpProblemSpans": [public_span(item) for item in http_summary.get("problemSpans", [])[:LIMIT]],
|
||||
"selectedSpans": [public_span(item) for item in spans if item.get("name") in ("trace_events_read", "turn_status_read", "projection_sync", "command_result")][:LIMIT],
|
||||
"selectedSpans": [public_span(item) for item in spans if item.get("name") in ("trace_events_read", "turn_status_read", "session_list_read", "session_messages_read", "projection_sync", "command_result")][:LIMIT],
|
||||
}
|
||||
if RAW:
|
||||
payload["raw"] = raw_trace_shape(trace_parsed)
|
||||
|
||||
Reference in New Issue
Block a user