Verified Commit 72ecedae authored by Hercules Merscher's avatar Hercules Merscher 🌴
Browse files

fix: Opentracing current_span is nil

parent 3a5a8232
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -150,8 +150,11 @@ module Labkit
    #     span.set_attribute("expensive_data", compute_expensive_data)
    #   end
    #
    # @return [OpenTelemetry::Trace::Span] The current span (may be a no-op span when tracing is disabled)
    # @return [OpenTelemetry::Trace::Span, nil] The current span (may be a no-op span when tracing is disabled, or nil when using OpenTracing)
    def self.current_span
      return nil if opentracing_connection?

      require "opentelemetry/sdk"
      OpenTelemetry::Trace.current_span
    end

+16 −3
Original line number Diff line number Diff line
@@ -188,11 +188,24 @@ describe Labkit::Tracing do
  end

  describe ".current_span" do
    context "when using OpenTelemetry" do
      before do
        stub_const("ENV", ENV.to_hash.merge("GITLAB_TRACING" => "otlp://localhost:4318"))
      end

      it "delegates to OpenTelemetry::Trace.current_span" do
      fake_span = double("span")
      allow(OpenTelemetry::Trace).to receive(:current_span).and_return(fake_span)
        expect(described_class.current_span).not_to be_nil
      end
    end

      expect(described_class.current_span).to eq(fake_span)
    context "when using OpenTracing" do
      before do
        stub_const("ENV", ENV.to_hash.merge("GITLAB_TRACING" => "opentracing://jaeger"))
      end

      it "returns nil" do
        expect(described_class.current_span).to be_nil
      end
    end
  end