solarwinds_apm 7.0.1 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -64,9 +64,7 @@ module SolarWindsAPM
64
64
 
65
65
  response = nil
66
66
  ::OpenTelemetry::Common::Utilities.untraced do
67
- http = Net::HTTP.new(url.host, url.port)
68
- request = Net::HTTP::Get.new(url)
69
- response = http.request(request)
67
+ response = Net::HTTP.get_response(url)
70
68
  end
71
69
 
72
70
  raise 'Response returned non-200 status code' unless response&.code.to_i == 200
@@ -152,26 +150,23 @@ module SolarWindsAPM
152
150
  end
153
151
 
154
152
  def self.detect_ec2
155
- attribute = ::OpenTelemetry::Resource::Detector::AWS::EC2.detect
156
- SolarWindsAPM.logger.debug { "#{self.class}/#{__method__}] retrieved resource_attributes: #{attribute.instance_variable_get(:@attributes)}" }
157
- attribute
158
- rescue StandardError
159
- ::OpenTelemetry::SDK::Resources::Resource.create({})
153
+ run_opentelemetry_detector(::OpenTelemetry::Resource::Detector::AWS::EC2)
160
154
  end
161
155
 
162
156
  def self.detect_azure
163
- attribute = ::OpenTelemetry::Resource::Detector::Azure.detect
164
- SolarWindsAPM.logger.debug { "#{self.class}/#{__method__}] retrieved resource_attributes: #{attribute.instance_variable_get(:@attributes)}" }
165
- attribute
166
- rescue StandardError
167
- ::OpenTelemetry::SDK::Resources::Resource.create({})
157
+ run_opentelemetry_detector(::OpenTelemetry::Resource::Detector::Azure)
168
158
  end
169
159
 
170
160
  def self.detect_container
171
- attribute = ::OpenTelemetry::Resource::Detector::Container.detect
172
- SolarWindsAPM.logger.debug { "#{self.class}/#{__method__}] retrieved resource_attributes: #{attribute.instance_variable_get(:@attributes)}" }
161
+ run_opentelemetry_detector(::OpenTelemetry::Resource::Detector::Container)
162
+ end
163
+
164
+ def self.run_opentelemetry_detector(detector_class)
165
+ attribute = detector_class.detect
166
+ SolarWindsAPM.logger.debug { "[#{self.class}/#{__method__}] Detector #{detector_class} retrieved: #{attribute.instance_variable_get(:@attributes)}" }
173
167
  attribute
174
- rescue StandardError
168
+ rescue StandardError => e
169
+ SolarWindsAPM.logger.error { "[#{self.class}/#{__method__}] Detector #{detector_class} failed. Error: #{e.message}." }
175
170
  ::OpenTelemetry::SDK::Resources::Resource.create({})
176
171
  end
177
172
 
@@ -37,17 +37,24 @@ module SolarWindsAPM
37
37
  SolarWindsAPM.logger.debug { "[#{self.class}/#{__method__}] enabled_regexps: #{enabled_regexps&.inspect}" }
38
38
  SolarWindsAPM.logger.debug { "[#{self.class}/#{__method__}] disabled_regexps: #{disabled_regexps&.inspect}" }
39
39
 
40
- return false if disabled_regexps.is_a?(Array) && disabled_regexps.any? { |regex| regex.match?(@url_path) }
41
- return true if enabled_regexps.is_a?(Array) && enabled_regexps.any? { |regex| regex.match?(@url_path) }
42
- return false if disabled_regexps.is_a?(Array) && disabled_regexps.any? { |regex| regex.match?(span_layer) }
43
- return true if enabled_regexps.is_a?(Array) && enabled_regexps.any? { |regex| regex.match?(span_layer) }
40
+ return false if matches_any?(disabled_regexps, @url_path)
41
+ return true if matches_any?(enabled_regexps, @url_path)
42
+ return false if matches_any?(disabled_regexps, span_layer)
43
+ return true if matches_any?(enabled_regexps, span_layer)
44
44
 
45
45
  true
46
46
  rescue StandardError => e
47
47
  SolarWindsAPM.logger.warn do
48
- "[#{self.class}/#{__method__}] Could not determine tracing status for #{kind}. #{e.inspect}. transaction_settings regexps/extensions igonred/unfiltered."
48
+ "[#{self.class}/#{__method__}] Could not determine tracing status for #{@kind}. #{e.inspect}. transaction_settings regexps/extensions igonred/unfiltered."
49
49
  end
50
50
  true
51
51
  end
52
+
53
+ # Checks if a given string matches any regex in a list.
54
+ def matches_any?(regex_list, string_to_match)
55
+ return false unless regex_list.is_a?(Array)
56
+
57
+ regex_list.any? { |regex| regex.match?(string_to_match) }
58
+ end
52
59
  end
53
60
  end
@@ -12,8 +12,8 @@ module SolarWindsAPM
12
12
  # solarwinds_apm.gemspec during gem build process
13
13
  module Version
14
14
  MAJOR = 7 # breaking,
15
- MINOR = 0 # feature,
16
- PATCH = 1 # fix => BFF
15
+ MINOR = 1 # feature,
16
+ PATCH = 0 # fix => BFF
17
17
  PRE = nil
18
18
 
19
19
  STRING = [MAJOR, MINOR, PATCH, PRE].compact.join('.')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solarwinds_apm
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.1
4
+ version: 7.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maia Engeli
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2025-09-12 00:00:00.000000000 Z
14
+ date: 2025-10-21 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: opentelemetry-exporter-otlp
@@ -27,6 +27,20 @@ dependencies:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
29
  version: 0.29.1
30
+ - !ruby/object:Gem::Dependency
31
+ name: opentelemetry-exporter-otlp-logs
32
+ requirement: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 0.2.1
37
+ type: :runtime
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 0.2.1
30
44
  - !ruby/object:Gem::Dependency
31
45
  name: opentelemetry-exporter-otlp-metrics
32
46
  requirement: !ruby/object:Gem::Requirement
@@ -55,6 +69,34 @@ dependencies:
55
69
  - - ">="
56
70
  - !ruby/object:Gem::Version
57
71
  version: 0.31.0
72
+ - !ruby/object:Gem::Dependency
73
+ name: opentelemetry-instrumentation-logger
74
+ requirement: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: 0.1.0
79
+ type: :runtime
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: 0.1.0
86
+ - !ruby/object:Gem::Dependency
87
+ name: opentelemetry-logs-sdk
88
+ requirement: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 0.4.0
93
+ type: :runtime
94
+ prerelease: false
95
+ version_requirements: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: 0.4.0
58
100
  - !ruby/object:Gem::Dependency
59
101
  name: opentelemetry-metrics-sdk
60
102
  requirement: !ruby/object:Gem::Requirement