qpid-proton icon indicating copy to clipboard operation
qpid-proton copied to clipboard

PROTON-2487: [cpp] Implement distributed tracing using OpenTelemetry

Open DreamPearl opened this issue 4 years ago • 7 comments

PROTON-2487

  • 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

DreamPearl avatar Jan 19 '22 12:01 DreamPearl

Codecov Report

Merging #355 (dff4e8e) into main (a4375a8) will decrease coverage by 18.67%. The diff coverage is 92.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

codecov-commenter avatar Jan 19 '22 15:01 codecov-commenter

@astitcher Tracing demo spans on Jaeger UI: https://gist.github.com/DreamPearl/25935c37d97284f22639de454c623717

DreamPearl avatar Mar 29 '22 10:03 DreamPearl

Tracing Demo

Spans on Jaeger UI using the existing broker, server, and client examples: https://gist.github.com/DreamPearl/e53f08d29ef8038c683f0fefacb829ca

DreamPearl avatar Jun 16 '22 12:06 DreamPearl

That jaeger display looks good

astitcher avatar Jun 16 '22 12:06 astitcher

Spans on Jaeger UI: https://gist.github.com/DreamPearl/6ccaa6b64587ec78ab93a0c8c71cbc70

DreamPearl avatar Aug 10 '22 10:08 DreamPearl

In middle of improving the tracing examples and documentation.

DreamPearl avatar Aug 10 '22 10:08 DreamPearl

@astitcher Made modifications in the examples (tracing_client and tracing_server).

Spans on Jaeger UI: https://gist.github.com/DreamPearl/de4c6d317fefe8e35a0f551bc4785b3b

DreamPearl avatar Sep 02 '22 12:09 DreamPearl

Merged

astitcher avatar Oct 12 '22 13:10 astitcher