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 <37725793+luozeng...@users.noreply.github.com>
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: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to