Sha256: 57623eb27a967d38690650c66d3a94023ba475f2ad39c407d613d3ae53ff40b2
Contents?: true
Size: 1.52 KB
Versions: 6
Compression:
Stored size: 1.52 KB
Contents
require 'sqreen/ecosystem/module_api' require 'sqreen/ecosystem/module_api/instrumentation' require 'sqreen/ecosystem/module_api/message_producer' require 'sqreen/ecosystem/module_api/tracing_id_generation' require 'sqreen/ecosystem/module_api/tracing/client_data' module Sqreen module Ecosystem module Databases class Mysql include ModuleApi::Instrumentation include ModuleApi::MessageProducer def setup advice = wrap_for_interest(DatabaseConnectionData, &method(:after_advice)) instrument 'Mysql2::Client#connect', after: advice end private # instance is of type +Mysql2::Client+ # VALUE rb_mysql_connect(VALUE self, VALUE user, VALUE pass, VALUE host, VALUE port, VALUE database, # VALUE socket, VALUE flags, VALUE conn_attrs) { # @param [Sqreen::Graft::CallbackCall] def after_advice(call, _ball) args = call.args # build & submit signal signal = DatabaseConnectionData.new(transport: :mysql) user = args[0] host = args[2] port = args[3] db = args[4] socket = args[5] if socket && !socket.empty? signal.unix_socket = socket signal.host = 'localhost' signal.ip = '::1' else signal.host = host end signal.port = port if port != 0 signal.username = user signal.db = db signal end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems