opentelemetry-instrumentation-active_record 0.1.0 → 0.2.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0b0625bdb64f872d8a0c7f4e6437020b1b8810a4db298bcfba37d7ea46c1b605
4
- data.tar.gz: e1f2e726af346b7f1b9d86e0699abd4b5f4f38eba29b2d7674cb944369b3ff68
3
+ metadata.gz: 5f45fc126930cb5135a9ab42d14cf285050c7e9b207c8d584c098848100dfd68
4
+ data.tar.gz: cb43858ecd8428af9ebc579298047087e1987c7d5d86ffa87027739732a0ef64
5
5
  SHA512:
6
- metadata.gz: d8e98756506d65c582dd19690a964df0230ac5d29d02c13e879c74593b1da7756885ff11519e281d34571bf8fb8b9629e28fd343b73b772e027d667a7be621b4
7
- data.tar.gz: 0c6213df64daffb64c7a0f05714b6359302407877ba1b6e9f764a62de593ca913d3d4106148e93ccd71280925db0969ec12f1b5494b9996c25e30abbdcd7af82
6
+ metadata.gz: 350d5b0dd98032a79ba02784e5f670d75944a6ee5f715220929c4bb06f176e1a3e8cf2c39493917814a4156b95acb055e333a19120e87dba0b3d8ca35b0a0a7a
7
+ data.tar.gz: 8e575d88192b7e9399bf194cd0e2b4cc3463e9302dfa1195c218a928ee1149ef47db99d8738e8a993703955bdeea5bab372d66d91c8949448f29da98bd9a42dc
data/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Release History: opentelemetry-instrumentation-active_record
2
2
 
3
+ ### v0.2.2 / 2021-12-01
4
+
5
+ * FIXED: Add max supported version for active record
6
+
7
+ ### v0.2.1 / 2021-09-29
8
+
9
+ * (No significant changes)
10
+
11
+ ### v0.2.0 / 2021-09-29
12
+
13
+ * ADDED: Trace update_all and delete_all calls in ActiveRecord
14
+ * FIXED: Remove Active Record instantiation patch
15
+
16
+ ### v0.1.1 / 2021-08-12
17
+
18
+ * (No significant changes)
19
+
3
20
  ### v0.1.0 / 2021-07-08
4
21
 
5
22
  * Initial release, adds instrumentation patches to querying and persistence methods.
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # OpenTelemetry ActiveRecord Instrumentation
2
2
 
3
- Todo: Add a description.
3
+ The Active Record instrumentation is a community-maintained instrumentation for the Active Record portion of the [Ruby on Rails][rails-home] web-application framework.
4
4
 
5
5
  ## How do I get started?
6
6
 
@@ -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 = 6
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
@@ -50,6 +55,8 @@ module OpenTelemetry
50
55
  ::ActiveRecord::Base.prepend(Patches::PersistenceInsertClassMethods) if insert_class_methods_supported?
51
56
  ::ActiveRecord::Base.prepend(Patches::TransactionsClassMethods)
52
57
  ::ActiveRecord::Base.prepend(Patches::Validations)
58
+
59
+ ::ActiveRecord::Relation.prepend(Patches::RelationPersistence)
53
60
  end
54
61
 
55
62
  def require_dependencies
@@ -59,6 +66,7 @@ module OpenTelemetry
59
66
  require_relative 'patches/persistence_insert_class_methods' if insert_class_methods_supported?
60
67
  require_relative 'patches/transactions_class_methods'
61
68
  require_relative 'patches/validations'
69
+ require_relative 'patches/relation_persistence'
62
70
  end
63
71
  end
64
72
  end
@@ -30,12 +30,6 @@ module OpenTelemetry
30
30
  end
31
31
  end
32
32
 
33
- def instantiate(attributes, column_types = {}, &block)
34
- tracer.in_span("#{self}.instantiate") do
35
- super
36
- end
37
- end
38
-
39
33
  def update(id = :all, attributes) # rubocop:disable Style/OptionalArguments
40
34
  tracer.in_span("#{self}.update") do
41
35
  super
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright The OpenTelemetry Authors
4
+ #
5
+ # SPDX-License-Identifier: Apache-2.0
6
+
7
+ module OpenTelemetry
8
+ module Instrumentation
9
+ module ActiveRecord
10
+ module Patches
11
+ # Module to prepend to ActiveRecord::Relation for instrumentation
12
+ module RelationPersistence
13
+ def update_all(*)
14
+ tracer.in_span("#{model.name}.update_all") do
15
+ super
16
+ end
17
+ end
18
+
19
+ def delete_all(*)
20
+ tracer.in_span("#{model.name}.delete_all") do
21
+ super
22
+ end
23
+ end
24
+
25
+ private
26
+
27
+ def tracer
28
+ ActiveRecord::Instrumentation.instance.tracer
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module ActiveRecord
10
- VERSION = '0.1.0'
10
+ VERSION = '0.2.2'
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.1.0
4
+ version: 0.2.2
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-07-08 00:00:00.000000000 Z
11
+ date: 2021-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opentelemetry-api
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.0.0.rc2
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.rc2
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.1
33
+ version: 0.19.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.1
40
+ version: 0.19.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: activerecord
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -98,16 +98,16 @@ dependencies:
98
98
  name: opentelemetry-sdk
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '0'
103
+ version: '1.0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '0'
110
+ version: '1.0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rake
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -211,6 +211,7 @@ files:
211
211
  - lib/opentelemetry/instrumentation/active_record/patches/persistence_class_methods.rb
212
212
  - lib/opentelemetry/instrumentation/active_record/patches/persistence_insert_class_methods.rb
213
213
  - lib/opentelemetry/instrumentation/active_record/patches/querying.rb
214
+ - lib/opentelemetry/instrumentation/active_record/patches/relation_persistence.rb
214
215
  - lib/opentelemetry/instrumentation/active_record/patches/transactions_class_methods.rb
215
216
  - lib/opentelemetry/instrumentation/active_record/patches/validations.rb
216
217
  - lib/opentelemetry/instrumentation/active_record/version.rb
@@ -218,10 +219,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby
218
219
  licenses:
219
220
  - Apache-2.0
220
221
  metadata:
221
- changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-active_record/v0.1.0/file.CHANGELOG.html
222
+ changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-active_record/v0.2.2/file.CHANGELOG.html
222
223
  source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/instrumentation/active_record
223
224
  bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
224
- documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-active_record/v0.1.0
225
+ documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-active_record/v0.2.2
225
226
  post_install_message:
226
227
  rdoc_options: []
227
228
  require_paths: