Skip to content

Commit a21e3be

Browse files
MariefayTrigger.dev RepoOps
authored andcommitted
perf(clickhouse): stop selecting span attributes for the run trace API tree
The run trace API (`GET /api/v1/runs/:runId/trace`, unpaged) no longer reads span attributes from ClickHouse when building the span tree. The tree never used them, so responses are unchanged while ClickHouse reads and the data sent to the API shrink, most for large traces. Mono-RevId: cb52ce09b11e29ad36f09b11caaaf9582e5cbfbf
1 parent 65d123f commit a21e3be

2 files changed

Lines changed: 18 additions & 3 deletions

File tree

‎internal-packages/clickhouse/src/taskEvents.ts‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ export const TaskEventDetailedSummaryV1Result = z.object({
8686
kind: z.string(),
8787
metadata: z.string(),
8888
message: z.string(),
89-
attributes_text: z.string(),
9089
});
9190

9291
export type TaskEventDetailedSummaryV1Result = z.output<typeof TaskEventDetailedSummaryV1Result>;
@@ -108,7 +107,6 @@ export function getTraceDetailedSummaryQueryBuilder(
108107
"kind",
109108
"metadata",
110109
{ name: "message", expression: "LEFT(message, 256)" },
111-
"attributes_text",
112110
],
113111
settings,
114112
});
@@ -306,7 +304,6 @@ export function getTraceDetailedSummaryQueryBuilderV2(
306304
"kind",
307305
"metadata",
308306
{ name: "message", expression: "LEFT(message, 256)" },
309-
"attributes_text",
310307
],
311308
settings,
312309
});
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { describe, expect, it } from "vitest";
2+
import { NoopClient } from "./client/noop.js";
3+
import {
4+
getTraceDetailedSummaryQueryBuilder,
5+
getTraceDetailedSummaryQueryBuilderV2,
6+
} from "./taskEvents.js";
7+
8+
describe("trace detailed summary query builders", () => {
9+
it.each([
10+
["task_events_v1", getTraceDetailedSummaryQueryBuilder],
11+
["task_events_v2", getTraceDetailedSummaryQueryBuilderV2],
12+
])("%s does not select attributes_text (the tree builder never reads it)", (table, builder) => {
13+
const { query } = builder(new NoopClient())().build();
14+
15+
expect(query).toMatch(new RegExp(`^SELECT .+ FROM trigger_dev\\.${table}$`));
16+
expect(query).not.toContain("attributes_text");
17+
});
18+
});

0 commit comments

Comments
 (0)