stackify-ruby-apm 1.14.6 → 1.14.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 881446a181c81d422cdd81f2de4b4ccef409989171d96a53833bbe425f8105c0
|
|
4
|
+
data.tar.gz: ed31e237779e881ab4a57d7db2c4dcc7936bbe01b6af256ac4f53d9ae4c96054
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 293677dce94cf22be5e9a45fb1e7d9b7090fcbbe76a4a1bb679da719896d3ced92c5e34bc6ef0315ef8c05c3ee8621bcd51bac552e6f02bfce635aa13205f23e
|
|
7
|
+
data.tar.gz: 581165dd6ee9b10a02d206a7f985b6980ee1ddb46a9a2de05e194a6a9578596114823eff12cd4dab96277e82e533bb9c742c0ee72e109de2a8e819405fb5f4ce
|
|
@@ -14,7 +14,6 @@ module StackifyRubyAPM
|
|
|
14
14
|
|
|
15
15
|
def initialize(*args)
|
|
16
16
|
super(*args)
|
|
17
|
-
@type = nil
|
|
18
17
|
end
|
|
19
18
|
|
|
20
19
|
def normalize(_transaction, _name, payload)
|
|
@@ -25,11 +24,8 @@ module StackifyRubyAPM
|
|
|
25
24
|
name = payload[:sql] || payload[:name] || 'Default'
|
|
26
25
|
context = Span::Context.new(statement)
|
|
27
26
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
[name, @type, context]
|
|
27
|
+
type = format('db.%s.sql', lookup_adapter(payload) || 'unknown').freeze
|
|
28
|
+
[name, type, context]
|
|
33
29
|
end
|
|
34
30
|
|
|
35
31
|
private
|
|
@@ -37,7 +33,7 @@ module StackifyRubyAPM
|
|
|
37
33
|
def query_variables(payload)
|
|
38
34
|
adapter_config = lookup_adapter_config
|
|
39
35
|
props = get_common_db_properties
|
|
40
|
-
props[:PROVIDER] = get_profiler(lookup_adapter)
|
|
36
|
+
props[:PROVIDER] = get_profiler(lookup_adapter(payload))
|
|
41
37
|
props[:SQL] = payload[:sql]
|
|
42
38
|
if adapter_config
|
|
43
39
|
props[:URL] = "#{adapter_config[:host]}:#{adapter_config[:port]}"
|
|
@@ -60,8 +56,37 @@ module StackifyRubyAPM
|
|
|
60
56
|
# Retrieve Connection: lib/active_record/connection_handling.rb#L309
|
|
61
57
|
# Handler Retrieve Connection: lib/active_record/connection_adapters/abstract/connection_pool.rb#L1111
|
|
62
58
|
|
|
63
|
-
def lookup_adapter
|
|
64
|
-
|
|
59
|
+
def lookup_adapter(payload)
|
|
60
|
+
connection = nil
|
|
61
|
+
if (payload.key?(:connection))
|
|
62
|
+
connection = payload[:connection]
|
|
63
|
+
elsif ::ActiveRecord::Base.connection_pool.instance_variable_defined?(:@reserved_connections) and payload.key?(:connection_id)
|
|
64
|
+
connection_id = payload[:connection_id] # Connection ID here is the object_id of the connection object
|
|
65
|
+
connections = ::ActiveRecord::Base.connection_pool.instance_variable_get(:@reserved_connections) # Lets check the reserved connections
|
|
66
|
+
|
|
67
|
+
if (
|
|
68
|
+
(connections.class != nil and connections.respond_to?(:class) and
|
|
69
|
+
(connections.class.to_s == 'ThreadSafe::Cache' or connections.class.to_s == 'Hash')
|
|
70
|
+
) and connections.size()
|
|
71
|
+
)
|
|
72
|
+
connections.each_value do |val|
|
|
73
|
+
if val.object_id == connection_id
|
|
74
|
+
connection = val
|
|
75
|
+
break
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
if (connection.nil?)
|
|
82
|
+
return 'generic'
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
if (connection.respond_to?(:adapter_name) && connection.adapter_name.nil?)
|
|
86
|
+
return 'generic'
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
connection.adapter_name.downcase
|
|
65
90
|
rescue StandardError => error
|
|
66
91
|
debug '[SqlNormalizer] lookup_adapter err: ' + error.inspect.to_s
|
|
67
92
|
nil
|
|
@@ -80,7 +105,7 @@ module StackifyRubyAPM
|
|
|
80
105
|
|
|
81
106
|
def check_prepared_stmt(statement, payload)
|
|
82
107
|
if StackifyRubyAPM.agent.config.prefix_enabled
|
|
83
|
-
case get_profiler(lookup_adapter)
|
|
108
|
+
case get_profiler(lookup_adapter(payload))
|
|
84
109
|
when 'generic', 'mysql', 'sqlite', 'oracle', 'db2'
|
|
85
110
|
check_prepared_stmt_by_placeholder(payload[:sql].include?('?'), statement, payload)
|
|
86
111
|
when 'postgresql'
|
data/lib/stackify_apm/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: stackify-ruby-apm
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.14.
|
|
4
|
+
version: 1.14.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Stackify
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-02-
|
|
11
|
+
date: 2021-02-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|