adapt to datadog gem upcoming changes

names changes from ddtrace to datadog, as well as namespace
This commit is contained in:
HoneyryderChuck 2024-03-22 13:21:49 +00:00
parent b234465219
commit 3d9779cc63
3 changed files with 22 additions and 12 deletions

View File

@ -10,7 +10,7 @@ gem "rake", "~> 13.0"
group :test do
if RUBY_VERSION >= "3.2.0"
# load from branch while there's no official release
gem "ddtrace", github: "DataDog/dd-trace-rb", branch: "2.0"
gem "datadog", github: "DataDog/dd-trace-rb", branch: "2.0"
else
gem "ddtrace"
end

View File

@ -1,10 +1,18 @@
# frozen_string_literal: true
begin
# upcoming 2.0
require "datadog"
rescue LoadError
require "ddtrace"
end
require "test_helper"
require "support/http_helpers"
require "httpx/adapters/datadog"
DATADOG_VERSION = defined?(DDTrace) ? DDTrace::VERSION : Datadog::VERSION
class DatadogTest < Minitest::Test
include HTTPHelpers
@ -203,7 +211,7 @@ class DatadogTest < Minitest::Test
end
def verify_instrumented_request(response, verb:, uri:, span: fetch_spans.first, service: "httpx", error: nil)
if defined?(::DDTrace) && Gem::Version.new(::DDTrace::VERSION::STRING) >= Gem::Version.new("2.0.0.dev")
if Gem::Version.new(DATADOG_VERSION::STRING) >= Gem::Version.new("2.0.0.dev")
assert span.type == "http"
else
assert span.span_type == "http"
@ -216,7 +224,7 @@ class DatadogTest < Minitest::Test
assert span.get_tag("http.method") == verb
assert span.get_tag("http.url") == uri.path
error_tag = if defined?(::DDTrace) && Gem::Version.new(::DDTrace::VERSION::STRING) >= Gem::Version.new("1.8.0")
error_tag = if Gem::Version.new(DATADOG_VERSION::STRING) >= Gem::Version.new("1.8.0")
"error.message"
else
"error.msg"
@ -250,7 +258,7 @@ class DatadogTest < Minitest::Test
def verify_distributed_headers(response, span: fetch_spans.first, sampling_priority: 1)
request = response.instance_variable_get(:@request)
if defined?(::DDTrace) && Gem::Version.new(::DDTrace::VERSION::STRING) >= Gem::Version.new("2.0.0.dev")
if Gem::Version.new(DATADOG_VERSION::STRING) >= Gem::Version.new("2.0.0.dev")
assert request.headers["x-datadog-parent-id"] == span.id.to_s
else
assert request.headers["x-datadog-parent-id"] == span.span_id.to_s
@ -259,7 +267,7 @@ class DatadogTest < Minitest::Test
assert request.headers["x-datadog-sampling-priority"] == sampling_priority.to_s
end
if defined?(::DDTrace) && Gem::Version.new(::DDTrace::VERSION::STRING) >= Gem::Version.new("1.17.0")
if Gem::Version.new(DATADOG_VERSION::STRING) >= Gem::Version.new("1.17.0")
def trace_id(span)
Datadog::Tracing::Utils::TraceId.to_low_order(span.trace_id).to_s
end

View File

@ -7,6 +7,8 @@ require "datadog/tracing/contrib/patcher"
module Datadog::Tracing
module Contrib
module HTTPX
DATADOG_VERSION = defined?(::DDTrace) ? ::DDTrace::VERSION : ::Datadog::VERSION
METADATA_MODULE = Datadog::Tracing::Metadata
TYPE_OUTBOUND = Datadog::Tracing::Metadata::Ext::HTTP::TYPE_OUTBOUND
@ -140,7 +142,7 @@ module Datadog::Tracing
@configuration ||= Datadog.configuration.tracing[:httpx, @request.uri.host]
end
if Gem::Version.new(DDTrace::VERSION::STRING) >= Gem::Version.new("2.0.0.dev")
if Gem::Version.new(DATADOG_VERSION::STRING) >= Gem::Version.new("2.0.0.dev")
def propagate_trace_http(digest, headers)
Datadog::Tracing::Contrib::HTTP.inject(digest, headers)
end
@ -219,7 +221,7 @@ module Datadog::Tracing
option :distributed_tracing, default: true
option :split_by_domain, default: false
if Gem::Version.new(DDTrace::VERSION::STRING) >= Gem::Version.new("1.13.0")
if Gem::Version.new(DATADOG_VERSION::STRING) >= Gem::Version.new("1.13.0")
option :enabled do |o|
o.type :bool
o.env "DD_TRACE_HTTPX_ENABLED"
@ -262,25 +264,25 @@ module Datadog::Tracing
"httpx"
)
end
o.lazy unless Gem::Version.new(DDTrace::VERSION::STRING) >= Gem::Version.new("1.13.0")
o.lazy unless Gem::Version.new(DATADOG_VERSION::STRING) >= Gem::Version.new("1.13.0")
end
else
option :service_name do |o|
o.default do
ENV.fetch("DD_TRACE_HTTPX_SERVICE_NAME", "httpx")
end
o.lazy unless Gem::Version.new(DDTrace::VERSION::STRING) >= Gem::Version.new("1.13.0")
o.lazy unless Gem::Version.new(DATADOG_VERSION::STRING) >= Gem::Version.new("1.13.0")
end
end
option :distributed_tracing, default: true
if Gem::Version.new(DDTrace::VERSION::STRING) >= Gem::Version.new("1.15.0")
if Gem::Version.new(DATADOG_VERSION::STRING) >= Gem::Version.new("1.15.0")
option :error_handler do |o|
o.type :proc
o.default_proc(&DEFAULT_ERROR_HANDLER)
end
elsif Gem::Version.new(DDTrace::VERSION::STRING) >= Gem::Version.new("1.13.0")
elsif Gem::Version.new(DATADOG_VERSION::STRING) >= Gem::Version.new("1.13.0")
option :error_handler do |o|
o.type :proc
o.experimental_default_proc(&DEFAULT_ERROR_HANDLER)