opentelemetry-instrumentation-mysql2 0.18.0 → 0.20.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: 61e1097f36ce3b194cdf0df01e5669c9a6db74f6d5556adc9f29900cabab1d62
4
- data.tar.gz: a73c48dd8d12739d91a5dd28ad8cf86ff217d31fc1641b30fabd99ef8ba47628
3
+ metadata.gz: 1690259e4fa76fd5b47ed40623566ff95db2ff7a5725664b848659e99e8fd7aa
4
+ data.tar.gz: 9481697fefee3ff4510ef582baa3b6077896ba32c424e5e7d9ddac2975d31fdb
5
5
  SHA512:
6
- metadata.gz: 11e4c2378b2e6b8bcd77e6904911107a0df57e1782041c4cfdc98e3351f7e11086e069aeaeaf327dc608ea388e4639d0a8c4bee449909f9ff30733d56e27487a
7
- data.tar.gz: 9ba36566d8841a8fff30bcf09a23fe6aedc3dc43e19ca8967980b3699bece98ac2341c37cfbfa03632e3c65f7c9a8890c81bd6788cd277928fd467331ec7c108
6
+ metadata.gz: 9de39b45e35992bb4ab98c45255b1ae10c1fc1611c6f3fe9d22be36249f84723016ab9c5f2a67b7c6da0e4e68b94f72f27870ef1158b6d50c2dcb0f95cb2c59f
7
+ data.tar.gz: 6488cbd8592d7f56cc91db102d234b6de537bf11d98991412d0be860500184bcb1a4b6fe0a7d738b1eeb18cabd72dad82f0962a41e157003f7dbdc2e2298933c
data/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # Release History: opentelemetry-instrumentation-mysql2
2
2
 
3
+ ### v0.20.0 / 2021-12-01
4
+
5
+ * ADDED: Add default options config helper + env var config option support
6
+
7
+ ### v0.19.1 / 2021-09-29
8
+
9
+ * (No significant changes)
10
+
11
+ ### v0.19.0 / 2021-08-12
12
+
13
+ * BREAKING CHANGE: Add option for db.statement
14
+
15
+ * ADDED: Add option for db.statement
16
+ * DOCS: Update docs to rely more on environment variable configuration
17
+ * DOCS: Move to using new db_statement
18
+
19
+ ### v0.18.1 / 2021-06-23
20
+
21
+ * (No significant changes)
22
+
3
23
  ### v0.18.0 / 2021-05-21
4
24
 
5
25
  * ADDED: Updated API depedency for 1.0.0.rc1
data/README.md CHANGED
@@ -36,8 +36,8 @@ end
36
36
  OpenTelemetry::SDK.configure do |c|
37
37
  c.use 'OpenTelemetry::Instrumentation::Mysql2', {
38
38
  # The obfuscation of SQL in the db.statement attribute is disabled by default.
39
- # To enable, set enable_sql_obfuscation to true.
40
- enable_sql_obfuscation: false,
39
+ # To enable, set db_statement to :obfuscate.
40
+ db_statement: :obfuscate,
41
41
  }
42
42
  end
43
43
  ```
@@ -10,7 +10,15 @@ module OpenTelemetry
10
10
  # The Instrumentation class contains logic to detect and install the Mysql2
11
11
  # instrumentation
12
12
  class Instrumentation < OpenTelemetry::Instrumentation::Base
13
- install do |_config|
13
+ install do |config|
14
+ if config[:enable_sql_obfuscation]
15
+ config[:db_statement] = :obfuscate
16
+ OpenTelemetry.logger.warn(
17
+ 'Instrumentation mysql2 configuration option enable_sql_obfuscation has been deprecated,' \
18
+ 'use db_statement option instead'
19
+ )
20
+ end
21
+
14
22
  require_dependencies
15
23
  patch_client
16
24
  end
@@ -21,6 +29,7 @@ module OpenTelemetry
21
29
 
22
30
  option :peer_service, default: nil, validate: :string
23
31
  option :enable_sql_obfuscation, default: false, validate: :boolean
32
+ option :db_statement, default: :include, validate: %I[omit include obfuscate]
24
33
 
25
34
  private
26
35
 
@@ -51,11 +51,16 @@ module OpenTelemetry
51
51
  ].freeze
52
52
 
53
53
  def query(sql, options = {})
54
+ attributes = client_attributes
55
+ case config[:db_statement]
56
+ when :include
57
+ attributes['db.statement'] = sql
58
+ when :obfuscate
59
+ attributes['db.statement'] = obfuscate_sql(sql)
60
+ end
54
61
  tracer.in_span(
55
62
  database_span_name(sql),
56
- attributes: client_attributes.merge(
57
- 'db.statement' => obfuscate_sql(sql)
58
- ),
63
+ attributes: attributes,
59
64
  kind: :client
60
65
  ) do
61
66
  super(sql, options)
@@ -65,8 +70,6 @@ module OpenTelemetry
65
70
  private
66
71
 
67
72
  def obfuscate_sql(sql)
68
- return sql unless config[:enable_sql_obfuscation]
69
-
70
73
  if sql.size > 2000
71
74
  'SQL query too large to remove sensitive data ...'
72
75
  else
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Mysql2
10
- VERSION = '0.18.0'
10
+ VERSION = '0.20.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-mysql2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.0
4
+ version: 0.20.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-05-21 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.rc1
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.rc1
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.0
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.0
40
+ version: 0.19.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: appraisal
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,42 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 1.0.0.rc1
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: 1.0.0.rc1
110
+ version: '1.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: pry
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'
125
+ - !ruby/object:Gem::Dependency
126
+ name: pry-byebug
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
111
139
  - !ruby/object:Gem::Dependency
112
140
  name: rubocop
113
141
  requirement: !ruby/object:Gem::Requirement
@@ -185,10 +213,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby
185
213
  licenses:
186
214
  - Apache-2.0
187
215
  metadata:
188
- changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-mysql2/v0.18.0/file.CHANGELOG.html
216
+ changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-mysql2/v0.20.0/file.CHANGELOG.html
189
217
  source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/instrumentation/mysql2
190
218
  bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
191
- documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-mysql2/v0.18.0
219
+ documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-mysql2/v0.20.0
192
220
  post_install_message:
193
221
  rdoc_options: []
194
222
  require_paths: