Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
0ca6905
Add initial benchmark code
jajanet Aug 20, 2020
7a59600
Add working tracez processor benchmark
jajanet Aug 21, 2020
44c9c42
Add aggregator benchmarks, use processor
jajanet Aug 21, 2020
9088fd6
Move latency bound to separate var
jajanet Aug 21, 2020
75ab942
Restructure ext folder
jajanet Aug 22, 2020
d67f20e
Compile CMake correctly, json cmake todo
jajanet Aug 22, 2020
d05de6c
Move and update zPages README
jajanet Aug 22, 2020
69c72d9
Update README to whats in #288
jajanet Aug 22, 2020
64f4bea
Run formatter
jajanet Aug 22, 2020
94cbff3
Merge folder restructure
jajanet Aug 22, 2020
cfba657
Use args in benchmarks
jajanet Aug 22, 2020
99a8bcf
Update threading
jajanet Aug 23, 2020
6fca653
Add run complete snap benchmarks
jajanet Aug 23, 2020
be60db8
Remove unneeded code
jajanet Aug 23, 2020
e1f36c7
Update code comments
jajanet Aug 23, 2020
00d31a1
Pass tracer by ref, test getting aggregations too
jajanet Aug 24, 2020
0da246d
Add more descriptive comments
jajanet Aug 24, 2020
01ae6bf
Remove finished spans
jajanet Aug 24, 2020
6083ce2
Fix typo, edit comments
jajanet Aug 24, 2020
5c2f295
Update comment
jajanet Aug 24, 2020
ad3585e
Update comments
jajanet Aug 24, 2020
aaf2567
Grammar, clarifications
jajanet Aug 24, 2020
3d2a960
numSpans->num_spans
jajanet Aug 24, 2020
0c5b994
Add more TODOs
jajanet Aug 24, 2020
1e5c7a3
Fix typo
jajanet Aug 24, 2020
6feb51a
Merge branch 'master' into ext-folder-restructure
reyang Aug 24, 2020
5c6c5f8
Update tracez todo in readme
jajanet Aug 24, 2020
071db24
Merge branch 'ext-folder-restructure' into tracez-benchmark
jajanet Aug 25, 2020
92262de
Be more descriptive, follow cpp style better
jajanet Aug 25, 2020
6381880
Use friend classes, granulate aggr fixture
jajanet Aug 26, 2020
a89490d
Add CPU timers where necessary
jajanet Aug 26, 2020
44c809a
Add End only benchmark, clear processor running mem fn
jajanet Aug 26, 2020
793c91b
Rename i to num_spans
jajanet Aug 26, 2020
a8febb3
Name periodic function things better
jajanet Aug 26, 2020
a9c2619
Reorder functions in benchmarks
jajanet Aug 26, 2020
de57443
Cleanup
jajanet Aug 26, 2020
5fc728f
Deduplicate aggregator benchmark code
jajanet Aug 27, 2020
4b16f82
Cosmetic changes from code review
jajanet Aug 27, 2020
b118544
Readabiliy, int->unsigned, makecomplete processor benchmark
jajanet Aug 27, 2020
61ea8ba
const int->const unsigned, var name clarifcation
jajanet Aug 27, 2020
c3c7661
Add more details, deduplicate more code
jajanet Aug 27, 2020
033a980
Ensure all latency bands filled, run formatter
jajanet Aug 29, 2020
9772eb8
Rebase
jajanet Aug 29, 2020
2d10a23
Better wording and add medium article link
jajanet Aug 29, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions examples/zpages/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@ cc_binary(
"//conditions:default": ["-pthread"],
}),
deps = [
"//ext:headers",
"//ext/src/zpages",
"//ext/zpages",
"//sdk/src/trace",
],
)
7 changes: 2 additions & 5 deletions ext/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,2 @@
add_subdirectory(src)

if(BUILD_TESTING)
add_subdirectory(test)
endif()
add_subdirectory(http)
add_subdirectory(zpages)
1 change: 1 addition & 0 deletions ext/http/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
add_subdirectory(server)
File renamed without changes.
3 changes: 3 additions & 0 deletions ext/http/server/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
add_library(http_server INTERFACE)

target_include_directories(http_server INTERFACE include)
1 change: 0 additions & 1 deletion ext/src/CMakeLists.txt

This file was deleted.

28 changes: 0 additions & 28 deletions ext/src/zpages/BUILD

This file was deleted.

12 changes: 0 additions & 12 deletions ext/src/zpages/CMakeLists.txt

This file was deleted.

1 change: 0 additions & 1 deletion ext/test/CMakeLists.txt

This file was deleted.

35 changes: 0 additions & 35 deletions ext/test/zpages/BUILD

This file was deleted.

14 changes: 14 additions & 0 deletions ext/zpages/BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package(default_visibility = ["//visibility:public"])

cc_library(
name = "zpages",
srcs = glob(["src/**/*.cc"]),
hdrs = glob(["include/**/*.h"]),
strip_include_prefix = "include",
deps = [
"//api",
"//ext/http/server:headers",
"//sdk:headers",
"@github_nlohmann_json//:json",
],
)
14 changes: 14 additions & 0 deletions ext/zpages/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
add_library(
opentelemetry_zpages src/tracez_processor.cc src/tracez_data_aggregator.cc
# TODO: add Cmake build for nlohmann JSON
# src/tracez_http_server.cc
)

target_include_directories(opentelemetry_zpages PUBLIC include)

target_link_libraries(opentelemetry_zpages opentelemetry_api
opentelemetry_trace http_server)

if(BUILD_TESTING)
add_subdirectory(test)
endif()
3 changes: 2 additions & 1 deletion ext/src/zpages/README.md → ext/zpages/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# zPages
## Overview
zPages are a quick and light way to view tracing and metrics information on standard OpenTelemetry C++ instrumented applications. It requires no external dependencies or backend setup. See more information in the OTel zPages experimental [spec](https://github.com/open-telemetry/opentelemetry-specification/blob/5b86d4b6c42e6d1e47d9155ac1e2e27f0f0b7769/experimental/trace/zpages.md). OTel C++ currently only offers Tracez; future zPages to potentially add include TraceConfigz, RPCz, and Statsz. Events and links need to be added to Tracez.
zPages are a quick and light way to view tracing and metrics information on standard OpenTelemetry C++ instrumented applications. It requires no external dependencies or backend setup. See more information in the OTel zPages experimental [spec](https://github.com/open-telemetry/opentelemetry-specification/blob/5b86d4b6c42e6d1e47d9155ac1e2e27f0f0b7769/experimental/trace/zpages.md). OTel C++ currently only offers Tracez, which are currently not showing events and links; future zPages to potentially add include TraceConfigz, RPCz, and Statsz. There's also a Medium article on zPages [here](https://medium.com/opentelemetry/zpages-in-opentelemetry-2b080a81eb47).

# Usage
> TODO: Add CMake instructions
Expand All @@ -25,3 +25,4 @@ zPages are a quick and light way to view tracing and metrics information on stan
- [Tracez Span Processor](https://docs.google.com/document/d/1kO4iZARYyr-EGBlY2VNM3ELU3iw6ZrC58Omup_YT-fU/edit#)
- [Tracez Data Aggregator](https://docs.google.com/document/d/1ziKFgvhXFfRXZjOlAHQRR-TzcNcTXzg1p2I9oPCEIoU/edit?ts=5ef0d177#heading=h.5irk4csrpu0y)
- [Tracez Http Server](https://docs.google.com/document/d/1U1V8QZ5LtGl4Mich-aJ6KZGLHrMIE8pWyspmzvnIefI/edit#) - includes reference pictures of the zPages/Tracez UI

Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,9 @@ class TracezDataAggregator
/** Condition variable that notifies the thread when object is about to be
destroyed **/
std::condition_variable cv_;

/** Friend class used for benchmarking **/
friend class TracezDataAggregatorPeer;
};

} // namespace zpages
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,9 @@ class TracezSpanProcessor : public opentelemetry::sdk::trace::SpanProcessor
private:
mutable std::mutex mtx_;
CollectedSpans spans_;

/** Friend class used for benchmarking **/
friend class TracezProcessorPeer;
};
} // namespace zpages
} // namespace ext
Expand Down
61 changes: 61 additions & 0 deletions ext/zpages/test/BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
load("//bazel:otel_cc_benchmark.bzl", "otel_cc_benchmark")

cc_test(
name = "threadsafe_span_data_test",
srcs = [
"threadsafe_span_data_test.cc",
],
deps = [
"//ext/zpages",
"//sdk/src/trace",
"@com_google_googletest//:gtest_main",
],
)

cc_test(
name = "tracez_data_aggregator_test",
srcs = [
"tracez_data_aggregator_test.cc",
],
deps = [
"//ext/zpages",
"//sdk/src/trace",
"@com_google_googletest//:gtest_main",
],
)

cc_test(
name = "tracez_processor_test",
srcs = [
"tracez_processor_test.cc",
],
deps = [
"//ext/zpages",
"//sdk/src/trace",
"@com_google_googletest//:gtest_main",
],
)

otel_cc_benchmark(
name = "tracez_aggregator_benchmark",
srcs = [
"tracez_data_aggregator_benchmark.cc",
],
deps = [
"//api",
"//ext/zpages",
"//sdk/src/trace",
],
)

otel_cc_benchmark(
name = "tracez_processor_benchmark",
srcs = [
"tracez_processor_benchmark.cc",
],
deps = [
"//api",
"//ext/zpages",
"//sdk/src/trace",
],
)
File renamed without changes.
Loading