From 0bcf089430b0bb508ae962ae1993f312785e1503 Mon Sep 17 00:00:00 2001 From: avleentwilio <147056302+avleentwilio@users.noreply.github.com> Date: Thu, 18 Sep 2025 00:09:10 +0100 Subject: [PATCH 1/3] Update log and trace column names for ClickHouse defaults The logs and trace tables use the order: ServiceName, TimestampTime, Timestamp Currently the defaults when `use_otel` is enabled sets the timestamp column to `Timestamp`. As a result ClickHouse has to search much more data, making queries against very large tables quite slow. The correct timestamp column to use would be `TimestampTime`. Ref: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/clickhouseexporter/internal/sqltemplates/logs_table.sql --- src/otel.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/otel.ts b/src/otel.ts index dc0aa8ae0..97c0f4322 100644 --- a/src/otel.ts +++ b/src/otel.ts @@ -26,7 +26,7 @@ const otel129: OtelVersion = { specUrl: 'https://opentelemetry.io/docs/specs/otel', logsTable: defaultLogsTable, logColumnMap: new Map([ - [ColumnHint.Time, 'Timestamp'], + [ColumnHint.Time, 'TimestampTime'], [ColumnHint.LogMessage, 'Body'], [ColumnHint.LogLevel, 'SeverityText'], [ColumnHint.LogLabels, 'LogAttributes'], @@ -42,7 +42,7 @@ const otel129: OtelVersion = { ], traceTable: defaultTraceTable, traceColumnMap: new Map([ - [ColumnHint.Time, 'Timestamp'], + [ColumnHint.Time, 'TimestampTime'], [ColumnHint.TraceId, 'TraceId'], [ColumnHint.TraceSpanId, 'SpanId'], [ColumnHint.TraceParentSpanId, 'ParentSpanId'], From 20edd4f1f642abf822c23d5155459767f3c2ebc6 Mon Sep 17 00:00:00 2001 From: Avleen Vig Date: Thu, 18 Sep 2025 00:48:39 +0100 Subject: [PATCH 2/3] fix yarn test for deduping column names after setting TimestampTime as the default otel timestamp column --- .../queryBuilder/views/logsQueryBuilderHooks.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/queryBuilder/views/logsQueryBuilderHooks.test.ts b/src/components/queryBuilder/views/logsQueryBuilderHooks.test.ts index 83d957829..271bc8064 100644 --- a/src/components/queryBuilder/views/logsQueryBuilderHooks.test.ts +++ b/src/components/queryBuilder/views/logsQueryBuilderHooks.test.ts @@ -117,8 +117,8 @@ describe('useOtelColumns', () => { it('should call builderOptionsDispatch with log context columns when auto-select is enabled', async () => { jest.spyOn(mockDatasource, 'shouldSelectLogContextColumns').mockReturnValue(true); - // Timestamp is an OTel column, but also provided as a Log Context column. It should only appear once. - jest.spyOn(mockDatasource, 'getLogContextColumnNames').mockReturnValue(['Timestamp', 'SampleColumn']); + // TimestampTime is an OTel column, but also provided as a Log Context column. It should only appear once. + jest.spyOn(mockDatasource, 'getLogContextColumnNames').mockReturnValue(['TimestampTime', 'SampleColumn']); const builderOptionsDispatch = jest.fn(); let otelEnabled = false; From 5264b521c1dd666fdac399cdd936e024de0d0720 Mon Sep 17 00:00:00 2001 From: Avleen Vig Date: Thu, 18 Sep 2025 00:51:40 +0100 Subject: [PATCH 3/3] undo change on Trace table --- src/otel.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/otel.ts b/src/otel.ts index 97c0f4322..fb2c5b623 100644 --- a/src/otel.ts +++ b/src/otel.ts @@ -42,7 +42,7 @@ const otel129: OtelVersion = { ], traceTable: defaultTraceTable, traceColumnMap: new Map([ - [ColumnHint.Time, 'TimestampTime'], + [ColumnHint.Time, 'Timestamp'], [ColumnHint.TraceId, 'TraceId'], [ColumnHint.TraceSpanId, 'SpanId'], [ColumnHint.TraceParentSpanId, 'ParentSpanId'],