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)