Skip to content

feat(otel): enable Ruby OTLP trace export tests - #7458

Draft
bm1549 wants to merge 1 commit into
mainfrom
brian.marks/ruby-otlp-trace-export
Draft

feat(otel): enable Ruby OTLP trace export tests#7458
bm1549 wants to merge 1 commit into
mainfrom
brian.marks/ruby-otlp-trace-export

Conversation

@bm1549

@bm1549 bm1549 commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Motivation

Concise implementation report

AI was used to help implement and review this change. I read and verified the resulting change.

dd-trace-rb 2.41 adds native OTLP trace export through libdatadog. The shared OTLP trace suite should run for Ruby once that development version is under test.

Changes

Activates Test_Otel_Tracing_OTLP for Ruby from v2.41.0-dev. The suite covers routing, sampling behavior, trace identity, and HTTP/protobuf payloads.

Companion changes: dd-trace-rb #6152 and libdatadog #2317.

Validation: ./format.sh --check passes, including manifest parsing and YAML checks.

Workflow

  1. ⚠️ Create your PR as draft ⚠️
  2. Work on you PR until the CI passes
  3. Mark it as ready for review
    • Test logic is modified? -> Get a review from RFC owner.
    • Framework is modified, or non obvious usage of it -> get a review from R&P team

🚀 Once your PR is reviewed and the CI green, you can merge it!

🛟 #apm-shared-testing 🛟

Reviewer checklist

  • Anything but tests/ or manifests/ is modified ? I have the approval from R&P team
  • A docker base image is modified?
    • the relevant build-XXX-image label is present
  • A scenario is added, removed or renamed?

@bm1549 bm1549 added the ai-generated The pull request includes a significant amount of AI-generated code label Aug 5, 2026
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

CODEOWNERS have been resolved as:

manifests/ruby.yml                                                      @DataDog/ruby-guild @DataDog/asm-ruby

@datadog-datadog-prod-us1

datadog-datadog-prod-us1 Bot commented Aug 5, 2026

Copy link
Copy Markdown

Pipelines  Tests

Unblock PR with BitsAI

⚠️ Warnings

🚦 13 Pipeline jobs failed

Testing the test | System Tests (ruby, dev) / End-to-end #1 / rack 1   View in Datadog   GitHub Actions

🔧 Fix in code. This looks caused by changes in this PR. 2 failed tests. Assertion Error: Expected 1 OTLP span but got 0.

🧪 2 Tests failed

tests.otel.test_tracing_otlp.Test_Otel_Tracing_OTLP.test_128bit_trace_id_consistent_across_spans[rack] from system_tests_suite   View in Datadog
AssertionError: Expected at least one matching OTLP span, got []
assert 0 >= 1
 +  where 0 = len([])

self = <tests.otel.test_tracing_otlp.Test_Otel_Tracing_OTLP object at 0x7f9bbc861fd0>

    def test_128bit_trace_id_consistent_across_spans(self):
        """Validates that every span in a trace carries the same full 128-bit OTLP traceId.
    
        DD tracers emit 128-bit trace IDs by default but the v04/v05 msgpack wire format only
...
tests.otel.test_tracing_otlp.Test_Otel_Tracing_OTLP.test_single_server_trace[rack] from system_tests_suite   View in Datadog
assert 0 == 1
 +  where 0 = len([])

self = <tests.otel.test_tracing_otlp.Test_Otel_Tracing_OTLP object at 0x7f9bbc860800>

    def test_single_server_trace(self):
        """Validates the required elements of the OTLP payload for a single trace"""
        data = list(interfaces.open_telemetry.get_otel_spans(self.req))
    
        # Assert that there is only one OTLP request containing the desired server span
...

Testing the test | System Tests (ruby, dev) / End-to-end #1 / rails42 1   View in Datadog   GitHub Actions

🔧 Fix in code. This looks caused by changes in this PR. 2 failed tests due to assertion errors: Expected at least one matching OTLP span, got [] in tests/otel/test_tracing_otlp.py:151 and assert 0 == 1 in tests/otel/test_tracing_otlp.py:55.

🧪 2 Tests failed · 🎯 related to the job error above

🎯 tests.otel.test_tracing_otlp.Test_Otel_Tracing_OTLP.test_128bit_trace_id_consistent_across_spans[rails42] from system_tests_suite   View in Datadog
AssertionError: Expected at least one matching OTLP span, got []
assert 0 >= 1
 +  where 0 = len([])

self = <tests.otel.test_tracing_otlp.Test_Otel_Tracing_OTLP object at 0x7f44a0b197c0>

    def test_128bit_trace_id_consistent_across_spans(self):
        """Validates that every span in a trace carries the same full 128-bit OTLP traceId.
    
        DD tracers emit 128-bit trace IDs by default but the v04/v05 msgpack wire format only
...
🎯 tests.otel.test_tracing_otlp.Test_Otel_Tracing_OTLP.test_single_server_trace[rails42] from system_tests_suite   View in Datadog
assert 0 == 1
 +  where 0 = len([])

self = <tests.otel.test_tracing_otlp.Test_Otel_Tracing_OTLP object at 0x7f44a0b192b0>

    def test_single_server_trace(self):
        """Validates the required elements of the OTLP payload for a single trace"""
        data = list(interfaces.open_telemetry.get_otel_spans(self.req))
    
        # Assert that there is only one OTLP request containing the desired server span
...

Testing the test | System Tests (ruby, dev) / End-to-end #1 / rails52 1   View in Datadog   GitHub Actions

🔧 Fix in code. This looks caused by changes in this PR. 2 failed tests. AssertionError: Expected at least one matching OTLP span, got [] in test_128bit_trace_id_consistent_across_spans and assert len(data) == 1 in test_single_server_trace.

🧪 2 Tests failed · 🎯 related to the job error above

🎯 tests.otel.test_tracing_otlp.Test_Otel_Tracing_OTLP.test_128bit_trace_id_consistent_across_spans[rails52] from system_tests_suite   View in Datadog
AssertionError: Expected at least one matching OTLP span, got []
assert 0 >= 1
 +  where 0 = len([])

self = <tests.otel.test_tracing_otlp.Test_Otel_Tracing_OTLP object at 0x7fc6d81ba0c0>

    def test_128bit_trace_id_consistent_across_spans(self):
        """Validates that every span in a trace carries the same full 128-bit OTLP traceId.
    
        DD tracers emit 128-bit trace IDs by default but the v04/v05 msgpack wire format only
...
🎯 tests.otel.test_tracing_otlp.Test_Otel_Tracing_OTLP.test_single_server_trace[rails52] from system_tests_suite   View in Datadog
assert 0 == 1
 +  where 0 = len([])

self = <tests.otel.test_tracing_otlp.Test_Otel_Tracing_OTLP object at 0x7fc6d81ba5a0>

    def test_single_server_trace(self):
        """Validates the required elements of the OTLP payload for a single trace"""
        data = list(interfaces.open_telemetry.get_otel_spans(self.req))
    
        # Assert that there is only one OTLP request containing the desired server span
...

View all 13 failed jobs.

📋 Copy prompt for your agent
CI on my pull request is failing. Help me find and fix the root cause of each failing job below — they were flagged as caused by changes in this PR, so focus on the diff. For each job, explain the failure and propose a fix.

Branch: brian.marks/ruby-otlp-trace-export

Testing the test | System Tests (ruby, dev) / End-to-end #1 / rack 1
Commit: 30d76a83223f3381754da326d6f7902d8c1ed867
Error (code / test):
2 failed tests. Assertion Error: Expected 1 OTLP span but got 0.
CI job: https://github.com/DataDog/system-tests/actions/runs/30969950435/job/92192813908

Testing the test | System Tests (ruby, dev) / End-to-end #1 / rails42 1
Commit: 30d76a83223f3381754da326d6f7902d8c1ed867
Error (code / test):
2 failed tests due to assertion errors: Expected at least one matching OTLP span, got [] in tests/otel/test_tracing_otlp.py:151 and assert 0 == 1 in tests/otel/test_tracing_otlp.py:55.
CI job: https://github.com/DataDog/system-tests/actions/runs/30969950435/job/92192813817

Testing the test | System Tests (ruby, dev) / End-to-end #1 / rails52 1
Commit: 30d76a83223f3381754da326d6f7902d8c1ed867
Error (code / test):
2 failed tests. AssertionError: Expected at least one matching OTLP span, got [] in test_128bit_trace_id_consistent_across_spans and assert len(data) == 1 in test_single_server_trace.
CI job: https://github.com/DataDog/system-tests/actions/runs/30969950435/job/92192813886

Plus 9 more failing jobs not shown here.

ℹ️ Info

No other issues found (see more)

❄️ No new flaky tests detected

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 1c69027 | Docs | Datadog PR Page | Give us feedback!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-generated The pull request includes a significant amount of AI-generated code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant