From 4ca27dd5b3c2de6dd39e165f158f9742122f8322 Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Mon, 13 Jan 2025 11:27:05 +0000 Subject: [PATCH] Truncate ingested log messages to 4096, and truncate message to 256 in the summary tree view --- apps/webapp/app/v3/eventRepository.server.ts | 67 ++++++++++++-------- apps/webapp/app/v3/otlpExporter.server.ts | 4 +- 2 files changed, 44 insertions(+), 27 deletions(-) diff --git a/apps/webapp/app/v3/eventRepository.server.ts b/apps/webapp/app/v3/eventRepository.server.ts index c9c2e8e231..22898e0009 100644 --- a/apps/webapp/app/v3/eventRepository.server.ts +++ b/apps/webapp/app/v3/eventRepository.server.ts @@ -178,6 +178,25 @@ export type UpdateEventOptions = { events?: SpanEvents; }; +type TaskEventSummary = Pick< + TaskEvent, + | "id" + | "spanId" + | "parentId" + | "runId" + | "idempotencyKey" + | "message" + | "style" + | "startTime" + | "duration" + | "isError" + | "isPartial" + | "isCancelled" + | "level" + | "events" + | "environmentType" +>; + export class EventRepository { private readonly _flushScheduler: DynamicFlushScheduler; private _randomIdGenerator = new RandomIdGenerator(); @@ -383,32 +402,28 @@ export class EventRepository { public async getTraceSummary(traceId: string): Promise { return await startActiveSpan("getTraceSummary", async (span) => { - const events = await this.readReplica.taskEvent.findMany({ - select: { - id: true, - spanId: true, - parentId: true, - runId: true, - idempotencyKey: true, - message: true, - style: true, - startTime: true, - duration: true, - isError: true, - isPartial: true, - isCancelled: true, - level: true, - events: true, - environmentType: true, - }, - where: { - traceId, - }, - orderBy: { - startTime: "asc", - }, - take: env.MAXIMUM_TRACE_SUMMARY_VIEW_COUNT, - }); + const events = await this.readReplica.$queryRaw` + SELECT + id, + "spanId", + "parentId", + "runId", + "idempotencyKey", + LEFT(message, 256) as message, + style, + "startTime", + duration, + "isError", + "isPartial", + "isCancelled", + level, + events, + "environmentType" + FROM "TaskEvent" + WHERE "traceId" = ${traceId} + ORDER BY "startTime" ASC + LIMIT ${env.MAXIMUM_TRACE_SUMMARY_VIEW_COUNT} + `; let preparedEvents: Array = []; let rootSpanId: string | undefined; diff --git a/apps/webapp/app/v3/otlpExporter.server.ts b/apps/webapp/app/v3/otlpExporter.server.ts index 33df34ac29..e0cf474216 100644 --- a/apps/webapp/app/v3/otlpExporter.server.ts +++ b/apps/webapp/app/v3/otlpExporter.server.ts @@ -167,7 +167,9 @@ function convertLogsToCreateableEvents(resourceLog: ResourceLogs): Array