PROTON-2487: [cpp] Implement distributed tracing using OpenTelemetry
- Add the opentelemetry-cpp library dependencies
- Add opentelemetry-cpp install/build steps in GHA
- Add tracing.cpp file
- Add tracing spans for messaging operations
- Add basic attributes[delivery_tag, delivery_state, source_address, destination_address]
- Add a tracing demo file in examples
- Add a test file
Previous discussion: https://github.com/apache/qpid-proton/pull/319
Codecov Report
Merging #355 (dff4e8e) into main (a4375a8) will decrease coverage by
18.67%. The diff coverage is92.85%.
@@ Coverage Diff @@
## main #355 +/- ##
===========================================
- Coverage 88.34% 69.66% -18.68%
===========================================
Files 47 370 +323
Lines 2394 69801 +67407
===========================================
+ Hits 2115 48628 +46513
- Misses 279 21173 +20894
| Impacted Files | Coverage Δ | |
|---|---|---|
| cpp/src/init_tracer_stub.cpp | 0.00% <0.00%> (ø) |
|
| cpp/src/messaging_adapter.cpp | 80.97% <100.00%> (ø) |
|
| cpp/src/sender.cpp | 76.74% <100.00%> (ø) |
|
| cpp/src/tracing_private.hpp | 100.00% <100.00%> (ø) |
|
| cpp/src/tracing_stub.cpp | 100.00% <100.00%> (ø) |
|
| cpp/include/proton/codec/unordered_map.hpp | 100.00% <0.00%> (ø) |
|
| c/src/core/fixed_string.h | 77.41% <0.00%> (ø) |
|
| python/tests/proton_tests/__init__.py | 100.00% <0.00%> (ø) |
|
| c/src/core/engine.c | 94.00% <0.00%> (ø) |
|
| cpp/examples/multithreaded_client_flow_control.cpp | 0.00% <0.00%> (ø) |
|
| ... and 315 more |
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more
@astitcher Tracing demo spans on Jaeger UI: https://gist.github.com/DreamPearl/25935c37d97284f22639de454c623717
Tracing Demo
Spans on Jaeger UI using the existing broker, server, and client examples: https://gist.github.com/DreamPearl/e53f08d29ef8038c683f0fefacb829ca
That jaeger display looks good
Spans on Jaeger UI: https://gist.github.com/DreamPearl/6ccaa6b64587ec78ab93a0c8c71cbc70
In middle of improving the tracing examples and documentation.
@astitcher Made modifications in the examples (tracing_client and tracing_server).
Spans on Jaeger UI: https://gist.github.com/DreamPearl/de4c6d317fefe8e35a0f551bc4785b3b
Merged