From 245f516f1d0fec7d2747f2cd4821fc3e4173542a Mon Sep 17 00:00:00 2001 From: esigo Date: Thu, 23 Dec 2021 17:35:35 +0100 Subject: [PATCH 1/5] Synchronized calls to Exporter::Export & Shutdown --- .../exporters/elasticsearch/es_log_exporter.h | 3 +++ exporters/elasticsearch/src/es_log_exporter.cc | 10 +++++++++- .../exporters/jaeger/jaeger_exporter.h | 3 +++ exporters/jaeger/src/jaeger_exporter.cc | 10 +++++++++- .../exporters/memory/in_memory_span_exporter.h | 10 +++++++++- .../opentelemetry/exporters/ostream/log_exporter.h | 3 +++ .../exporters/ostream/span_exporter.h | 5 ++++- exporters/ostream/src/log_exporter.cc | 10 +++++++++- exporters/ostream/src/span_exporter.cc | 12 +++++++++--- .../exporters/otlp/otlp_grpc_exporter.h | 3 +++ .../exporters/otlp/otlp_grpc_log_exporter.h | 3 +++ .../exporters/otlp/otlp_http_client.h | 3 +++ exporters/otlp/src/otlp_grpc_exporter.cc | 10 +++++++++- exporters/otlp/src/otlp_grpc_log_exporter.cc | 9 ++++++++- exporters/otlp/src/otlp_http_client.cc | 14 ++++++++++++-- .../exporters/zipkin/zipkin_exporter.h | 5 ++++- exporters/zipkin/src/zipkin_exporter.cc | 12 ++++++++++-- 17 files changed, 110 insertions(+), 15 deletions(-) diff --git a/exporters/elasticsearch/include/opentelemetry/exporters/elasticsearch/es_log_exporter.h b/exporters/elasticsearch/include/opentelemetry/exporters/elasticsearch/es_log_exporter.h index a14409af1d..f3902fbc07 100644 --- a/exporters/elasticsearch/include/opentelemetry/exporters/elasticsearch/es_log_exporter.h +++ b/exporters/elasticsearch/include/opentelemetry/exporters/elasticsearch/es_log_exporter.h @@ -5,6 +5,7 @@ #ifdef ENABLE_LOGS_PREVIEW # include "nlohmann/json.hpp" +# include "opentelemetry/common/spin_lock_mutex.h" # include "opentelemetry/ext/http/client/curl/http_client_curl.h" # include "opentelemetry/nostd/type_traits.h" # include "opentelemetry/sdk/logs/exporter.h" @@ -104,6 +105,8 @@ class ElasticsearchLogExporter final : public opentelemetry::sdk::logs::LogExpor // Object that stores the HTTP sessions that have been created std::unique_ptr http_client_; + mutable opentelemetry::common::SpinLockMutex lock_; + const bool isShutdown() const noexcept; }; } // namespace logs } // namespace exporter diff --git a/exporters/elasticsearch/src/es_log_exporter.cc b/exporters/elasticsearch/src/es_log_exporter.cc index 1fbbcce807..ddd185e7c8 100644 --- a/exporters/elasticsearch/src/es_log_exporter.cc +++ b/exporters/elasticsearch/src/es_log_exporter.cc @@ -5,6 +5,7 @@ # include // std::stringstream +# include # include "opentelemetry/exporters/elasticsearch/es_log_exporter.h" # include "opentelemetry/exporters/elasticsearch/es_log_recordable.h" # include "opentelemetry/sdk_config.h" @@ -127,7 +128,7 @@ sdk::common::ExportResult ElasticsearchLogExporter::Export( const nostd::span> &records) noexcept { // Return failure if this exporter has been shutdown - if (is_shutdown_) + if (isShutdown()) { OTEL_INTERNAL_LOG_ERROR("[ES Trace Exporter] Export failed, exporter is shutdown"); @@ -199,6 +200,7 @@ sdk::common::ExportResult ElasticsearchLogExporter::Export( bool ElasticsearchLogExporter::Shutdown(std::chrono::microseconds timeout) noexcept { + const std::lock_guard locked(lock_); is_shutdown_ = true; // Shutdown the session manager @@ -207,6 +209,12 @@ bool ElasticsearchLogExporter::Shutdown(std::chrono::microseconds timeout) noexc return true; } + +const bool ElasticsearchLogExporter::isShutdown() const noexcept +{ + const std::lock_guard locked(lock_); + return is_shutdown_; +} } // namespace logs } // namespace exporter OPENTELEMETRY_END_NAMESPACE diff --git a/exporters/jaeger/include/opentelemetry/exporters/jaeger/jaeger_exporter.h b/exporters/jaeger/include/opentelemetry/exporters/jaeger/jaeger_exporter.h index e58b2230ef..30c5349e28 100644 --- a/exporters/jaeger/include/opentelemetry/exporters/jaeger/jaeger_exporter.h +++ b/exporters/jaeger/include/opentelemetry/exporters/jaeger/jaeger_exporter.h @@ -5,6 +5,7 @@ #include #include +#include "opentelemetry/common/spin_lock_mutex.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace exporter @@ -75,6 +76,8 @@ class JaegerExporter final : public opentelemetry::sdk::trace::SpanExporter bool is_shutdown_ = false; JaegerExporterOptions options_; std::unique_ptr sender_; + mutable opentelemetry::common::SpinLockMutex lock_; + const bool isShutdown() const noexcept; // For testing friend class JaegerExporterTestPeer; /** diff --git a/exporters/jaeger/src/jaeger_exporter.cc b/exporters/jaeger/src/jaeger_exporter.cc index e194def470..db36fe0add 100644 --- a/exporters/jaeger/src/jaeger_exporter.cc +++ b/exporters/jaeger/src/jaeger_exporter.cc @@ -9,6 +9,7 @@ #include "thrift_sender.h" #include "udp_transport.h" +#include #include namespace sdk_common = opentelemetry::sdk::common; @@ -39,7 +40,7 @@ std::unique_ptr JaegerExporter::MakeRecordable() noexcept sdk_common::ExportResult JaegerExporter::Export( const nostd::span> &spans) noexcept { - if (is_shutdown_) + if (isShutdown()) { return sdk_common::ExportResult::kFailure; } @@ -91,10 +92,17 @@ void JaegerExporter::InitializeEndpoint() bool JaegerExporter::Shutdown(std::chrono::microseconds timeout) noexcept { + const std::lock_guard locked(lock_); is_shutdown_ = true; return true; } +const bool JaegerExporter::isShutdown() const noexcept +{ + const std::lock_guard locked(lock_); + return is_shutdown_; +} + } // namespace jaeger } // namespace exporter OPENTELEMETRY_END_NAMESPACE diff --git a/exporters/memory/include/opentelemetry/exporters/memory/in_memory_span_exporter.h b/exporters/memory/include/opentelemetry/exporters/memory/in_memory_span_exporter.h index 0c2c537838..9d05f45fb4 100644 --- a/exporters/memory/include/opentelemetry/exporters/memory/in_memory_span_exporter.h +++ b/exporters/memory/include/opentelemetry/exporters/memory/in_memory_span_exporter.h @@ -2,6 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 #pragma once +#include +#include "opentelemetry/common/spin_lock_mutex.h" #include "opentelemetry/exporters/memory/in_memory_span_data.h" #include "opentelemetry/sdk/trace/exporter.h" @@ -42,7 +44,7 @@ class InMemorySpanExporter final : public opentelemetry::sdk::trace::SpanExporte sdk::common::ExportResult Export( const nostd::span> &recordables) noexcept override { - if (is_shutdown_) + if (isShutdown()) { return sdk::common::ExportResult::kFailure; } @@ -82,6 +84,12 @@ class InMemorySpanExporter final : public opentelemetry::sdk::trace::SpanExporte private: std::shared_ptr data_; bool is_shutdown_ = false; + mutable opentelemetry::common::SpinLockMutex lock_; + const bool isShutdown() const noexcept + { + const std::lock_guard locked(lock_); + return is_shutdown_; + } }; } // namespace memory } // namespace exporter diff --git a/exporters/ostream/include/opentelemetry/exporters/ostream/log_exporter.h b/exporters/ostream/include/opentelemetry/exporters/ostream/log_exporter.h index f4ab0be58a..7ad886e424 100644 --- a/exporters/ostream/include/opentelemetry/exporters/ostream/log_exporter.h +++ b/exporters/ostream/include/opentelemetry/exporters/ostream/log_exporter.h @@ -4,6 +4,7 @@ #pragma once #ifdef ENABLE_LOGS_PREVIEW +# include "opentelemetry/common/spin_lock_mutex.h" # include "opentelemetry/nostd/type_traits.h" # include "opentelemetry/sdk/logs/exporter.h" # include "opentelemetry/sdk/logs/log_record.h" @@ -49,6 +50,8 @@ class OStreamLogExporter final : public opentelemetry::sdk::logs::LogExporter std::ostream &sout_; // Whether this exporter has been shut down bool is_shutdown_ = false; + mutable opentelemetry::common::SpinLockMutex lock_; + const bool isShutdown() const noexcept; }; } // namespace logs } // namespace exporter diff --git a/exporters/ostream/include/opentelemetry/exporters/ostream/span_exporter.h b/exporters/ostream/include/opentelemetry/exporters/ostream/span_exporter.h index 58c52989a2..87d34a4ef9 100644 --- a/exporters/ostream/include/opentelemetry/exporters/ostream/span_exporter.h +++ b/exporters/ostream/include/opentelemetry/exporters/ostream/span_exporter.h @@ -3,6 +3,7 @@ #pragma once +#include "opentelemetry/common/spin_lock_mutex.h" #include "opentelemetry/nostd/type_traits.h" #include "opentelemetry/sdk/trace/exporter.h" #include "opentelemetry/sdk/trace/span_data.h" @@ -42,7 +43,9 @@ class OStreamSpanExporter final : public opentelemetry::sdk::trace::SpanExporter private: std::ostream &sout_; - bool isShutdown_ = false; + bool is_shutdown_ = false; + mutable opentelemetry::common::SpinLockMutex lock_; + const bool isShutdown() const noexcept; // Mapping status number to the string from api/include/opentelemetry/trace/canonical_code.h std::map statusMap{{0, "Unset"}, {1, "Ok"}, {2, "Error"}}; diff --git a/exporters/ostream/src/log_exporter.cc b/exporters/ostream/src/log_exporter.cc index 1def9ed1e6..75d3d8c8ea 100644 --- a/exporters/ostream/src/log_exporter.cc +++ b/exporters/ostream/src/log_exporter.cc @@ -3,6 +3,7 @@ #ifdef ENABLE_LOGS_PREVIEW # include "opentelemetry/exporters/ostream/log_exporter.h" +# include # include @@ -107,7 +108,7 @@ std::unique_ptr OStreamLogExporter::MakeRecordable() noexce sdk::common::ExportResult OStreamLogExporter::Export( const nostd::span> &records) noexcept { - if (is_shutdown_) + if (isShutdown()) { return sdk::common::ExportResult::kFailure; } @@ -168,10 +169,17 @@ sdk::common::ExportResult OStreamLogExporter::Export( bool OStreamLogExporter::Shutdown(std::chrono::microseconds timeout) noexcept { + const std::lock_guard locked(lock_); is_shutdown_ = true; return true; } +const bool OStreamLogExporter::isShutdown() const noexcept +{ + const std::lock_guard locked(lock_); + return is_shutdown_; +} + } // namespace logs } // namespace exporter OPENTELEMETRY_END_NAMESPACE diff --git a/exporters/ostream/src/span_exporter.cc b/exporters/ostream/src/span_exporter.cc index 48d81f0d69..b632f2d5f1 100644 --- a/exporters/ostream/src/span_exporter.cc +++ b/exporters/ostream/src/span_exporter.cc @@ -2,8 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 #include "opentelemetry/exporters/ostream/span_exporter.h" - #include +#include namespace nostd = opentelemetry::nostd; namespace trace_sdk = opentelemetry::sdk::trace; @@ -44,7 +44,7 @@ std::unique_ptr OStreamSpanExporter::MakeRecordable() noe sdk::common::ExportResult OStreamSpanExporter::Export( const nostd::span> &spans) noexcept { - if (isShutdown_) + if (isShutdown()) { return sdk::common::ExportResult::kFailure; } @@ -95,10 +95,16 @@ sdk::common::ExportResult OStreamSpanExporter::Export( bool OStreamSpanExporter::Shutdown(std::chrono::microseconds timeout) noexcept { - isShutdown_ = true; + const std::lock_guard locked(lock_); + is_shutdown_ = true; return true; } +const bool OStreamSpanExporter::isShutdown() const noexcept +{ + const std::lock_guard locked(lock_); + return is_shutdown_; +} void OStreamSpanExporter::printAttributes( const std::unordered_map &map, const std::string prefix) diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter.h index 52b63b61f3..91d1848077 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter.h @@ -7,6 +7,7 @@ #include "opentelemetry/exporters/otlp/protobuf_include_prefix.h" +#include "opentelemetry/common/spin_lock_mutex.h" #include "opentelemetry/proto/collector/trace/v1/trace_service.grpc.pb.h" #include "opentelemetry/exporters/otlp/protobuf_include_suffix.h" @@ -77,6 +78,8 @@ class OtlpGrpcExporter final : public opentelemetry::sdk::trace::SpanExporter */ OtlpGrpcExporter(std::unique_ptr stub); bool is_shutdown_ = false; + mutable opentelemetry::common::SpinLockMutex lock_; + const bool isShutdown() const noexcept; }; } // namespace otlp } // namespace exporter diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_exporter.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_exporter.h index 929dd745ee..a43e9eba2e 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_exporter.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_exporter.h @@ -8,6 +8,7 @@ # include "opentelemetry/exporters/otlp/protobuf_include_prefix.h" # include "opentelemetry/proto/collector/logs/v1/logs_service.grpc.pb.h" +#include "opentelemetry/common/spin_lock_mutex.h" # include "opentelemetry/exporters/otlp/protobuf_include_suffix.h" // clang-format on @@ -78,6 +79,8 @@ class OtlpGrpcLogExporter : public opentelemetry::sdk::logs::LogExporter */ OtlpGrpcLogExporter(std::unique_ptr stub); bool is_shutdown_ = false; + mutable opentelemetry::common::SpinLockMutex lock_; + const bool isShutdown() const noexcept; }; } // namespace otlp diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_client.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_client.h index ff2a943554..0b5e6739fb 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_client.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_client.h @@ -9,6 +9,7 @@ #include "opentelemetry/exporters/otlp/protobuf_include_suffix.h" +#include "opentelemetry/common/spin_lock_mutex.h" #include "opentelemetry/ext/http/client/http_client.h" #include "opentelemetry/sdk/common/exporter_utils.h" @@ -124,6 +125,8 @@ class OtlpHttpClient std::shared_ptr http_client_; // Cached parsed URI std::string http_uri_; + mutable opentelemetry::common::SpinLockMutex lock_; + const bool isShutdown() const noexcept; }; } // namespace otlp } // namespace exporter diff --git a/exporters/otlp/src/otlp_grpc_exporter.cc b/exporters/otlp/src/otlp_grpc_exporter.cc index d75174e4bb..42c3b6f831 100644 --- a/exporters/otlp/src/otlp_grpc_exporter.cc +++ b/exporters/otlp/src/otlp_grpc_exporter.cc @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 #include "opentelemetry/exporters/otlp/otlp_grpc_exporter.h" +#include #include "opentelemetry/exporters/otlp/otlp_recordable.h" #include "opentelemetry/exporters/otlp/otlp_recordable_utils.h" #include "opentelemetry/ext/http/common/url_parser.h" @@ -103,7 +104,7 @@ std::unique_ptr OtlpGrpcExporter::MakeRecordable() noexc sdk::common::ExportResult OtlpGrpcExporter::Export( const nostd::span> &spans) noexcept { - if (is_shutdown_) + if (isShutdown()) { OTEL_INTERNAL_LOG_ERROR("[OTLP gRPC] Export failed, exporter is shutdown"); return sdk::common::ExportResult::kFailure; @@ -138,10 +139,17 @@ sdk::common::ExportResult OtlpGrpcExporter::Export( bool OtlpGrpcExporter::Shutdown(std::chrono::microseconds timeout) noexcept { + const std::lock_guard locked(lock_); is_shutdown_ = true; return true; } +const bool OtlpGrpcExporter::isShutdown() const noexcept +{ + const std::lock_guard locked(lock_); + return is_shutdown_; +} + } // namespace otlp } // namespace exporter OPENTELEMETRY_END_NAMESPACE diff --git a/exporters/otlp/src/otlp_grpc_log_exporter.cc b/exporters/otlp/src/otlp_grpc_log_exporter.cc index e656e595db..c897de5853 100644 --- a/exporters/otlp/src/otlp_grpc_log_exporter.cc +++ b/exporters/otlp/src/otlp_grpc_log_exporter.cc @@ -125,7 +125,7 @@ std::unique_ptr OtlpGrpcLogExporter::MakeR opentelemetry::sdk::common::ExportResult OtlpGrpcLogExporter::Export( const nostd::span> &logs) noexcept { - if (is_shutdown_) + if (isShutdown()) { OTEL_INTERNAL_LOG_ERROR("[OTLP gRPC log] Export failed, exporter is shutdown"); return sdk::common::ExportResult::kFailure; @@ -157,10 +157,17 @@ opentelemetry::sdk::common::ExportResult OtlpGrpcLogExporter::Export( bool OtlpGrpcLogExporter::Shutdown(std::chrono::microseconds timeout) noexcept { + const std::lock_guard locked(lock_); is_shutdown_ = true; return true; } +const bool OtlpGrpcLogExporter::isShutdown() const noexcept +{ + const std::lock_guard locked(lock_); + return is_shutdown_; +} + } // namespace otlp } // namespace exporter OPENTELEMETRY_END_NAMESPACE diff --git a/exporters/otlp/src/otlp_http_client.cc b/exporters/otlp/src/otlp_http_client.cc index 2864af46a0..b166a679ff 100644 --- a/exporters/otlp/src/otlp_http_client.cc +++ b/exporters/otlp/src/otlp_http_client.cc @@ -16,6 +16,7 @@ #include "opentelemetry/exporters/otlp/protobuf_include_prefix.h" +#include #include "google/protobuf/message.h" #include "google/protobuf/reflection.h" #include "google/protobuf/stubs/common.h" @@ -535,7 +536,7 @@ opentelemetry::sdk::common::ExportResult OtlpHttpClient::Export( const google::protobuf::Message &message) noexcept { // Return failure if this exporter has been shutdown - if (is_shutdown_) + if (isShutdown()) { const char *error_message = "[OTLP HTTP Client] Export failed, exporter is shutdown"; if (options_.console_debug) @@ -659,7 +660,10 @@ opentelemetry::sdk::common::ExportResult OtlpHttpClient::Export( bool OtlpHttpClient::Shutdown(std::chrono::microseconds) noexcept { - is_shutdown_ = true; + { + const std::lock_guard locked(lock_); + is_shutdown_ = true; + } // Shutdown the session manager http_client_->CancelAllSessions(); @@ -668,6 +672,12 @@ bool OtlpHttpClient::Shutdown(std::chrono::microseconds) noexcept return true; } +const bool OtlpHttpClient::isShutdown() const noexcept +{ + const std::lock_guard locked(lock_); + return is_shutdown_; +} + } // namespace otlp } // namespace exporter OPENTELEMETRY_END_NAMESPACE diff --git a/exporters/zipkin/include/opentelemetry/exporters/zipkin/zipkin_exporter.h b/exporters/zipkin/include/opentelemetry/exporters/zipkin/zipkin_exporter.h index aba926165f..886b119fb1 100644 --- a/exporters/zipkin/include/opentelemetry/exporters/zipkin/zipkin_exporter.h +++ b/exporters/zipkin/include/opentelemetry/exporters/zipkin/zipkin_exporter.h @@ -3,6 +3,7 @@ #pragma once +#include "opentelemetry/common/spin_lock_mutex.h" #include "opentelemetry/ext/http/client/http_client_factory.h" #include "opentelemetry/ext/http/common/url_parser.h" #include "opentelemetry/sdk/common/env_variables.h" @@ -89,11 +90,13 @@ class ZipkinExporter final : public opentelemetry::sdk::trace::SpanExporter private: // The configuration options associated with this exporter. - bool isShutdown_ = false; + bool is_shutdown_ = false; ZipkinExporterOptions options_; std::shared_ptr http_client_; opentelemetry::ext::http::common::UrlParser url_parser_; nlohmann::json local_end_point_; + mutable opentelemetry::common::SpinLockMutex lock_; + const bool isShutdown() const noexcept; }; } // namespace zipkin } // namespace exporter diff --git a/exporters/zipkin/src/zipkin_exporter.cc b/exporters/zipkin/src/zipkin_exporter.cc index cbd49a344b..ecdff8258b 100644 --- a/exporters/zipkin/src/zipkin_exporter.cc +++ b/exporters/zipkin/src/zipkin_exporter.cc @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 #include "opentelemetry/exporters/zipkin/zipkin_exporter.h" +#include #include "opentelemetry/exporters/zipkin/recordable.h" #include "opentelemetry/ext/http/client/http_client_factory.h" #include "opentelemetry/ext/http/common/url_parser.h" @@ -40,7 +41,7 @@ std::unique_ptr ZipkinExporter::MakeRecordable() noexcep sdk::common::ExportResult ZipkinExporter::Export( const nostd::span> &spans) noexcept { - if (isShutdown_) + if (isShutdown()) { return sdk::common::ExportResult::kFailure; } @@ -100,10 +101,17 @@ void ZipkinExporter::InitializeLocalEndpoint() bool ZipkinExporter::Shutdown(std::chrono::microseconds timeout) noexcept { - isShutdown_ = true; + const std::lock_guard locked(lock_); + is_shutdown_ = true; return true; } +const bool ZipkinExporter::isShutdown() const noexcept +{ + const std::lock_guard locked(lock_); + return is_shutdown_; +} + } // namespace zipkin } // namespace exporter OPENTELEMETRY_END_NAMESPACE From e26367402737eb9cee5c0f3e3c4cd5dc389a1276 Mon Sep 17 00:00:00 2001 From: Oblivion Date: Thu, 23 Dec 2021 20:06:01 +0000 Subject: [PATCH 2/5] in_memory_span_exporter shutdown --- .../opentelemetry/exporters/memory/in_memory_span_exporter.h | 1 + .../opentelemetry/exporters/otlp/otlp_grpc_log_exporter.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/exporters/memory/include/opentelemetry/exporters/memory/in_memory_span_exporter.h b/exporters/memory/include/opentelemetry/exporters/memory/in_memory_span_exporter.h index 9d05f45fb4..1c468c2f2c 100644 --- a/exporters/memory/include/opentelemetry/exporters/memory/in_memory_span_exporter.h +++ b/exporters/memory/include/opentelemetry/exporters/memory/in_memory_span_exporter.h @@ -69,6 +69,7 @@ class InMemorySpanExporter final : public opentelemetry::sdk::trace::SpanExporte bool Shutdown( std::chrono::microseconds timeout = std::chrono::microseconds::max()) noexcept override { + const std::lock_guard locked(lock_); is_shutdown_ = true; return true; }; diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_exporter.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_exporter.h index a43e9eba2e..fa5c22e844 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_exporter.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_exporter.h @@ -8,7 +8,7 @@ # include "opentelemetry/exporters/otlp/protobuf_include_prefix.h" # include "opentelemetry/proto/collector/logs/v1/logs_service.grpc.pb.h" -#include "opentelemetry/common/spin_lock_mutex.h" +# include "opentelemetry/common/spin_lock_mutex.h" # include "opentelemetry/exporters/otlp/protobuf_include_suffix.h" // clang-format on From 8cf00e9f728a559ebfe98d288a6cb67a7f0f2752 Mon Sep 17 00:00:00 2001 From: Oblivion Date: Sat, 1 Jan 2022 14:32:31 +0000 Subject: [PATCH 3/5] CI Windows --- exporters/zipkin/src/zipkin_exporter.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/exporters/zipkin/src/zipkin_exporter.cc b/exporters/zipkin/src/zipkin_exporter.cc index ecdff8258b..3dd69a7dc8 100644 --- a/exporters/zipkin/src/zipkin_exporter.cc +++ b/exporters/zipkin/src/zipkin_exporter.cc @@ -1,6 +1,7 @@ // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 +#define _WINSOCKAPI_ // stops including winsock.h #include "opentelemetry/exporters/zipkin/zipkin_exporter.h" #include #include "opentelemetry/exporters/zipkin/recordable.h" From 21e52656f30afcb2a257e5a9a50f7112801fa5c8 Mon Sep 17 00:00:00 2001 From: Oblivion Date: Mon, 3 Jan 2022 18:56:46 +0000 Subject: [PATCH 4/5] log error --- exporters/elasticsearch/src/es_log_exporter.cc | 3 +-- exporters/jaeger/src/jaeger_exporter.cc | 2 ++ .../exporters/memory/in_memory_span_exporter.h | 2 ++ exporters/ostream/src/log_exporter.cc | 1 + exporters/ostream/src/span_exporter.cc | 2 ++ exporters/ostream/test/ostream_span_test.cc | 6 +++--- exporters/zipkin/src/zipkin_exporter.cc | 1 + 7 files changed, 12 insertions(+), 5 deletions(-) diff --git a/exporters/elasticsearch/src/es_log_exporter.cc b/exporters/elasticsearch/src/es_log_exporter.cc index ddd185e7c8..1889d8920a 100644 --- a/exporters/elasticsearch/src/es_log_exporter.cc +++ b/exporters/elasticsearch/src/es_log_exporter.cc @@ -130,8 +130,7 @@ sdk::common::ExportResult ElasticsearchLogExporter::Export( // Return failure if this exporter has been shutdown if (isShutdown()) { - - OTEL_INTERNAL_LOG_ERROR("[ES Trace Exporter] Export failed, exporter is shutdown"); + OTEL_INTERNAL_LOG_ERROR("[ES Log Exporter] Export failed, exporter is shutdown"); return sdk::common::ExportResult::kFailure; } diff --git a/exporters/jaeger/src/jaeger_exporter.cc b/exporters/jaeger/src/jaeger_exporter.cc index db36fe0add..c3d2c15db8 100644 --- a/exporters/jaeger/src/jaeger_exporter.cc +++ b/exporters/jaeger/src/jaeger_exporter.cc @@ -4,6 +4,7 @@ #include #include #include +#include "opentelemetry/sdk_config.h" #include "http_transport.h" #include "thrift_sender.h" @@ -42,6 +43,7 @@ sdk_common::ExportResult JaegerExporter::Export( { if (isShutdown()) { + OTEL_INTERNAL_LOG_ERROR("[Jaeger Trace Exporter] Export failed, exporter is shutdown"); return sdk_common::ExportResult::kFailure; } diff --git a/exporters/memory/include/opentelemetry/exporters/memory/in_memory_span_exporter.h b/exporters/memory/include/opentelemetry/exporters/memory/in_memory_span_exporter.h index 1c468c2f2c..aacb9b0f86 100644 --- a/exporters/memory/include/opentelemetry/exporters/memory/in_memory_span_exporter.h +++ b/exporters/memory/include/opentelemetry/exporters/memory/in_memory_span_exporter.h @@ -6,6 +6,7 @@ #include "opentelemetry/common/spin_lock_mutex.h" #include "opentelemetry/exporters/memory/in_memory_span_data.h" #include "opentelemetry/sdk/trace/exporter.h" +#include "opentelemetry/sdk_config.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace exporter @@ -46,6 +47,7 @@ class InMemorySpanExporter final : public opentelemetry::sdk::trace::SpanExporte { if (isShutdown()) { + OTEL_INTERNAL_LOG_ERROR("[In Memory Span Exporter] Export failed, exporter is shutdown"); return sdk::common::ExportResult::kFailure; } for (auto &recordable : recordables) diff --git a/exporters/ostream/src/log_exporter.cc b/exporters/ostream/src/log_exporter.cc index 75d3d8c8ea..cac3b7e471 100644 --- a/exporters/ostream/src/log_exporter.cc +++ b/exporters/ostream/src/log_exporter.cc @@ -110,6 +110,7 @@ sdk::common::ExportResult OStreamLogExporter::Export( { if (isShutdown()) { + OTEL_INTERNAL_LOG_ERROR("[Ostream Log Exporter] Export failed, exporter is shutdown"); return sdk::common::ExportResult::kFailure; } diff --git a/exporters/ostream/src/span_exporter.cc b/exporters/ostream/src/span_exporter.cc index b632f2d5f1..31cade8388 100644 --- a/exporters/ostream/src/span_exporter.cc +++ b/exporters/ostream/src/span_exporter.cc @@ -4,6 +4,7 @@ #include "opentelemetry/exporters/ostream/span_exporter.h" #include #include +#include "opentelemetry/sdk_config.h" namespace nostd = opentelemetry::nostd; namespace trace_sdk = opentelemetry::sdk::trace; @@ -46,6 +47,7 @@ sdk::common::ExportResult OStreamSpanExporter::Export( { if (isShutdown()) { + OTEL_INTERNAL_LOG_ERROR("[Ostream Trace Exporter] Export failed, exporter is shutdown"); return sdk::common::ExportResult::kFailure; } diff --git a/exporters/ostream/test/ostream_span_test.cc b/exporters/ostream/test/ostream_span_test.cc index 4d0ca8728e..7a6cb6ffa1 100644 --- a/exporters/ostream/test/ostream_span_test.cc +++ b/exporters/ostream/test/ostream_span_test.cc @@ -47,12 +47,12 @@ TEST(OStreamSpanExporter, Shutdown) recordable->SetName("Test Span"); // Capture the output of cout - const auto captured = WithOStreamCapture(std::cout, [&]() { + const auto captured = WithOStreamCapture(std::cout, [&]() { EXPECT_TRUE(processor->Shutdown()); processor->OnEnd(std::move(recordable)); }); - - EXPECT_EQ(captured, ""); + std::string err_message = "[Ostream Trace Exporter] Export failed, exporter is shutdown"; + EXPECT_TRUE(captured.find(err_message) != std::string::npos); } constexpr const char *kDefaultSpanPrinted = diff --git a/exporters/zipkin/src/zipkin_exporter.cc b/exporters/zipkin/src/zipkin_exporter.cc index 3dd69a7dc8..9cb714c186 100644 --- a/exporters/zipkin/src/zipkin_exporter.cc +++ b/exporters/zipkin/src/zipkin_exporter.cc @@ -44,6 +44,7 @@ sdk::common::ExportResult ZipkinExporter::Export( { if (isShutdown()) { + OTEL_INTERNAL_LOG_ERROR("[Zipkin Trace Exporter] Export failed, exporter is shutdown"); return sdk::common::ExportResult::kFailure; } exporter::zipkin::ZipkinSpan json_spans = {}; From cbc1eff724cf464382194594b13f4e7f04b7fd9f Mon Sep 17 00:00:00 2001 From: Oblivion Date: Mon, 3 Jan 2022 19:39:22 +0000 Subject: [PATCH 5/5] comments --- .../opentelemetry/exporters/elasticsearch/es_log_exporter.h | 2 +- exporters/elasticsearch/src/es_log_exporter.cc | 5 +++-- .../opentelemetry/exporters/jaeger/jaeger_exporter.h | 4 ++-- exporters/jaeger/src/jaeger_exporter.cc | 5 +++-- .../exporters/memory/in_memory_span_exporter.h | 3 ++- .../include/opentelemetry/exporters/ostream/log_exporter.h | 2 +- .../include/opentelemetry/exporters/ostream/span_exporter.h | 2 +- exporters/ostream/src/log_exporter.cc | 6 ++++-- exporters/ostream/src/span_exporter.cc | 5 +++-- exporters/ostream/test/ostream_log_test.cc | 5 +++-- exporters/ostream/test/ostream_span_test.cc | 5 +++-- .../opentelemetry/exporters/otlp/otlp_grpc_exporter.h | 2 +- .../opentelemetry/exporters/otlp/otlp_grpc_log_exporter.h | 2 +- .../include/opentelemetry/exporters/otlp/otlp_http_client.h | 2 +- exporters/otlp/src/otlp_grpc_exporter.cc | 5 +++-- exporters/otlp/src/otlp_grpc_log_exporter.cc | 5 +++-- exporters/otlp/src/otlp_http_client.cc | 2 +- .../opentelemetry/exporters/zipkin/zipkin_exporter.h | 2 +- exporters/zipkin/src/zipkin_exporter.cc | 5 +++-- 19 files changed, 40 insertions(+), 29 deletions(-) diff --git a/exporters/elasticsearch/include/opentelemetry/exporters/elasticsearch/es_log_exporter.h b/exporters/elasticsearch/include/opentelemetry/exporters/elasticsearch/es_log_exporter.h index f3902fbc07..ea58807e96 100644 --- a/exporters/elasticsearch/include/opentelemetry/exporters/elasticsearch/es_log_exporter.h +++ b/exporters/elasticsearch/include/opentelemetry/exporters/elasticsearch/es_log_exporter.h @@ -106,7 +106,7 @@ class ElasticsearchLogExporter final : public opentelemetry::sdk::logs::LogExpor // Object that stores the HTTP sessions that have been created std::unique_ptr http_client_; mutable opentelemetry::common::SpinLockMutex lock_; - const bool isShutdown() const noexcept; + bool isShutdown() const noexcept; }; } // namespace logs } // namespace exporter diff --git a/exporters/elasticsearch/src/es_log_exporter.cc b/exporters/elasticsearch/src/es_log_exporter.cc index 1889d8920a..a5a66ebe01 100644 --- a/exporters/elasticsearch/src/es_log_exporter.cc +++ b/exporters/elasticsearch/src/es_log_exporter.cc @@ -130,7 +130,8 @@ sdk::common::ExportResult ElasticsearchLogExporter::Export( // Return failure if this exporter has been shutdown if (isShutdown()) { - OTEL_INTERNAL_LOG_ERROR("[ES Log Exporter] Export failed, exporter is shutdown"); + OTEL_INTERNAL_LOG_ERROR("[ES Log Exporter] Exporting " + << records.size() << " log(s) failed, exporter is shutdown"); return sdk::common::ExportResult::kFailure; } @@ -209,7 +210,7 @@ bool ElasticsearchLogExporter::Shutdown(std::chrono::microseconds timeout) noexc return true; } -const bool ElasticsearchLogExporter::isShutdown() const noexcept +bool ElasticsearchLogExporter::isShutdown() const noexcept { const std::lock_guard locked(lock_); return is_shutdown_; diff --git a/exporters/jaeger/include/opentelemetry/exporters/jaeger/jaeger_exporter.h b/exporters/jaeger/include/opentelemetry/exporters/jaeger/jaeger_exporter.h index 30c5349e28..284bab2cab 100644 --- a/exporters/jaeger/include/opentelemetry/exporters/jaeger/jaeger_exporter.h +++ b/exporters/jaeger/include/opentelemetry/exporters/jaeger/jaeger_exporter.h @@ -3,9 +3,9 @@ #pragma once +#include #include #include -#include "opentelemetry/common/spin_lock_mutex.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace exporter @@ -77,7 +77,7 @@ class JaegerExporter final : public opentelemetry::sdk::trace::SpanExporter JaegerExporterOptions options_; std::unique_ptr sender_; mutable opentelemetry::common::SpinLockMutex lock_; - const bool isShutdown() const noexcept; + bool isShutdown() const noexcept; // For testing friend class JaegerExporterTestPeer; /** diff --git a/exporters/jaeger/src/jaeger_exporter.cc b/exporters/jaeger/src/jaeger_exporter.cc index c3d2c15db8..c07f2f0100 100644 --- a/exporters/jaeger/src/jaeger_exporter.cc +++ b/exporters/jaeger/src/jaeger_exporter.cc @@ -43,7 +43,8 @@ sdk_common::ExportResult JaegerExporter::Export( { if (isShutdown()) { - OTEL_INTERNAL_LOG_ERROR("[Jaeger Trace Exporter] Export failed, exporter is shutdown"); + OTEL_INTERNAL_LOG_ERROR("[Jaeger Trace Exporter] Exporting " + << spans.size() << " span(s) failed, exporter is shutdown"); return sdk_common::ExportResult::kFailure; } @@ -99,7 +100,7 @@ bool JaegerExporter::Shutdown(std::chrono::microseconds timeout) noexcept return true; } -const bool JaegerExporter::isShutdown() const noexcept +bool JaegerExporter::isShutdown() const noexcept { const std::lock_guard locked(lock_); return is_shutdown_; diff --git a/exporters/memory/include/opentelemetry/exporters/memory/in_memory_span_exporter.h b/exporters/memory/include/opentelemetry/exporters/memory/in_memory_span_exporter.h index aacb9b0f86..3e47ccb177 100644 --- a/exporters/memory/include/opentelemetry/exporters/memory/in_memory_span_exporter.h +++ b/exporters/memory/include/opentelemetry/exporters/memory/in_memory_span_exporter.h @@ -47,7 +47,8 @@ class InMemorySpanExporter final : public opentelemetry::sdk::trace::SpanExporte { if (isShutdown()) { - OTEL_INTERNAL_LOG_ERROR("[In Memory Span Exporter] Export failed, exporter is shutdown"); + OTEL_INTERNAL_LOG_ERROR("[In Memory Span Exporter] Exporting " + << recordables.size() << " span(s) failed, exporter is shutdown"); return sdk::common::ExportResult::kFailure; } for (auto &recordable : recordables) diff --git a/exporters/ostream/include/opentelemetry/exporters/ostream/log_exporter.h b/exporters/ostream/include/opentelemetry/exporters/ostream/log_exporter.h index 7ad886e424..ad1d54a215 100644 --- a/exporters/ostream/include/opentelemetry/exporters/ostream/log_exporter.h +++ b/exporters/ostream/include/opentelemetry/exporters/ostream/log_exporter.h @@ -51,7 +51,7 @@ class OStreamLogExporter final : public opentelemetry::sdk::logs::LogExporter // Whether this exporter has been shut down bool is_shutdown_ = false; mutable opentelemetry::common::SpinLockMutex lock_; - const bool isShutdown() const noexcept; + bool isShutdown() const noexcept; }; } // namespace logs } // namespace exporter diff --git a/exporters/ostream/include/opentelemetry/exporters/ostream/span_exporter.h b/exporters/ostream/include/opentelemetry/exporters/ostream/span_exporter.h index 87d34a4ef9..8122b6777a 100644 --- a/exporters/ostream/include/opentelemetry/exporters/ostream/span_exporter.h +++ b/exporters/ostream/include/opentelemetry/exporters/ostream/span_exporter.h @@ -45,7 +45,7 @@ class OStreamSpanExporter final : public opentelemetry::sdk::trace::SpanExporter std::ostream &sout_; bool is_shutdown_ = false; mutable opentelemetry::common::SpinLockMutex lock_; - const bool isShutdown() const noexcept; + bool isShutdown() const noexcept; // Mapping status number to the string from api/include/opentelemetry/trace/canonical_code.h std::map statusMap{{0, "Unset"}, {1, "Ok"}, {2, "Error"}}; diff --git a/exporters/ostream/src/log_exporter.cc b/exporters/ostream/src/log_exporter.cc index cac3b7e471..3bfb40dd52 100644 --- a/exporters/ostream/src/log_exporter.cc +++ b/exporters/ostream/src/log_exporter.cc @@ -4,6 +4,7 @@ #ifdef ENABLE_LOGS_PREVIEW # include "opentelemetry/exporters/ostream/log_exporter.h" # include +# include "opentelemetry/sdk_config.h" # include @@ -110,7 +111,8 @@ sdk::common::ExportResult OStreamLogExporter::Export( { if (isShutdown()) { - OTEL_INTERNAL_LOG_ERROR("[Ostream Log Exporter] Export failed, exporter is shutdown"); + OTEL_INTERNAL_LOG_ERROR("[Ostream Log Exporter] Exporting " + << records.size() << " log(s) failed, exporter is shutdown"); return sdk::common::ExportResult::kFailure; } @@ -175,7 +177,7 @@ bool OStreamLogExporter::Shutdown(std::chrono::microseconds timeout) noexcept return true; } -const bool OStreamLogExporter::isShutdown() const noexcept +bool OStreamLogExporter::isShutdown() const noexcept { const std::lock_guard locked(lock_); return is_shutdown_; diff --git a/exporters/ostream/src/span_exporter.cc b/exporters/ostream/src/span_exporter.cc index 31cade8388..dea72f57f8 100644 --- a/exporters/ostream/src/span_exporter.cc +++ b/exporters/ostream/src/span_exporter.cc @@ -47,7 +47,8 @@ sdk::common::ExportResult OStreamSpanExporter::Export( { if (isShutdown()) { - OTEL_INTERNAL_LOG_ERROR("[Ostream Trace Exporter] Export failed, exporter is shutdown"); + OTEL_INTERNAL_LOG_ERROR("[Ostream Trace Exporter] Exporting " + << spans.size() << " span(s) failed, exporter is shutdown"); return sdk::common::ExportResult::kFailure; } @@ -102,7 +103,7 @@ bool OStreamSpanExporter::Shutdown(std::chrono::microseconds timeout) noexcept return true; } -const bool OStreamSpanExporter::isShutdown() const noexcept +bool OStreamSpanExporter::isShutdown() const noexcept { const std::lock_guard locked(lock_); return is_shutdown_; diff --git a/exporters/ostream/test/ostream_log_test.cc b/exporters/ostream/test/ostream_log_test.cc index a21be32f29..80abdadfcf 100644 --- a/exporters/ostream/test/ostream_log_test.cc +++ b/exporters/ostream/test/ostream_log_test.cc @@ -46,8 +46,9 @@ TEST(OStreamLogExporter, Shutdown) // Restore original stringstream buffer std::cout.rdbuf(original); - - ASSERT_EQ(output.str(), ""); + std::string err_message = + "[Ostream Log Exporter] Exporting 1 log(s) failed, exporter is shutdown"; + EXPECT_TRUE(output.str().find(err_message) != std::string::npos); } // ---------------------------------- Print to cout ------------------------- diff --git a/exporters/ostream/test/ostream_span_test.cc b/exporters/ostream/test/ostream_span_test.cc index 7a6cb6ffa1..edfd66505e 100644 --- a/exporters/ostream/test/ostream_span_test.cc +++ b/exporters/ostream/test/ostream_span_test.cc @@ -47,11 +47,12 @@ TEST(OStreamSpanExporter, Shutdown) recordable->SetName("Test Span"); // Capture the output of cout - const auto captured = WithOStreamCapture(std::cout, [&]() { + const auto captured = WithOStreamCapture(std::cout, [&]() { EXPECT_TRUE(processor->Shutdown()); processor->OnEnd(std::move(recordable)); }); - std::string err_message = "[Ostream Trace Exporter] Export failed, exporter is shutdown"; + std::string err_message = + "[Ostream Trace Exporter] Exporting 1 span(s) failed, exporter is shutdown"; EXPECT_TRUE(captured.find(err_message) != std::string::npos); } diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter.h index 91d1848077..a28e6fca85 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_exporter.h @@ -79,7 +79,7 @@ class OtlpGrpcExporter final : public opentelemetry::sdk::trace::SpanExporter OtlpGrpcExporter(std::unique_ptr stub); bool is_shutdown_ = false; mutable opentelemetry::common::SpinLockMutex lock_; - const bool isShutdown() const noexcept; + bool isShutdown() const noexcept; }; } // namespace otlp } // namespace exporter diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_exporter.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_exporter.h index fa5c22e844..a8aeda85b8 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_exporter.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_grpc_log_exporter.h @@ -80,7 +80,7 @@ class OtlpGrpcLogExporter : public opentelemetry::sdk::logs::LogExporter OtlpGrpcLogExporter(std::unique_ptr stub); bool is_shutdown_ = false; mutable opentelemetry::common::SpinLockMutex lock_; - const bool isShutdown() const noexcept; + bool isShutdown() const noexcept; }; } // namespace otlp diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_client.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_client.h index 0b5e6739fb..35939204b3 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_client.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http_client.h @@ -126,7 +126,7 @@ class OtlpHttpClient // Cached parsed URI std::string http_uri_; mutable opentelemetry::common::SpinLockMutex lock_; - const bool isShutdown() const noexcept; + bool isShutdown() const noexcept; }; } // namespace otlp } // namespace exporter diff --git a/exporters/otlp/src/otlp_grpc_exporter.cc b/exporters/otlp/src/otlp_grpc_exporter.cc index 42c3b6f831..0cd6bb8cda 100644 --- a/exporters/otlp/src/otlp_grpc_exporter.cc +++ b/exporters/otlp/src/otlp_grpc_exporter.cc @@ -106,7 +106,8 @@ sdk::common::ExportResult OtlpGrpcExporter::Export( { if (isShutdown()) { - OTEL_INTERNAL_LOG_ERROR("[OTLP gRPC] Export failed, exporter is shutdown"); + OTEL_INTERNAL_LOG_ERROR("[OTLP gRPC] Exporting " << spans.size() + << " span(s) failed, exporter is shutdown"); return sdk::common::ExportResult::kFailure; } proto::collector::trace::v1::ExportTraceServiceRequest request; @@ -144,7 +145,7 @@ bool OtlpGrpcExporter::Shutdown(std::chrono::microseconds timeout) noexcept return true; } -const bool OtlpGrpcExporter::isShutdown() const noexcept +bool OtlpGrpcExporter::isShutdown() const noexcept { const std::lock_guard locked(lock_); return is_shutdown_; diff --git a/exporters/otlp/src/otlp_grpc_log_exporter.cc b/exporters/otlp/src/otlp_grpc_log_exporter.cc index c897de5853..4dd84cff11 100644 --- a/exporters/otlp/src/otlp_grpc_log_exporter.cc +++ b/exporters/otlp/src/otlp_grpc_log_exporter.cc @@ -127,7 +127,8 @@ opentelemetry::sdk::common::ExportResult OtlpGrpcLogExporter::Export( { if (isShutdown()) { - OTEL_INTERNAL_LOG_ERROR("[OTLP gRPC log] Export failed, exporter is shutdown"); + OTEL_INTERNAL_LOG_ERROR("[OTLP gRPC log] Exporting " << logs.size() + << " log(s) failed, exporter is shutdown"); return sdk::common::ExportResult::kFailure; } proto::collector::logs::v1::ExportLogsServiceRequest request; @@ -162,7 +163,7 @@ bool OtlpGrpcLogExporter::Shutdown(std::chrono::microseconds timeout) noexcept return true; } -const bool OtlpGrpcLogExporter::isShutdown() const noexcept +bool OtlpGrpcLogExporter::isShutdown() const noexcept { const std::lock_guard locked(lock_); return is_shutdown_; diff --git a/exporters/otlp/src/otlp_http_client.cc b/exporters/otlp/src/otlp_http_client.cc index 6330d148f0..aa65279bc3 100644 --- a/exporters/otlp/src/otlp_http_client.cc +++ b/exporters/otlp/src/otlp_http_client.cc @@ -695,7 +695,7 @@ bool OtlpHttpClient::Shutdown(std::chrono::microseconds) noexcept return true; } -const bool OtlpHttpClient::isShutdown() const noexcept +bool OtlpHttpClient::isShutdown() const noexcept { const std::lock_guard locked(lock_); return is_shutdown_; diff --git a/exporters/zipkin/include/opentelemetry/exporters/zipkin/zipkin_exporter.h b/exporters/zipkin/include/opentelemetry/exporters/zipkin/zipkin_exporter.h index 886b119fb1..7f1291fe80 100644 --- a/exporters/zipkin/include/opentelemetry/exporters/zipkin/zipkin_exporter.h +++ b/exporters/zipkin/include/opentelemetry/exporters/zipkin/zipkin_exporter.h @@ -96,7 +96,7 @@ class ZipkinExporter final : public opentelemetry::sdk::trace::SpanExporter opentelemetry::ext::http::common::UrlParser url_parser_; nlohmann::json local_end_point_; mutable opentelemetry::common::SpinLockMutex lock_; - const bool isShutdown() const noexcept; + bool isShutdown() const noexcept; }; } // namespace zipkin } // namespace exporter diff --git a/exporters/zipkin/src/zipkin_exporter.cc b/exporters/zipkin/src/zipkin_exporter.cc index 9cb714c186..d18811d28b 100644 --- a/exporters/zipkin/src/zipkin_exporter.cc +++ b/exporters/zipkin/src/zipkin_exporter.cc @@ -44,7 +44,8 @@ sdk::common::ExportResult ZipkinExporter::Export( { if (isShutdown()) { - OTEL_INTERNAL_LOG_ERROR("[Zipkin Trace Exporter] Export failed, exporter is shutdown"); + OTEL_INTERNAL_LOG_ERROR("[Zipkin Trace Exporter] Exporting " + << spans.size() << " span(s) failed, exporter is shutdown"); return sdk::common::ExportResult::kFailure; } exporter::zipkin::ZipkinSpan json_spans = {}; @@ -108,7 +109,7 @@ bool ZipkinExporter::Shutdown(std::chrono::microseconds timeout) noexcept return true; } -const bool ZipkinExporter::isShutdown() const noexcept +bool ZipkinExporter::isShutdown() const noexcept { const std::lock_guard locked(lock_); return is_shutdown_;