Skip to content

Commit adea77b

Browse files
committed
Make event_time in query_log for QueryFinish* match with finish_time_us in opentelemetry_span_log
1 parent c0643ce commit adea77b

File tree

3 files changed

+8
-10
lines changed

3 files changed

+8
-10
lines changed

src/Common/OpenTelemetryTraceContext.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ SpanHolder::SpanHolder(std::string_view _operation_name, SpanKind _kind)
147147
current_trace_context->span_id = this->span_id;
148148
}
149149

150-
void SpanHolder::finish() noexcept
150+
void SpanHolder::finish(std::chrono::system_clock::time_point time) noexcept
151151
{
152152
if (!this->isTraceEnabled())
153153
return;
@@ -163,9 +163,7 @@ void SpanHolder::finish() noexcept
163163
/// The log might be disabled, check it before use
164164
if (log)
165165
{
166-
this->finish_time_us
167-
= std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::system_clock::now().time_since_epoch()).count();
168-
166+
this->finish_time_us = std::chrono::duration_cast<std::chrono::microseconds>(time.time_since_epoch()).count();
169167
log->add(OpenTelemetrySpanLogElement(*this));
170168
}
171169
}
@@ -179,7 +177,7 @@ void SpanHolder::finish() noexcept
179177

180178
SpanHolder::~SpanHolder()
181179
{
182-
finish();
180+
finish(std::chrono::system_clock::now());
183181
}
184182

185183
bool TracingContext::parseTraceparentHeader(std::string_view traceparent, String & error)

src/Common/OpenTelemetryTraceContext.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ struct SpanHolder : public Span
161161

162162
/// Finish a span explicitly if needed.
163163
/// It's safe to call it multiple times
164-
void finish() noexcept;
164+
void finish(std::chrono::system_clock::time_point time) noexcept;
165165
};
166166

167167
}

src/Interpreters/executeQuery.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -583,13 +583,13 @@ void logQueryFinish(
583583
const Settings & settings = context->getSettingsRef();
584584
auto log_queries = settings[Setting::log_queries] && !internal;
585585

586+
const auto time_now = std::chrono::system_clock::now();
586587
QueryStatusPtr process_list_elem = context->getProcessListElement();
587588
if (process_list_elem)
588589
{
589590
/// Update performance counters before logging to query_log
590591
CurrentThread::finalizePerformanceCounters();
591592

592-
auto time_now = std::chrono::system_clock::now();
593593
QueryStatusInfo info = process_list_elem->getInfo(true, settings[Setting::log_profile_events]);
594594
logQueryMetricLogFinish(context, internal, elem.client_info.current_query_id, time_now, std::make_shared<QueryStatusInfo>(info));
595595
elem.type = QueryLogElementType::QUERY_FINISH;
@@ -652,7 +652,7 @@ void logQueryFinish(
652652
query_span->addAttribute(fmt::format("clickhouse.setting.{}", change.name), convertFieldToString(change.value));
653653
}
654654
}
655-
query_span->finish();
655+
query_span->finish(time_now);
656656
}
657657
}
658658

@@ -721,7 +721,7 @@ void logQueryException(
721721
query_span->addAttribute("clickhouse.query_id", elem.client_info.current_query_id);
722722
query_span->addAttribute("clickhouse.exception", elem.exception);
723723
query_span->addAttribute("clickhouse.exception_code", elem.exception_code);
724-
query_span->finish();
724+
query_span->finish(time_now);
725725
}
726726
}
727727

@@ -843,7 +843,7 @@ void logExceptionBeforeStart(
843843
query_span->addAttribute("clickhouse.exception", elem.exception);
844844
query_span->addAttribute("db.statement", elem.query);
845845
query_span->addAttribute("clickhouse.query_id", elem.client_info.current_query_id);
846-
query_span->finish();
846+
query_span->finish(query_end_time);
847847
}
848848

849849
ProfileEvents::increment(ProfileEvents::FailedQuery);

0 commit comments

Comments
 (0)