Sha256: 812bc05aac76c890b76be0baa4621bca034609587f45b82638e4636862f928e5
Contents?: true
Size: 1.67 KB
Versions: 10
Compression:
Stored size: 1.67 KB
Contents
# typed: ignore # Copyright (c) 2015 Sqreen. All Rights Reserved. # Please refer to our terms for more information: https://www.sqreen.com/terms.html 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
10 entries across 10 versions & 1 rubygems