opentelemetry-instrumentation-pg 0.24.0 → 0.25.1

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: f0c59fa49902f08ce89443d4b062b10d31b6e8c6a7741b2069e32c974079c07f
4
- data.tar.gz: 5530b1f69417c3bbcb9219fba0f5ae34d71741fcac4d496c247bbdb88384fe0c
3
+ metadata.gz: d828ad6a0400bd997f99de77aeb6507bfc82d6ae4b0ca9744e166030bd23edee
4
+ data.tar.gz: 37e5eecb2567bfee13896d67e443a4f7f43ad02fc8864ce925f72e694fd3b924
5
5
  SHA512:
6
- metadata.gz: e52b890b4f7008ae18888810e58a5bba899d20877f446467ae98294d35f12cb4bf33bf6c8b94e50e5ffdec04982a308373b282e028f347cd99ff92d1b4f00e96
7
- data.tar.gz: 2748d5fd4e56cffafef5d7ea7ea21fcf9c0b7f3b289ed16a9be73ff590014e7f31ae8f71890a8724851051e09b493d6cd458a79a3eed8442a705c46f4feb14dc
6
+ metadata.gz: 4d9cf4613d90e9afeb0baedf84dc190168384490e8fab4cd36cdc4fbbe9a4754d2494a6f3293217ac7263c6973c277ba35f1b9ef3b629abf4a6709eb06380c4a
7
+ data.tar.gz: 5a2e6d37525c31c24e3868498e238d834bffd6abeeb91816816d82290dbf9d5ef5c2cfd08fe5b49f9a7245f2462b104b0171b7b6a2589e27e15b641063d29f63
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Release History: opentelemetry-instrumentation-pg
2
2
 
3
+ ### v0.25.1 / 2023-06-01
4
+
5
+ * FIXED: Regex non-match with obfuscation limit (issue #486)
6
+
7
+ ### v0.25.0 / 2023-05-25
8
+
9
+ * ADDED: Add config[:obfuscation_limit] to pg and mysql2
10
+
3
11
  ### v0.24.0 / 2023-04-17
4
12
 
5
13
  * BREAKING CHANGE: Drop support for EoL Ruby 2.7
@@ -26,6 +26,7 @@ module OpenTelemetry
26
26
 
27
27
  option :peer_service, default: nil, validate: :string
28
28
  option :db_statement, default: :include, validate: %I[omit include obfuscate]
29
+ option :obfuscation_limit, default: 2000, validate: :integer
29
30
 
30
31
  private
31
32
 
@@ -107,8 +107,14 @@ module OpenTelemetry
107
107
  def obfuscate_sql(sql)
108
108
  return sql unless config[:db_statement] == :obfuscate
109
109
 
110
- # Borrowed from opentelemetry-instrumentation-mysql2
111
- return 'SQL query too large to remove sensitive data ...' if sql.size > 2000
110
+ if sql.size > config[:obfuscation_limit]
111
+ first_match_index = sql.index(generated_postgres_regex)
112
+ truncation_message = "SQL truncated (> #{config[:obfuscation_limit]} characters)"
113
+ return truncation_message unless first_match_index
114
+
115
+ truncated_sql = sql[..first_match_index - 1]
116
+ return "#{truncated_sql}...\n#{truncation_message}"
117
+ end
112
118
 
113
119
  # From:
114
120
  # https://github.com/newrelic/newrelic-ruby-agent/blob/9787095d4b5b2d8fcaf2fdbd964ed07c731a8b6b/lib/new_relic/agent/database/obfuscator.rb
@@ -117,6 +123,9 @@ module OpenTelemetry
117
123
  obfuscated = 'Failed to obfuscate SQL query - quote characters remained after obfuscation' if PG::Constants::UNMATCHED_PAIRS_REGEX.match(obfuscated)
118
124
 
119
125
  obfuscated
126
+ rescue StandardError => e
127
+ OpenTelemetry.handle_error(message: 'Failed to obfuscate SQL', exception: e)
128
+ 'OpenTelemetry error: failed to obfuscate sql'
120
129
  end
121
130
 
122
131
  def generated_postgres_regex
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module PG
10
- VERSION = '0.24.0'
10
+ VERSION = '0.25.1'
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-pg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.24.0
4
+ version: 0.25.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenTelemetry Authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-17 00:00:00.000000000 Z
11
+ date: 2023-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opentelemetry-api
@@ -170,14 +170,14 @@ dependencies:
170
170
  requirements:
171
171
  - - "~>"
172
172
  - !ruby/object:Gem::Version
173
- version: 1.48.1
173
+ version: 1.50.2
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: 1.48.1
180
+ version: 1.50.2
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: simplecov
183
183
  requirement: !ruby/object:Gem::Requirement
@@ -243,10 +243,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby-contrib
243
243
  licenses:
244
244
  - Apache-2.0
245
245
  metadata:
246
- changelog_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-pg/0.24.0/file/CHANGELOG.md
246
+ changelog_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-pg/0.25.1/file/CHANGELOG.md
247
247
  source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/tree/main/instrumentation/pg
248
248
  bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/issues
249
- documentation_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-pg/0.24.0
249
+ documentation_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-pg/0.25.1
250
250
  post_install_message:
251
251
  rdoc_options: []
252
252
  require_paths: