From 5c54464df07444524e7445b21c81b0e3735600d5 Mon Sep 17 00:00:00 2001 From: Keshav Manghat Date: Tue, 28 Jul 2020 02:42:30 +0000 Subject: [PATCH 1/4] Updated tracez span processor to use threadsafe recordable --- .../opentelemetry/ext/zpages/tracez_processor.h | 8 ++++---- ext/src/zpages/tracez_processor.cc | 8 ++++---- ext/test/zpages/tracez_processor_test.cc | 14 +++++++------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/ext/include/opentelemetry/ext/zpages/tracez_processor.h b/ext/include/opentelemetry/ext/zpages/tracez_processor.h index aca13d72fa..4c3e10d234 100644 --- a/ext/include/opentelemetry/ext/zpages/tracez_processor.h +++ b/ext/include/opentelemetry/ext/zpages/tracez_processor.h @@ -9,7 +9,7 @@ #include "opentelemetry/sdk/trace/processor.h" #include "opentelemetry/sdk/trace/recordable.h" -#include "opentelemetry/sdk/trace/span_data.h" +#include "opentelemetry/ext/zpages/threadsafe_span_data.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace ext @@ -24,8 +24,8 @@ class TracezSpanProcessor : public opentelemetry::sdk::trace::SpanProcessor { public: struct CollectedSpans { - std::unordered_set running; - std::vector> completed; + std::unordered_set running; + std::vector> completed; }; /* @@ -39,7 +39,7 @@ class TracezSpanProcessor : public opentelemetry::sdk::trace::SpanProcessor { */ std::unique_ptr MakeRecordable() noexcept override { - return std::unique_ptr(new opentelemetry::sdk::trace::SpanData); + return std::unique_ptr(new ThreadsafeSpanData); } /* diff --git a/ext/src/zpages/tracez_processor.cc b/ext/src/zpages/tracez_processor.cc index b76f49d72a..1fe6e21468 100644 --- a/ext/src/zpages/tracez_processor.cc +++ b/ext/src/zpages/tracez_processor.cc @@ -6,19 +6,19 @@ namespace zpages { void TracezSpanProcessor::OnStart(opentelemetry::sdk::trace::Recordable &span) noexcept { std::lock_guard lock(mtx_); - spans_.running.insert(static_cast(&span)); + spans_.running.insert(static_cast(&span)); } void TracezSpanProcessor::OnEnd(std::unique_ptr &&span) noexcept { if (span == nullptr) return; - auto span_raw = static_cast(span.get()); + auto span_raw = static_cast(span.get()); std::lock_guard lock(mtx_); auto span_it = spans_.running.find(span_raw); if (span_it != spans_.running.end()) { spans_.running.erase(span_it); spans_.completed.push_back( - std::unique_ptr( - static_cast(span.release()))); + std::unique_ptr( + static_cast(span.release()))); } } diff --git a/ext/test/zpages/tracez_processor_test.cc b/ext/test/zpages/tracez_processor_test.cc index 53fa1dba6b..b96a6cefa2 100644 --- a/ext/test/zpages/tracez_processor_test.cc +++ b/ext/test/zpages/tracez_processor_test.cc @@ -5,7 +5,7 @@ #include #include "opentelemetry/nostd/span.h" -#include "opentelemetry/sdk/trace/span_data.h" +#include "opentelemetry/ext/zpages/threadsafe_span_data.h" #include "opentelemetry/sdk/trace/tracer.h" using namespace opentelemetry::sdk::trace; @@ -18,8 +18,8 @@ using namespace opentelemetry::ext::zpages; * and running_spans. completed_spans contains all spans (cumulative), unless marked otherwise */ void UpdateSpans(std::shared_ptr& processor, - std::vector>& completed, - std::unordered_set& running, + std::vector>& completed, + std::unordered_set& running, bool store_only_new_completed = false) { auto spans = processor->GetSpanSnapshot(); running = spans.running; @@ -44,7 +44,7 @@ void UpdateSpans(std::shared_ptr& processor, * no more or less */ bool ContainsNames(const std::vector& names, - std::unordered_set& running, + std::unordered_set& running, unsigned int name_start = 0, unsigned int name_end = 0, bool one_to_one_correspondence = false) { if (name_end == 0) name_end = names.size(); @@ -84,7 +84,7 @@ bool ContainsNames(const std::vector& names, * no more or less */ bool ContainsNames(const std::vector& names, - std::vector>& completed, + std::vector>& completed, unsigned int name_start = 0, unsigned int name_end = 0, bool one_to_one_correspondence = false) { @@ -162,8 +162,8 @@ class TracezProcessor : public ::testing::Test { std::shared_ptr processor; std::shared_ptr tracer; - std::unordered_set running; - std::vector> completed; + std::unordered_set running; + std::vector> completed; std::vector span_names; std::vector> span_vars; From 94195d2861a61a6baff92db4701551ca25cd1293 Mon Sep 17 00:00:00 2001 From: Keshav Manghat Date: Thu, 30 Jul 2020 16:36:32 +0000 Subject: [PATCH 2/4] Removed spaces --- ext/src/zpages/tracez_processor.cc | 47 +++++++++++++++--------------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/ext/src/zpages/tracez_processor.cc b/ext/src/zpages/tracez_processor.cc index bfee70d4da..1188b378ce 100644 --- a/ext/src/zpages/tracez_processor.cc +++ b/ext/src/zpages/tracez_processor.cc @@ -4,33 +4,32 @@ OPENTELEMETRY_BEGIN_NAMESPACE namespace ext { namespace zpages { - void TracezSpanProcessor::OnStart(opentelemetry::sdk::trace::Recordable &span) noexcept { - std::lock_guard lock(mtx_); - spans_.running.insert(static_cast(&span)); - } +void TracezSpanProcessor::OnStart(opentelemetry::sdk::trace::Recordable &span) noexcept { + std::lock_guard lock(mtx_); + spans_.running.insert(static_cast(&span)); +} - void TracezSpanProcessor::OnEnd(std::unique_ptr &&span) noexcept { - if (span == nullptr) return; - auto span_raw = static_cast(span.get()); - std::lock_guard lock(mtx_); - auto span_it = spans_.running.find(span_raw); - if (span_it != spans_.running.end()) { - spans_.running.erase(span_it); - spans_.completed.push_back( - std::unique_ptr( - static_cast(span.release()))); - } +void TracezSpanProcessor::OnEnd(std::unique_ptr &&span) noexcept { + if (span == nullptr) return; + auto span_raw = static_cast(span.get()); + std::lock_guard lock(mtx_); + auto span_it = spans_.running.find(span_raw); + if (span_it != spans_.running.end()) { + spans_.running.erase(span_it); + spans_.completed.push_back( + std::unique_ptr( + static_cast(span.release()))); } +} - TracezSpanProcessor::CollectedSpans TracezSpanProcessor::GetSpanSnapshot() noexcept - { - CollectedSpans snapshot; - std::lock_guard lock(mtx_); - snapshot.running = spans_.running; - snapshot.completed = std::move(spans_.completed); - spans_.completed.clear(); - return snapshot; - } +TracezSpanProcessor::CollectedSpans TracezSpanProcessor::GetSpanSnapshot() noexcept{ + CollectedSpans snapshot; + std::lock_guard lock(mtx_); + snapshot.running = spans_.running; + snapshot.completed = std::move(spans_.completed); + spans_.completed.clear(); + return snapshot; +} } // namespace zpages } // namespace ext From f66eb011297a0e595eedabb3ca9b8ad0db1ae69e Mon Sep 17 00:00:00 2001 From: Keshav Manghat Date: Tue, 4 Aug 2020 00:07:25 +0000 Subject: [PATCH 3/4] Format changes --- .../opentelemetry/ext/zpages/tracez_processor.h | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/ext/include/opentelemetry/ext/zpages/tracez_processor.h b/ext/include/opentelemetry/ext/zpages/tracez_processor.h index b40b604b8a..c96461db74 100644 --- a/ext/include/opentelemetry/ext/zpages/tracez_processor.h +++ b/ext/include/opentelemetry/ext/zpages/tracez_processor.h @@ -7,9 +7,9 @@ #include #include +#include "opentelemetry/ext/zpages/threadsafe_span_data.h" #include "opentelemetry/sdk/trace/processor.h" #include "opentelemetry/sdk/trace/recordable.h" -#include "opentelemetry/ext/zpages/threadsafe_span_data.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace ext @@ -20,11 +20,12 @@ namespace zpages * The span processor passes and stores running and completed recordables (casted as span_data) * to be used by the TraceZ Data Aggregator. */ -class TracezSpanProcessor : public opentelemetry::sdk::trace::SpanProcessor { - public: - - struct CollectedSpans { - std::unordered_set running; +class TracezSpanProcessor : public opentelemetry::sdk::trace::SpanProcessor +{ +public: + struct CollectedSpans + { + std::unordered_set running; std::vector> completed; }; From 96bfa6f21b45b392a5e070dd018749afd3e1f215 Mon Sep 17 00:00:00 2001 From: Keshav Manghat Date: Tue, 4 Aug 2020 02:02:35 +0000 Subject: [PATCH 4/4] Format changes --- ext/src/zpages/tracez_processor.cc | 29 +++++++++++-------- ext/test/zpages/tracez_processor_test.cc | 36 ++++++++++++++---------- 2 files changed, 39 insertions(+), 26 deletions(-) diff --git a/ext/src/zpages/tracez_processor.cc b/ext/src/zpages/tracez_processor.cc index 1188b378ce..779f6fd061 100644 --- a/ext/src/zpages/tracez_processor.cc +++ b/ext/src/zpages/tracez_processor.cc @@ -1,28 +1,35 @@ #include "opentelemetry/ext/zpages/tracez_processor.h" OPENTELEMETRY_BEGIN_NAMESPACE -namespace ext { -namespace zpages { +namespace ext +{ +namespace zpages +{ -void TracezSpanProcessor::OnStart(opentelemetry::sdk::trace::Recordable &span) noexcept { +void TracezSpanProcessor::OnStart(opentelemetry::sdk::trace::Recordable &span) noexcept +{ std::lock_guard lock(mtx_); - spans_.running.insert(static_cast(&span)); + spans_.running.insert(static_cast(&span)); } -void TracezSpanProcessor::OnEnd(std::unique_ptr &&span) noexcept { - if (span == nullptr) return; - auto span_raw = static_cast(span.get()); +void TracezSpanProcessor::OnEnd( + std::unique_ptr &&span) noexcept +{ + if (span == nullptr) + return; + auto span_raw = static_cast(span.get()); std::lock_guard lock(mtx_); auto span_it = spans_.running.find(span_raw); - if (span_it != spans_.running.end()) { + if (span_it != spans_.running.end()) + { spans_.running.erase(span_it); spans_.completed.push_back( - std::unique_ptr( - static_cast(span.release()))); + std::unique_ptr(static_cast(span.release()))); } } -TracezSpanProcessor::CollectedSpans TracezSpanProcessor::GetSpanSnapshot() noexcept{ +TracezSpanProcessor::CollectedSpans TracezSpanProcessor::GetSpanSnapshot() noexcept +{ CollectedSpans snapshot; std::lock_guard lock(mtx_); snapshot.running = spans_.running; diff --git a/ext/test/zpages/tracez_processor_test.cc b/ext/test/zpages/tracez_processor_test.cc index 3511d6fccb..9d9fb3afe6 100644 --- a/ext/test/zpages/tracez_processor_test.cc +++ b/ext/test/zpages/tracez_processor_test.cc @@ -4,8 +4,8 @@ #include -#include "opentelemetry/nostd/span.h" #include "opentelemetry/ext/zpages/threadsafe_span_data.h" +#include "opentelemetry/nostd/span.h" #include "opentelemetry/sdk/trace/tracer.h" using namespace opentelemetry::sdk::trace; @@ -17,10 +17,11 @@ using namespace opentelemetry::ext::zpages; * Helper function uses the current processor to update spans contained in completed_spans * and running_spans. completed_spans contains all spans (cumulative), unless marked otherwise */ -void UpdateSpans(std::shared_ptr& processor, - std::vector>& completed, - std::unordered_set& running, - bool store_only_new_completed = false) { +void UpdateSpans(std::shared_ptr &processor, + std::vector> &completed, + std::unordered_set &running, + bool store_only_new_completed = false) +{ auto spans = processor->GetSpanSnapshot(); running = spans.running; if (store_only_new_completed) @@ -45,11 +46,14 @@ void UpdateSpans(std::shared_ptr& processor, * If 1-1 correspondance marked, return true if completed has all names in same frequency, * no more or less */ -bool ContainsNames(const std::vector& names, - std::unordered_set& running, - unsigned int name_start = 0, unsigned int name_end = 0, - bool one_to_one_correspondence = false) { - if (name_end == 0) name_end = names.size(); +bool ContainsNames(const std::vector &names, + std::unordered_set &running, + unsigned int name_start = 0, + unsigned int name_end = 0, + bool one_to_one_correspondence = false) +{ + if (name_end == 0) + name_end = names.size(); unsigned int num_names = name_end - name_start; @@ -90,10 +94,12 @@ bool ContainsNames(const std::vector& names, * If 1-1 correspondance marked, return true if completed has all names in same frequency, * no more or less */ -bool ContainsNames(const std::vector& names, - std::vector>& completed, - unsigned int name_start = 0, unsigned int name_end = 0, - bool one_to_one_correspondence = false) { +bool ContainsNames(const std::vector &names, + std::vector> &completed, + unsigned int name_start = 0, + unsigned int name_end = 0, + bool one_to_one_correspondence = false) +{ if (name_end == 0) name_end = names.size(); @@ -180,7 +186,7 @@ class TracezProcessor : public ::testing::Test std::shared_ptr processor; std::shared_ptr tracer; - std::unordered_set running; + std::unordered_set running; std::vector> completed; std::vector span_names;