module OneApm::Agent::Datastore::Mongo::CommandFormatter
Constants
- OA_BLACKLISTED_KEYS
- OA_OBFUSCATE_KEYS
- OA_OBFUSCATE_NOSQL_KEYS
Public Class Methods
format(event, status)
click to toggle source
# File lib/one_apm/agent/datastore/mongo/command_formatter.rb, line 16 def self.format(event, status) return nil unless OneApm::Manager.config[:'mongo.capture_queries'] result = { :operation => event.command_name, :database => event.database_name, :collection => event.command.values.first, :command => event.command, :status => status } event.command.each do |key, value| next if OA_BLACKLISTED_KEYS.include?(key) if OA_OBFUSCATE_KEYS.include?(key) obfuscated = obfuscate(value) result[key] = obfuscated if obfuscated else result[key] = value end end result end
format_sql(event, status)
click to toggle source
# File lib/one_apm/agent/datastore/mongo/command_formatter.rb, line 38 def self.format_sql(event, status) return nil unless OneApm::Manager.config[:'mongo.capture_queries'] header = "db.#{event.command.values.first}.#{event.command_name}" obfuscate_sql = [] event.command.each do |key, value| if OA_OBFUSCATE_NOSQL_KEYS.include?(key) if value.is_a?(Array) value.each do |val| obfuscate_sql << "(#{obfuscate_json(val)})" end else obfuscate_sql << "(#{obfuscate_json(value)})" end end end header.concat(obfuscate_sql.join(", ")) end
obfuscate(statement)
click to toggle source
# File lib/one_apm/agent/datastore/mongo/command_formatter.rb, line 61 def self.obfuscate(statement) statement = Obfuscator.obfuscate_statement(statement) if OneApm::Manager.config[:'mongo.obfuscate_queries'] statement end
obfuscate_json(value)
click to toggle source
# File lib/one_apm/agent/datastore/mongo/command_formatter.rb, line 56 def self.obfuscate_json value obfuscate_value = obfuscate(value) obfuscate_value.to_s.gsub('=>', ':').gsub('"', '') if obfuscate_value end