From 7e6ac9627a80784325f34e64b3e800ccc1bc319c Mon Sep 17 00:00:00 2001 From: Matt Quinn Date: Sat, 31 May 2025 10:35:59 +0900 Subject: [PATCH] Fix compatibility with recent traces versions `traces` version `0.5.0` introduced the `resource:` parameter to `Interface#trace`. Update the OpenTelemetry backend to accept this keyword. --- lib/traces/backend/open_telemetry/interface.rb | 2 +- test/traces/backend/open_telemetry.rb | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/traces/backend/open_telemetry/interface.rb b/lib/traces/backend/open_telemetry/interface.rb index bb6d587..ec272ba 100644 --- a/lib/traces/backend/open_telemetry/interface.rb +++ b/lib/traces/backend/open_telemetry/interface.rb @@ -16,7 +16,7 @@ module OpenTelemetry TRACER = ::OpenTelemetry.tracer_provider.tracer(Traces::Backend::OpenTelemetry.name, Traces::Backend::OpenTelemetry::VERSION) module Interface - def trace(name, attributes: nil, &block) + def trace(name, resource: nil, attributes: nil, &block) TRACER.in_span(name, attributes: attributes&.transform_keys(&:to_s), &block) end diff --git a/test/traces/backend/open_telemetry.rb b/test/traces/backend/open_telemetry.rb index 3d8a979..4c33fb6 100644 --- a/test/traces/backend/open_telemetry.rb +++ b/test/traces/backend/open_telemetry.rb @@ -18,6 +18,10 @@ def my_method(argument) def my_method_without_attributes(arguments) Traces.trace("my_method_without_attributes") {} end + + def my_method_with_resource(argument) + Traces.trace("my_method_with_resource", resource: "my_resource") {} + end def my_method_with_exception Traces.trace("my_method_with_exception") {raise "Error"} @@ -56,6 +60,12 @@ def my_span_and_context instance.my_method_without_attributes(10) end + + it "can invoke trace wrapper with a resource" do + expect(Traces::Backend::OpenTelemetry::TRACER).to receive(:start_span) + + instance.my_method_with_resource(10) + end it "can invoke trace wrapper with exception" do expect(Traces::Backend::OpenTelemetry::TRACER).to receive(:start_span)