From 8ef725a81263c457f27e34874459dec8577ae793 Mon Sep 17 00:00:00 2001 From: Rory Crispin Date: Wed, 10 Jan 2024 14:40:25 +0900 Subject: [PATCH] [ClickHouse org] Prevent inserting logs with timestamp=epoch When the pipeline fails to parse a timestamp, just use the observed timestamp rather than 1970 --- exporter/clickhouseexporter/exporter_logs.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/exporter/clickhouseexporter/exporter_logs.go b/exporter/clickhouseexporter/exporter_logs.go index 8306001a9f90..842c91cdc2ef 100644 --- a/exporter/clickhouseexporter/exporter_logs.go +++ b/exporter/clickhouseexporter/exporter_logs.go @@ -88,8 +88,12 @@ func (e *logsExporter) pushLogsData(ctx context.Context, ld plog.Logs) error { for k := 0; k < rs.Len(); k++ { r := rs.At(k) logAttr := attributesToMap(r.Attributes()) + insertTimestamp := r.Timestamp() + if insertTimestamp == 0 { + insertTimestamp = r.ObservedTimestamp() + } _, err = statement.ExecContext(ctx, - r.Timestamp().AsTime(), + insertTimestamp.AsTime(), traceutil.TraceIDToHexOrEmptyString(r.TraceID()), traceutil.SpanIDToHexOrEmptyString(r.SpanID()), uint32(r.Flags()),