opentelemetry-instrumentation-mysql2 0.19.1 → 0.21.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +13 -0
- data/README.md +11 -0
- data/lib/opentelemetry/instrumentation/mysql2/instrumentation.rb +1 -1
- data/lib/opentelemetry/instrumentation/mysql2/patches/client.rb +1 -1
- data/lib/opentelemetry/instrumentation/mysql2/version.rb +1 -1
- data/lib/opentelemetry/instrumentation/mysql2.rb +39 -0
- metadata +23 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4289cd2222f7e02809e775d1ebe4201fb87abbdd3eca443230c6b3d82ff338d2
|
4
|
+
data.tar.gz: 67e7e40dac313faac5fc2be2ed7638868c729516b869e5721c26ce16ddaba2fc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c8768bcc3400a86832cdce83a82e390ec9cbe4f614a76621a108e5f28971e824781c4e08848177c3af9cae4bd662539c4845767aaf27fcb6a484ebb513fe45b
|
7
|
+
data.tar.gz: 141513bd59aec67545022a4369d0e437760687d36c36ccfb0795c7e00595810beba59c1af45cfa3ec81af4faa03bc7f9d1214d7871d194ff7e9e234cd00cee8b
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,18 @@
|
|
1
1
|
# Release History: opentelemetry-instrumentation-mysql2
|
2
2
|
|
3
|
+
### v0.21.0 / 2022-06-09
|
4
|
+
|
5
|
+
* Upgrading Base dependency version
|
6
|
+
* FIXED: Broken test file requirements
|
7
|
+
|
8
|
+
### v0.20.1 / 2022-05-03
|
9
|
+
|
10
|
+
* ADDED: `with_attributes` method for context propagation
|
11
|
+
|
12
|
+
### v0.20.0 / 2021-12-01
|
13
|
+
|
14
|
+
* ADDED: Add default options config helper + env var config option support
|
15
|
+
|
3
16
|
### v0.19.1 / 2021-09-29
|
4
17
|
|
5
18
|
* (No significant changes)
|
data/README.md
CHANGED
@@ -30,6 +30,17 @@ OpenTelemetry::SDK.configure do |c|
|
|
30
30
|
end
|
31
31
|
```
|
32
32
|
|
33
|
+
The `mysql2` instrumentation allows the user to supply additional attributes via the `with_attributes` method. This makes it possible to supply additional attributes on mysql2 spans. Attributes supplied in `with_attributes` supersede those automatically generated within `mysql2`'s automatic instrumentation. If you supply a `db.statement` attribute in `with_attributes`, this library's `:db_statement` configuration will not be applied.
|
34
|
+
|
35
|
+
```ruby
|
36
|
+
require 'opentelemetry/instrumentation/mysql2'
|
37
|
+
|
38
|
+
client = Mysql2::Client.new(:host => "localhost", :username => "root")
|
39
|
+
OpenTelemetry::Instrumentation::Mysql2.with_attributes('pizzatoppings' => 'mushrooms') do
|
40
|
+
client.query("SELECT 1")
|
41
|
+
end
|
42
|
+
```
|
43
|
+
|
33
44
|
### Configuration options
|
34
45
|
|
35
46
|
```ruby
|
@@ -29,7 +29,7 @@ module OpenTelemetry
|
|
29
29
|
|
30
30
|
option :peer_service, default: nil, validate: :string
|
31
31
|
option :enable_sql_obfuscation, default: false, validate: :boolean
|
32
|
-
option :db_statement, default: :include, validate:
|
32
|
+
option :db_statement, default: :include, validate: %I[omit include obfuscate]
|
33
33
|
|
34
34
|
private
|
35
35
|
|
@@ -11,6 +11,45 @@ module OpenTelemetry
|
|
11
11
|
module Instrumentation
|
12
12
|
# Contains the OpenTelemetry instrumentation for the Mysql2 gem
|
13
13
|
module Mysql2
|
14
|
+
extend self
|
15
|
+
|
16
|
+
CURRENT_ATTRIBUTES_KEY = Context.create_key('mysql-attributes-hash')
|
17
|
+
|
18
|
+
private_constant :CURRENT_ATTRIBUTES_KEY
|
19
|
+
|
20
|
+
# Returns the attributes hash representing the Mysql2 context found
|
21
|
+
# in the optional context or the current context if none is provided.
|
22
|
+
#
|
23
|
+
# @param [optional Context] context The context to lookup the current
|
24
|
+
# attributes hash. Defaults to Context.current
|
25
|
+
def attributes(context = nil)
|
26
|
+
context ||= Context.current
|
27
|
+
context.value(CURRENT_ATTRIBUTES_KEY) || {}
|
28
|
+
end
|
29
|
+
|
30
|
+
# Returns a context containing the merged attributes hash, derived from the
|
31
|
+
# optional parent context, or the current context if one was not provided.
|
32
|
+
#
|
33
|
+
# @param [optional Context] context The context to use as the parent for
|
34
|
+
# the returned context
|
35
|
+
def context_with_attributes(attributes_hash, parent_context: Context.current)
|
36
|
+
attributes_hash = attributes(parent_context).merge(attributes_hash)
|
37
|
+
parent_context.set_value(CURRENT_ATTRIBUTES_KEY, attributes_hash)
|
38
|
+
end
|
39
|
+
|
40
|
+
# Activates/deactivates the merged attributes hash within the current Context,
|
41
|
+
# which makes the "current attributes hash" available implicitly.
|
42
|
+
#
|
43
|
+
# On exit, the attributes hash that was active before calling this method
|
44
|
+
# will be reactivated.
|
45
|
+
#
|
46
|
+
# @param [Span] span the span to activate
|
47
|
+
# @yield [Hash, Context] yields attributes hash and a context containing the
|
48
|
+
# attributes hash to the block.
|
49
|
+
def with_attributes(attributes_hash)
|
50
|
+
attributes_hash = attributes.merge(attributes_hash)
|
51
|
+
Context.with_value(CURRENT_ATTRIBUTES_KEY, attributes_hash) { |c, h| yield h, c }
|
52
|
+
end
|
14
53
|
end
|
15
54
|
end
|
16
55
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opentelemetry-instrumentation-mysql2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.21.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:
|
11
|
+
date: 2022-06-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opentelemetry-api
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
33
|
+
version: 0.21.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.
|
40
|
+
version: 0.21.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: appraisal
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,14 +100,28 @@ dependencies:
|
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '1.
|
103
|
+
version: '1.1'
|
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: '1.
|
110
|
+
version: '1.1'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: opentelemetry-test-helpers
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: pry
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -213,10 +227,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby
|
|
213
227
|
licenses:
|
214
228
|
- Apache-2.0
|
215
229
|
metadata:
|
216
|
-
changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-mysql2/v0.
|
230
|
+
changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-mysql2/v0.21.0/file.CHANGELOG.html
|
217
231
|
source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/instrumentation/mysql2
|
218
232
|
bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
|
219
|
-
documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-mysql2/v0.
|
233
|
+
documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-mysql2/v0.21.0
|
220
234
|
post_install_message:
|
221
235
|
rdoc_options: []
|
222
236
|
require_paths:
|
@@ -225,7 +239,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
225
239
|
requirements:
|
226
240
|
- - ">="
|
227
241
|
- !ruby/object:Gem::Version
|
228
|
-
version: 2.
|
242
|
+
version: 2.6.0
|
229
243
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
230
244
|
requirements:
|
231
245
|
- - ">="
|