Skip to content

Commit

Permalink
feat: Faraday Minimum v1.0
Browse files Browse the repository at this point in the history
Faraday pre-1.0 is no longer receiving updates.
  • Loading branch information
arielvalentin committed Nov 24, 2024
1 parent 0a8151a commit 2d56edf
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 33 deletions.
2 changes: 1 addition & 1 deletion instrumentation/faraday/Appraisals
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#
# SPDX-License-Identifier: Apache-2.0

%w[0.17.6 1.0 2.0].each do |version|
%w[1.0 2.0].each do |version|
appraise "faraday-#{version}" do
gem 'faraday', "~> #{version}"
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,18 @@ module Faraday
# The Instrumentation class contains logic to detect and install the Faraday
# instrumentation
class Instrumentation < OpenTelemetry::Instrumentation::Base
MINIMUM_VERSION = Gem::Version.new('1.0')

install do |_config|
require_dependencies
register_tracer_middleware
use_middleware_by_default
end

compatible do
gem_version >= MINIMUM_VERSION
end

present do
defined?(::Faraday)
end
Expand All @@ -25,10 +31,13 @@ class Instrumentation < OpenTelemetry::Instrumentation::Base

private

def gem_version
Gem::Version.new(::Faraday::VERSION)
end

def require_dependencies
require_relative 'middlewares/tracer_middleware'
require_relative 'patches/connection'
require_relative 'patches/rack_builder'
end

def register_tracer_middleware
Expand All @@ -38,11 +47,7 @@ def register_tracer_middleware
end

def use_middleware_by_default
if Gem::Version.new(::Faraday::VERSION) >= Gem::Version.new('1')
::Faraday::Connection.prepend(Patches::Connection)
else
::Faraday::RackBuilder.prepend(Patches::RackBuilder)
end
::Faraday::Connection.prepend(Patches::Connection)
end
end
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ module Patches
module Connection
# Wraps Faraday::Connection#initialize:
# https://github.com/lostisland/faraday/blob/ff9dc1d1219a1bbdba95a9a4cf5d135b97247ee2/lib/faraday/connection.rb#L62-L92
def initialize(*args)
def initialize(...)
super.tap do
use(:open_telemetry) unless builder.handlers.any? do |handler|
handler.klass == Middlewares::TracerMiddleware
Expand Down

This file was deleted.

0 comments on commit 2d56edf

Please sign in to comment.