diff --git a/instrumentation/mysql2/lib/opentelemetry/instrumentation/mysql2/instrumentation.rb b/instrumentation/mysql2/lib/opentelemetry/instrumentation/mysql2/instrumentation.rb index 6bb5d4013b..72116bb315 100644 --- a/instrumentation/mysql2/lib/opentelemetry/instrumentation/mysql2/instrumentation.rb +++ b/instrumentation/mysql2/lib/opentelemetry/instrumentation/mysql2/instrumentation.rb @@ -10,15 +10,7 @@ module Mysql2 # The Instrumentation class contains logic to detect and install the Mysql2 # instrumentation class Instrumentation < OpenTelemetry::Instrumentation::Base - install do |config| - if config[:enable_sql_obfuscation] - config[:db_statement] = :obfuscate - OpenTelemetry.logger.warn( - 'Instrumentation mysql2 configuration option enable_sql_obfuscation has been deprecated,' \ - 'use db_statement option instead' - ) - end - + install do |_config| require_dependencies patch_client end @@ -28,7 +20,6 @@ class Instrumentation < OpenTelemetry::Instrumentation::Base end option :peer_service, default: nil, validate: :string - option :enable_sql_obfuscation, default: false, validate: :boolean option :db_statement, default: :include, validate: %I[omit include obfuscate] option :span_name, default: :statement_type, validate: %I[statement_type db_name db_operation_and_name] diff --git a/instrumentation/mysql2/test/opentelemetry/instrumentation/mysql2/instrumentation_test.rb b/instrumentation/mysql2/test/opentelemetry/instrumentation/mysql2/instrumentation_test.rb index e9c87745b3..c5550e488c 100644 --- a/instrumentation/mysql2/test/opentelemetry/instrumentation/mysql2/instrumentation_test.rb +++ b/instrumentation/mysql2/test/opentelemetry/instrumentation/mysql2/instrumentation_test.rb @@ -192,57 +192,6 @@ end end - describe 'when enable_sql_obfuscation is enabled' do - let(:config) { { enable_sql_obfuscation: true } } - - it 'is compatible with legacy enable_sql_obfuscation option' do - sql = "SELECT * from users where users.id = 1 and users.email = 'test@test.com'" - obfuscated_sql = 'SELECT * from users where users.id = ? and users.email = ?' - expect do - client.query(sql) - end.must_raise Mysql2::Error - - _(span.attributes['db.system']).must_equal 'mysql' - _(span.attributes['db.name']).must_equal 'mysql' - _(span.name).must_equal 'select' - _(span.attributes['db.statement']).must_equal obfuscated_sql - _(span.attributes['net.peer.name']).must_equal host.to_s - _(span.attributes['net.peer.port']).must_equal port.to_s - end - - it 'encodes invalid byte sequences for db.statement' do - # \255 is off-limits https://en.wikipedia.org/wiki/UTF-8#Codepage_layout - sql = "SELECT * from users where users.id = 1 and users.email = 'test@test.com\255'" - obfuscated_sql = 'SELECT * from users where users.id = ? and users.email = ?' - - expect do - client.query(sql) - end.must_raise Mysql2::Error - - _(span.name).must_equal 'mysql' - _(span.attributes['db.statement']).must_equal obfuscated_sql - end - end - - describe 'when enable_sql_obfuscation is enabled with db_statement set' do - let(:config) { { enable_sql_obfuscation: true, db_statement: :omit } } - - it 'respects enable_sql_obfuscation when enabled' do - sql = "SELECT * from users where users.id = 1 and users.email = 'test@test.com'" - obfuscated_sql = 'SELECT * from users where users.id = ? and users.email = ?' - expect do - client.query(sql) - end.must_raise Mysql2::Error - - _(span.attributes['db.system']).must_equal 'mysql' - _(span.attributes['db.name']).must_equal 'mysql' - _(span.name).must_equal 'select' - _(span.attributes['db.statement']).must_equal obfuscated_sql - _(span.attributes['net.peer.name']).must_equal host.to_s - _(span.attributes['net.peer.port']).must_equal port.to_s - end - end - describe 'when db_statement is configured via environment variable' do describe 'when db_statement set as omit' do it 'omits db.statement attribute' do diff --git a/instrumentation/pg/example/pg.rb b/instrumentation/pg/example/pg.rb index 893d9f9618..a2b923223f 100644 --- a/instrumentation/pg/example/pg.rb +++ b/instrumentation/pg/example/pg.rb @@ -7,7 +7,7 @@ ENV['OTEL_TRACES_EXPORTER'] = 'console' OpenTelemetry::SDK.configure do |c| - c.use 'OpenTelemetry::Instrumentation::PG', enable_sql_obfuscation: true + c.use 'OpenTelemetry::Instrumentation::PG' end conn = PG::Connection.open( diff --git a/instrumentation/pg/lib/opentelemetry/instrumentation/pg/instrumentation.rb b/instrumentation/pg/lib/opentelemetry/instrumentation/pg/instrumentation.rb index 528a3b3602..e0321d40f8 100644 --- a/instrumentation/pg/lib/opentelemetry/instrumentation/pg/instrumentation.rb +++ b/instrumentation/pg/lib/opentelemetry/instrumentation/pg/instrumentation.rb @@ -11,23 +11,7 @@ module PG class Instrumentation < OpenTelemetry::Instrumentation::Base MINIMUM_VERSION = Gem::Version.new('1.1.0') - install do |config| - if config[:enable_sql_obfuscation] - config[:db_statement] = :obfuscate - OpenTelemetry.logger.warn( - 'Instrumentation pg configuration option enable_sql_obfuscation has been deprecated,' \ - 'use db_statement option instead' - ) - end - - unless config[:enable_statement_attribute] - config[:db_statement] = :omit - OpenTelemetry.logger.warn( - 'Instrumentation pg configuration option enable_statement_attribute has been deprecated,' \ - 'use db_statement option instead' - ) - end - + install do |_config| require_dependencies patch_client end @@ -41,8 +25,6 @@ class Instrumentation < OpenTelemetry::Instrumentation::Base end option :peer_service, default: nil, validate: :string - option :enable_sql_obfuscation, default: false, validate: :boolean - option :enable_statement_attribute, default: true, validate: :boolean option :db_statement, default: :include, validate: %I[omit include obfuscate] private diff --git a/instrumentation/pg/test/opentelemetry/instrumentation/pg/instrumentation_test.rb b/instrumentation/pg/test/opentelemetry/instrumentation/pg/instrumentation_test.rb index 3f4df80d4c..adee5ede7a 100644 --- a/instrumentation/pg/test/opentelemetry/instrumentation/pg/instrumentation_test.rb +++ b/instrumentation/pg/test/opentelemetry/instrumentation/pg/instrumentation_test.rb @@ -291,26 +291,6 @@ end end - describe 'when enable_statement_attribute is false' do - let(:config) { { enable_statement_attribute: false } } - - it 'does not include SQL statement as db.statement attribute' do - sql = "SELECT * from users where users.id = 1 and users.email = 'test@test.com'" - expect do - client.exec(sql) - end.must_raise PG::UndefinedTable - - _(span.attributes['db.system']).must_equal 'postgresql' - _(span.attributes['db.name']).must_equal 'postgres' - _(span.name).must_equal 'SELECT postgres' - _(span.attributes['db.operation']).must_equal 'SELECT' - _(span.attributes['net.peer.name']).must_equal host.to_s - _(span.attributes['net.peer.port']).must_equal port.to_i - - _(span.attributes['db.statement']).must_be_nil - end - end - describe 'when using a database socket' do let(:host) { nil } let(:port) { nil }