opentelemetry-instrumentation-active_record 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a55434976a5ba204e32e46913ee4ab5a7653060e18fb22b87b28cd2551d4b8f2
4
- data.tar.gz: 71fc97b9d03c4952c2fb6e2325158aa0f4045c1c3766f60058927d5f251d090c
3
+ metadata.gz: 6a0a2a81d85b0b8ebcfde872b4fe3b4f9b85426624952c0882ed1a6e22530bd4
4
+ data.tar.gz: ba39f10def3f05ed1578b1e555bbf1083d0dbdcd30bec5225db1e8f5c383941b
5
5
  SHA512:
6
- metadata.gz: 7d88fe43aba0a4887b95e1fe5600fcc365222597e539f0bfca8ea21206f0480558bec5e3f398719e7142e6d2e4b6770e7a89ead4acbda3a19280173f89f186cf
7
- data.tar.gz: f00e3bf14b7b1b84d4d25e0cc4707366078cf0bccb0400e268b0864c69f4983ef654890167ebc376999afdaf3f88565a1376ecb8eff80c4b36059e2eea1a74f6
6
+ metadata.gz: 0a85a6c8454213a2d5fc059cb136b6e294e9976f900df85ae938942538d41768c9ab95bee5a1e96af6c283a39c126d18572cedc20e7f62a69eb4dce496f589e1
7
+ data.tar.gz: 071ce33dd775bdcbf2d34d0da122d38b80589314ae39ed8859876527d8fa59d855a2ffc7a1e4486098ac16051aa55c96672085bb591d6c97a871ef4902c41a17
data/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Release History: opentelemetry-instrumentation-active_record
2
2
 
3
+ ### v0.3.0 / 2022-05-02
4
+
5
+ * ADDED: Make ActiveRecord 7 compatible
6
+ * FIXED: RubyGems Fallback
7
+
8
+ ### v0.2.2 / 2021-12-01
9
+
10
+ * FIXED: Add max supported version for active record
11
+
12
+ ### v0.2.1 / 2021-09-29
13
+
14
+ * (No significant changes)
15
+
3
16
  ### v0.2.0 / 2021-09-29
4
17
 
5
18
  * ADDED: Trace update_all and delete_all calls in ActiveRecord
@@ -10,6 +10,7 @@ module OpenTelemetry
10
10
  # The Instrumentation class contains logic to detect and install the ActiveRecord instrumentation
11
11
  class Instrumentation < OpenTelemetry::Instrumentation::Base
12
12
  MINIMUM_VERSION = Gem::Version.new('5.2.0')
13
+ MAX_MAJOR_VERSION = 7
13
14
 
14
15
  install do |_config|
15
16
  require_dependencies
@@ -21,7 +22,11 @@ module OpenTelemetry
21
22
  end
22
23
 
23
24
  compatible do
24
- gem_version >= MINIMUM_VERSION
25
+ # We know that releases after MAX_MAJOR_VERSION are unstable so we
26
+ # check the major version number of the gem installed to make sure we
27
+ # do not install on a pre-release or full release of the latest
28
+ # if it exceeds the MAX_MAJOR_VERSION version.
29
+ gem_version >= MINIMUM_VERSION && gem_version.segments[0] <= MAX_MAJOR_VERSION
25
30
  end
26
31
 
27
32
  private
@@ -31,7 +36,7 @@ module OpenTelemetry
31
36
  end
32
37
 
33
38
  def gem_version
34
- Gem.loaded_specs['activerecord'].version
39
+ ::ActiveRecord.version
35
40
  end
36
41
 
37
42
  def patch
@@ -55,6 +60,7 @@ module OpenTelemetry
55
60
  end
56
61
 
57
62
  def require_dependencies
63
+ require 'ruby2_keywords'
58
64
  require_relative 'patches/querying'
59
65
  require_relative 'patches/persistence'
60
66
  require_relative 'patches/persistence_class_methods'
@@ -3,7 +3,6 @@
3
3
  # Copyright The OpenTelemetry Authors
4
4
  #
5
5
  # SPDX-License-Identifier: Apache-2.0
6
-
7
6
  module OpenTelemetry
8
7
  module Instrumentation
9
8
  module ActiveRecord
@@ -19,39 +18,39 @@ module OpenTelemetry
19
18
 
20
19
  # Contains ActiveRecord::Persistence::ClassMethods to be patched
21
20
  module ClassMethods
22
- def insert(attributes, returning: nil, unique_by: nil)
21
+ ruby2_keywords def insert(*args)
23
22
  tracer.in_span("#{self}.insert") do
24
- super
23
+ super(*args)
25
24
  end
26
25
  end
27
26
 
28
- def insert_all(attributes, returning: nil, unique_by: nil)
27
+ ruby2_keywords def insert_all(*args)
29
28
  tracer.in_span("#{self}.insert_all") do
30
- super
29
+ super(*args)
31
30
  end
32
31
  end
33
32
 
34
- def insert!(attributes, returning: nil)
33
+ ruby2_keywords def insert!(*args)
35
34
  tracer.in_span("#{self}.insert!") do
36
- super
35
+ super(*args)
37
36
  end
38
37
  end
39
38
 
40
- def insert_all!(attributes, returning: nil)
39
+ ruby2_keywords def insert_all!(*args)
41
40
  tracer.in_span("#{self}.insert_all!") do
42
- super
41
+ super(*args)
43
42
  end
44
43
  end
45
44
 
46
- def upsert(attributes, returning: nil, unique_by: nil)
45
+ ruby2_keywords def upsert(*args)
47
46
  tracer.in_span("#{self}.upsert") do
48
- super
47
+ super(*args)
49
48
  end
50
49
  end
51
50
 
52
- def upsert_all(attributes, returning: nil, unique_by: nil)
51
+ ruby2_keywords def upsert_all(*args)
53
52
  tracer.in_span("#{self}.upsert_all") do
54
- super
53
+ super(*args)
55
54
  end
56
55
  end
57
56
 
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module ActiveRecord
10
- VERSION = '0.2.0'
10
+ VERSION = '0.3.0'
11
11
  end
12
12
  end
13
13
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opentelemetry-instrumentation-active_record
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenTelemetry Authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-29 00:00:00.000000000 Z
11
+ date: 2022-05-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opentelemetry-api
@@ -16,28 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.0.0.rc3
19
+ version: '1.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.0.0.rc3
26
+ version: '1.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: opentelemetry-instrumentation-base
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.18.2
33
+ version: 0.20.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.18.2
40
+ version: 0.20.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: ruby2_keywords
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: activerecord
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -98,16 +112,16 @@ dependencies:
98
112
  name: opentelemetry-sdk
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
- - - ">="
115
+ - - "~>"
102
116
  - !ruby/object:Gem::Version
103
- version: '0'
117
+ version: '1.0'
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
- - - ">="
122
+ - - "~>"
109
123
  - !ruby/object:Gem::Version
110
- version: '0'
124
+ version: '1.0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: rake
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -219,10 +233,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby
219
233
  licenses:
220
234
  - Apache-2.0
221
235
  metadata:
222
- changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-active_record/v0.2.0/file.CHANGELOG.html
236
+ changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-active_record/v0.3.0/file.CHANGELOG.html
223
237
  source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/instrumentation/active_record
224
238
  bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
225
- documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-active_record/v0.2.0
239
+ documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-active_record/v0.3.0
226
240
  post_install_message:
227
241
  rdoc_options: []
228
242
  require_paths: