opentelemetry-cpp
opentelemetry-cpp copied to clipboard
W3C TraceContext compliance
Implement W3C TraceContext and get 100% pass rate from the validation service https://github.com/w3c/trace-context/tree/master/test.
CI should be implemented which verifies the TraceContext compliance.
FYI - how OpenTelemetry Python did this https://github.com/open-telemetry/opentelemetry-python/pull/228
After #563 ( tracestate integration ), 9 tests are still failing. keeping it open till it's fixed.
STRICT_LEVEL: 2
harness listening on http://127.0.0.1:7777
test_multiple_requests_with_illegal_traceparent (__main__.AdvancedTest)
harness sends an invalid traceparent and asks vendor service to callback multiple times ... ok
test_multiple_requests_with_valid_traceparent (__main__.AdvancedTest)
harness sends a valid traceparent and asks vendor service to callback multiple times ... ok
test_multiple_requests_without_traceparent (__main__.AdvancedTest)
harness asks vendor service to callback multiple times ... ok
test_both_traceparent_and_tracestate_missing (__main__.TraceContextTest)
harness sends a request without traceparent or tracestate ... ok
test_traceparent_duplicated (__main__.TraceContextTest)
harness sends a request with two traceparent headers ... FAIL
test_traceparent_header_name (__main__.TraceContextTest)
harness sends an invalid traceparent using wrong names ... ok
test_traceparent_header_name_valid_casing (__main__.TraceContextTest)
harness sends a valid traceparent using different combination of casing ... ok
test_traceparent_included_tracestate_missing (__main__.TraceContextTest)
harness sends a request with traceparent but without tracestate ... ok
test_traceparent_ows_handling (__main__.TraceContextTest)
harness sends an valid traceparent with heading and trailing OWS ... FAIL
test_traceparent_parent_id_all_zero (__main__.TraceContextTest)
harness sends an invalid traceparent with parent_id = 0000000000000000 ... ok
test_traceparent_parent_id_illegal_characters (__main__.TraceContextTest)
harness sends an invalid traceparent with illegal characters in parent_id ... ok
test_traceparent_parent_id_too_long (__main__.TraceContextTest)
harness sends an invalid traceparent with parent_id more than 16 HEXDIG ... ok
test_traceparent_parent_id_too_short (__main__.TraceContextTest)
harness sends an invalid traceparent with parent_id less than 16 HEXDIG ... ok
test_traceparent_trace_flags_illegal_characters (__main__.TraceContextTest)
harness sends an invalid traceparent with illegal characters in trace_flags ... ok
test_traceparent_trace_flags_too_long (__main__.TraceContextTest)
harness sends an invalid traceparent with trace_flags more than 2 HEXDIG ... ok
test_traceparent_trace_flags_too_short (__main__.TraceContextTest)
harness sends an invalid traceparent with trace_flags less than 2 HEXDIG ... ok
test_traceparent_trace_id_all_zero (__main__.TraceContextTest)
harness sends an invalid traceparent with trace_id = 00000000000000000000000000000000 ... ok
test_traceparent_trace_id_illegal_characters (__main__.TraceContextTest)
harness sends an invalid traceparent with illegal characters in trace_id ... ok
test_traceparent_trace_id_too_long (__main__.TraceContextTest)
harness sends an invalid traceparent with trace_id more than 32 HEXDIG ... ok
test_traceparent_trace_id_too_short (__main__.TraceContextTest)
harness sends an invalid traceparent with trace_id less than 32 HEXDIG ... ok
test_traceparent_version_0x00 (__main__.TraceContextTest)
harness sends an invalid traceparent with extra trailing characters ... ok
test_traceparent_version_0xcc (__main__.TraceContextTest)
harness sends an valid traceparent with future version 204 (0xcc) ... FAIL
test_traceparent_version_0xff (__main__.TraceContextTest)
harness sends an invalid traceparent with version 255 (0xff) ... ok
test_traceparent_version_illegal_characters (__main__.TraceContextTest)
harness sends an invalid traceparent with illegal characters in version ... ok
test_traceparent_version_too_long (__main__.TraceContextTest)
harness sends an invalid traceparent with version more than 2 HEXDIG ... ok
test_traceparent_version_too_short (__main__.TraceContextTest)
harness sends an invalid traceparent with version less than 2 HEXDIG ... ok
test_tracestate_all_allowed_characters (__main__.TraceContextTest)
harness sends a request with a valid tracestate header with all legal characters ... ok
test_tracestate_duplicated_keys (__main__.TraceContextTest)
harness sends a request with an invalid tracestate header with duplicated keys ... FAIL
test_tracestate_empty_header (__main__.TraceContextTest)
harness sends a request with empty tracestate header ... FAIL
test_tracestate_header_name (__main__.TraceContextTest)
harness sends an invalid tracestate using wrong names ... ok
test_tracestate_header_name_valid_casing (__main__.TraceContextTest)
harness sends a valid tracestate using different combination of casing ... ok
test_tracestate_included_traceparent_included (__main__.TraceContextTest)
harness sends a request with both tracestate and traceparent ... ok
test_tracestate_included_traceparent_missing (__main__.TraceContextTest)
harness sends a request with tracestate but without traceparent ... ok
test_tracestate_key_illegal_characters (__main__.TraceContextTest)
harness sends a request with an invalid tracestate header with illegal key ... ok
test_tracestate_key_illegal_vendor_format (__main__.TraceContextTest)
harness sends a request with an invalid tracestate header with illegal vendor format ... ok
test_tracestate_key_length_limit (__main__.TraceContextTest)
harness sends tracestate header with a key of 256 and 257 characters ... FAIL
test_tracestate_member_count_limit (__main__.TraceContextTest)
harness sends a request with a valid tracestate header with 32 list members ... FAIL
test_tracestate_multiple_headers_different_keys (__main__.TraceContextTest)
harness sends a request with multiple tracestate headers, each contains different set of keys ... FAIL
test_tracestate_ows_handling (__main__.TraceContextTest)
harness sends a request with a valid tracestate header with OWS ... FAIL
test_tracestate_value_illegal_characters (__main__.TraceContextTest)
harness sends a request with an invalid tracestate header with illegal value format ... ok
----------------------------------------------------------------------
Ran 40 tests in 0.807s
FAILED (failures=9)
``
Moving to GA milestone, as fix doesn't involve api/sdk interface changes. And few of the failures are related to issues with the test suite used for validation.
This issue was marked as stale due to lack of activity. It will be closed in 7 days if no furthur activity occurs.
This issue was marked as stale due to lack of activity. It will be closed in 7 days if no furthur activity occurs.