Sha256: 304538ed9dd5fd1411b76d068090c445106501a225dbfb971becce9106a0073d
Contents?: true
Size: 1.6 KB
Versions: 10
Compression:
Stored size: 1.6 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/databases/database_connection_data' module Sqreen module Ecosystem module Databases class Postgres include ModuleApi::Instrumentation include ModuleApi::MessageProducer def setup advice = wrap_for_interest(DatabaseConnectionData, &method(:after_advice)) instrument 'PG::Connection#initialize', after: advice end private # instance is of type +PG::Connection+ # > c = PG::Connection.new(host: '172.17.0.2', password: 'mysecretpassword', user: 'postgres') # => #<PG::Connection:0x000055b44d077d10> # > %i{host port user db}.map { |m| c.send m } # => ["172.17.0.2", 5432, "postgres", "postgres"] def after_advice(call, _ball) conn = call.instance # build & submit signal signal = DatabaseConnectionData.new(transport: :postgres) host = conn.host if host if host.include?('/') signal.unix_socket = host signal.host = 'localhost' signal.ip = '::1' else signal.host = host end end signal.port = conn.port signal.username = conn.user signal.db = conn.db signal end end end end end
Version data entries
10 entries across 10 versions & 1 rubygems