This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new cb06e67fba [fix](tracing) Fix opentelemetry log output to be.out
(#11856)
cb06e67fba is described below
commit cb06e67fbaceb63884f50d9d0f0661f12a550b2a
Author: luozenglin <[email protected]>
AuthorDate: Sun Sep 18 17:40:23 2022 +0800
[fix](tracing) Fix opentelemetry log output to be.out (#11856)
---
be/src/util/telemetry/telemetry.cpp | 18 ++++++++++++++++++
thirdparty/patches/opentelemetry-cpp-1.4.0.patch | 9 +++++----
2 files changed, 23 insertions(+), 4 deletions(-)
diff --git a/be/src/util/telemetry/telemetry.cpp
b/be/src/util/telemetry/telemetry.cpp
index b6301862a4..44904355f4 100644
--- a/be/src/util/telemetry/telemetry.cpp
+++ b/be/src/util/telemetry/telemetry.cpp
@@ -26,6 +26,8 @@
#include "opentelemetry/exporters/otlp/otlp_http_exporter.h"
#include "opentelemetry/exporters/zipkin/zipkin_exporter.h"
#include "opentelemetry/nostd/shared_ptr.h"
+#include "opentelemetry/sdk/common/attribute_utils.h"
+#include "opentelemetry/sdk/common/global_log_handler.h"
#include "opentelemetry/sdk/trace/batch_span_processor.h"
#include "opentelemetry/sdk/trace/tracer_provider.h"
#include "opentelemetry/trace/propagation/http_trace_context.h"
@@ -38,6 +40,18 @@ namespace zipkin = opentelemetry::exporter::zipkin;
namespace resource = opentelemetry::sdk::resource;
namespace propagation = opentelemetry::context::propagation;
namespace otlp = opentelemetry::exporter::otlp;
+namespace internal_log = opentelemetry::sdk::common::internal_log;
+
+class OpenTelemetryLogHandler : public internal_log::LogHandler {
+public:
+ void Handle(internal_log::LogLevel level, const char* file, int line,
const char* msg,
+ const opentelemetry::sdk::common::AttributeMap& attributes)
noexcept override {
+ if ((level == internal_log::LogLevel::Error || level ==
internal_log::LogLevel::Warning) &&
+ file != nullptr && msg != nullptr) {
+ LOG(WARNING) << fmt::format("OpenTelemetry File: {}:{} {}", file,
line, msg);
+ }
+ }
+};
void doris::telemetry::init_tracer() {
if (!doris::config::enable_tracing) {
@@ -82,4 +96,8 @@ void doris::telemetry::init_tracer() {
propagation::GlobalTextMapPropagator::SetGlobalPropagator(
nostd::shared_ptr<propagation::TextMapPropagator>(
new
opentelemetry::trace::propagation::HttpTraceContext()));
+
+ // Output OpenTelemetry logs by glog
+ internal_log::GlobalLogHandler::SetLogHandler(
+ nostd::shared_ptr<internal_log::LogHandler>(new
OpenTelemetryLogHandler()));
}
diff --git a/thirdparty/patches/opentelemetry-cpp-1.4.0.patch
b/thirdparty/patches/opentelemetry-cpp-1.4.0.patch
index 6317c60bf3..47b16b6928 100644
--- a/thirdparty/patches/opentelemetry-cpp-1.4.0.patch
+++ b/thirdparty/patches/opentelemetry-cpp-1.4.0.patch
@@ -301,14 +301,15 @@ index ecd6dab..1aaa220 100644
} // namespace sdk
diff --git a/sdk/src/common/threadlocal.cc b/sdk/src/common/threadlocal.cc
new file mode 100644
-index 0000000..1f8b6b1
+index 0000000..ec2038b
--- /dev/null
+++ b/sdk/src/common/threadlocal.cc
-@@ -0,0 +1,82 @@
+@@ -0,0 +1,83 @@
+// Copyright The OpenTelemetry Authors
+// SPDX-License-Identifier: Apache-2.0
+
+#include <opentelemetry/common/threadlocal.h>
++#include "opentelemetry/sdk/common/global_log_handler.h"
+
+#include <pthread.h>
+#include <memory>
@@ -360,7 +361,7 @@ index 0000000..1f8b6b1
+ std::stringstream ss;
+ ss << "[thread local] pthread_key_create() failed, cannot add destructor
to thread: "
+ << "error " << ret;
-+ fprintf(stderr, "%s\n", ss.str().c_str());
++ OTEL_INTERNAL_LOG_ERROR(ss.str());
+ }
+}
+
@@ -382,7 +383,7 @@ index 0000000..1f8b6b1
+ std::stringstream ss;
+ ss << "[thread local] pthread_setspecific() failed, cannot update
destructor list: "
+ << "error " << ret;
-+ fprintf(stderr, "%s\n", ss.str().c_str());
++ OTEL_INTERNAL_LOG_ERROR(ss.str());
+ }
+}
+} // namespace internal_threadlocal
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]