raygun-apm 1.0.65-universal-darwin → 1.0.69-universal-darwin
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/{diagnostics → raygun-diagnostics} +1 -2
- data/lib/raygun/2.5/raygun_ext.bundle +0 -0
- data/lib/raygun/2.6/raygun_ext.bundle +0 -0
- data/lib/raygun/2.7/raygun_ext.bundle +0 -0
- data/lib/raygun/apm.rb +6 -4
- data/lib/raygun/apm/blacklist.rb +6 -0
- data/lib/raygun/apm/config.rb +5 -6
- data/lib/raygun/apm/diagnostics.rb +1 -1
- data/lib/raygun/apm/event.rb +10 -0
- data/lib/raygun/apm/hooks/mongodb.rb +45 -0
- data/lib/raygun/apm/tracer.rb +2 -2
- data/lib/raygun/apm/version.rb +1 -1
- data/raygun-apm.gemspec +2 -1
- metadata +19 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 467cfc5e69c346ccfea0d7b12eb863c98bb5307d4c0d92b5f9622c2d811cd94f
|
4
|
+
data.tar.gz: c0d6e47c0739d233d4b9b0d8bf636e8a6485cb03fa24ebb636af93d8b2eacd65
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a320b50e2e8b01bee29a8adae851810dbbb43d09c3d44ea9aed707ef84d4d12c509db3b6b5675bd5de843927f52c72528e56c89a6f281dbb2bedfe994b090e84
|
7
|
+
data.tar.gz: 8f87203a4ee8a05a18ddbd88f26fa60b13d4dd8268ba3df47172fa9ccedb0e5a8b30bc804091b23d8b30423f0a53b7ef50f12fe8440c096f1dd35d2bb3f26ced
|
Binary file
|
Binary file
|
Binary file
|
data/lib/raygun/apm.rb
CHANGED
@@ -18,8 +18,10 @@ require "raygun/apm/event"
|
|
18
18
|
require "raygun/apm/hooks/internals"
|
19
19
|
require "raygun/apm/hooks/net_http"
|
20
20
|
# conditionally required - may not be bundled
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
21
|
+
conditional_hooks = %w(httpclient excon mongodb)
|
22
|
+
conditional_hooks.each do |hook|
|
23
|
+
begin
|
24
|
+
require "raygun/apm/hooks/#{hook}"
|
25
|
+
rescue LoadError
|
26
|
+
end
|
25
27
|
end
|
data/lib/raygun/apm/blacklist.rb
CHANGED
@@ -158,6 +158,8 @@ module Raygun
|
|
158
158
|
FileUtils::
|
159
159
|
TempFile#
|
160
160
|
TempFile::
|
161
|
+
Logger#
|
162
|
+
Logger::
|
161
163
|
}
|
162
164
|
|
163
165
|
INTERNALS = %w{
|
@@ -250,6 +252,10 @@ module Raygun
|
|
250
252
|
}
|
251
253
|
|
252
254
|
QUERIES = %w{
|
255
|
+
#mongodb
|
256
|
+
Mongo
|
257
|
+
BSON
|
258
|
+
+Mongo::Operation::Executable#do_execute
|
253
259
|
#redis
|
254
260
|
Redis
|
255
261
|
+Redis#auth
|
data/lib/raygun/apm/config.rb
CHANGED
@@ -62,19 +62,18 @@ module Raygun
|
|
62
62
|
config_var 'PROTON_FILE_IPC_FOLDER', as: String
|
63
63
|
config_var 'PROTON_USE_MULTICAST', as: String, default: 'False'
|
64
64
|
config_var 'PROTON_BATCH_IDLE_COUNTER', as: Integer, default: 500
|
65
|
+
## New - Ruby profiler
|
66
|
+
config_var 'PROTON_UDP_HOST', as: String, default: UDP_SINK_HOST
|
67
|
+
config_var 'PROTON_UDP_PORT', as: Integer, default: UDP_SINK_PORT
|
65
68
|
|
66
|
-
def
|
69
|
+
def proton_udp_host
|
67
70
|
if proton_use_multicast == 'True'
|
68
71
|
UDP_SINK_MULTICAST_HOST
|
69
72
|
else
|
70
|
-
UDP_SINK_HOST
|
73
|
+
env['PROTON_UDP_HOST'] ? env['PROTON_UDP_HOST'].to_s : UDP_SINK_HOST
|
71
74
|
end
|
72
75
|
end
|
73
76
|
|
74
|
-
def udp_port
|
75
|
-
UDP_SINK_PORT
|
76
|
-
end
|
77
|
-
|
78
77
|
def loglevel
|
79
78
|
LOGLEVELS[proton_debug_loglevel] || raise(ArgumentError, "invalid log level")
|
80
79
|
end
|
@@ -5,7 +5,7 @@ module Raygun
|
|
5
5
|
module Apm
|
6
6
|
class Diagnostics
|
7
7
|
AGENT_STATE_DOWN = "\nThe Raygun APM Agent appears to not be running on the current host.\nIf not already installed, please consult https://raygun.com/documentation/product-guides/apm/agent/downloads/\nOtherwise refer to https://raygun.com/documentation/product-guides/apm/agent/installation/ for starting the Agent."
|
8
|
-
AGENT_STATE_UNKNOWN = "\
|
8
|
+
AGENT_STATE_UNKNOWN = "\nThe Raygun APM Agent is reachable, but Unable to determine the state of the Agent at the moment."
|
9
9
|
AGENT_STATE_UP_MISCONFIGURED = "\nThe Raygun APM Agent is running, but misconfigured.\nThe API Key needs to be set through the Raygun_ApiKey environment variable.\nThe API key can be found under 'Application Settings' in the Raygun UI"
|
10
10
|
AGENT_STATE_UP_CONFIGURED = "\nThe Raygun APM Agent is configured properly!"
|
11
11
|
AGENT_MINIMUM_VERSION_NOT_MET = "\nVersion #{Raygun::Apm::VERSION} of the Raygun APM Profiler requires a minimum Agent version #{Raygun::Apm::MINIMUM_AGENT_VERSION}\nPlease download the latest Agent from https://raygun.com/documentation/product-guides/apm/agent/downloads/"
|
data/lib/raygun/apm/event.rb
CHANGED
@@ -4,6 +4,11 @@ module Raygun
|
|
4
4
|
def inspect
|
5
5
|
"#<#{self.class.name}:#{self.object_id}> length:#{self.length} pid:#{self[:pid]} tid:#{self[:tid]} timestamp:#{self[:timestamp]}"
|
6
6
|
end
|
7
|
+
class ExceptionThrown < Event
|
8
|
+
def inspect
|
9
|
+
super + " class:#{self[:class_name]}"
|
10
|
+
end
|
11
|
+
end
|
7
12
|
class ThreadStarted < Event
|
8
13
|
def inspect
|
9
14
|
super + " parent_tid:#{self[:parent_tid]}"
|
@@ -29,6 +34,11 @@ module Raygun
|
|
29
34
|
super + " url:#{self[:url]} verb:#{self[:verb]} status:#{self[:status]} duration:#{self[:duration]}"
|
30
35
|
end
|
31
36
|
end
|
37
|
+
class Sql < Event
|
38
|
+
def inspect
|
39
|
+
super + " provider:#{self[:provider]} host:#{self[:host]} query:#{self[:query]} database:#{self[:database]} duration:#{self[:duration]}"
|
40
|
+
end
|
41
|
+
end
|
32
42
|
class BeginTransaction < Event
|
33
43
|
def inspect
|
34
44
|
super + " api_key:#{self[:api_key]} technology_type:#{self[:technology_type]} process_type:#{self[:process_type]}"
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'mongo'
|
2
|
+
|
3
|
+
module Raygun
|
4
|
+
module Apm
|
5
|
+
module Hooks
|
6
|
+
module MongoDB
|
7
|
+
def do_execute(connection, client, options = {})
|
8
|
+
result = nil
|
9
|
+
if tracer = Raygun::Apm::Tracer.instance
|
10
|
+
started = tracer.now
|
11
|
+
result = super
|
12
|
+
ended = tracer.now
|
13
|
+
event = raygun_apm_sql_event
|
14
|
+
event[:pid] = Process.pid
|
15
|
+
event[:query] = raygun_format_query(connection)
|
16
|
+
event[:provider] = "mongodb"
|
17
|
+
event[:host] = connection.address.to_s
|
18
|
+
event[:database] = client.database.name
|
19
|
+
event[:duration] = ended - started
|
20
|
+
event[:timestamp] = started
|
21
|
+
event[:tid] = tracer.get_thread_id(Thread.current)
|
22
|
+
tracer.emit(event)
|
23
|
+
result
|
24
|
+
else
|
25
|
+
super
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
def raygun_format_query(connection)
|
31
|
+
payload = message(connection).payload
|
32
|
+
return "#{payload["database_name"]}.#{payload["command_name"]} #{payload["command"]}}"
|
33
|
+
end
|
34
|
+
|
35
|
+
def raygun_apm_sql_event
|
36
|
+
@_raygun_apm_sql_event ||= Raygun::Apm::Event::Sql.new
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
Mongo::Operation.constants.each do |operation|
|
44
|
+
Mongo::Operation.const_get(operation).prepend(Raygun::Apm::Hooks::MongoDB) rescue nil
|
45
|
+
end
|
data/lib/raygun/apm/tracer.rb
CHANGED
@@ -36,8 +36,8 @@ module Raygun
|
|
36
36
|
sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_SNDBUF, Tracer::BATCH_PACKET_SIZE)
|
37
37
|
self.udp_sink(
|
38
38
|
socket: sock,
|
39
|
-
host: config.
|
40
|
-
port: config.
|
39
|
+
host: config.proton_udp_host,
|
40
|
+
port: config.proton_udp_port,
|
41
41
|
receive_buffer_size: sock.getsockopt(Socket::SOL_SOCKET, Socket::SO_RCVBUF).int
|
42
42
|
)
|
43
43
|
# Any fails here is kamikaze for the tracer
|
data/lib/raygun/apm/version.rb
CHANGED
data/raygun-apm.gemspec
CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
|
|
14
14
|
|
15
15
|
spec.files = Dir['README.rdoc', 'raygun-apm.gemspec', 'lib/**/*', 'bin/**/*'].reject { |f| f.match(/raygun_ext\./) }
|
16
16
|
spec.files += Dir['lib/raygun/**/{2}*/raygun_ext.*']
|
17
|
-
spec.bindir = "
|
17
|
+
spec.bindir = "bin"
|
18
18
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
19
19
|
spec.require_paths = ["lib", "ext"]
|
20
20
|
|
@@ -36,4 +36,5 @@ Gem::Specification.new do |spec|
|
|
36
36
|
spec.add_development_dependency "excon", "~> 0.73.0"
|
37
37
|
spec.add_development_dependency "httparty", "~> 0.18.0"
|
38
38
|
spec.add_development_dependency "httpclient", "~> 2.8.3"
|
39
|
+
spec.add_development_dependency "mongoid", "~> 7.1.2"
|
39
40
|
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: raygun-apm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.69
|
5
5
|
platform: universal-darwin
|
6
6
|
authors:
|
7
7
|
- Raygun
|
8
8
|
- Erkki Eilonen
|
9
9
|
autorequire:
|
10
|
-
bindir:
|
10
|
+
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-
|
12
|
+
date: 2020-09-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: debase-ruby_core_source
|
@@ -193,6 +193,20 @@ dependencies:
|
|
193
193
|
- - "~>"
|
194
194
|
- !ruby/object:Gem::Version
|
195
195
|
version: 2.8.3
|
196
|
+
- !ruby/object:Gem::Dependency
|
197
|
+
name: mongoid
|
198
|
+
requirement: !ruby/object:Gem::Requirement
|
199
|
+
requirements:
|
200
|
+
- - "~>"
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
version: 7.1.2
|
203
|
+
type: :development
|
204
|
+
prerelease: false
|
205
|
+
version_requirements: !ruby/object:Gem::Requirement
|
206
|
+
requirements:
|
207
|
+
- - "~>"
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
version: 7.1.2
|
196
210
|
description:
|
197
211
|
email:
|
198
212
|
- support@raygun.com
|
@@ -203,7 +217,7 @@ extra_rdoc_files: []
|
|
203
217
|
files:
|
204
218
|
- README.rdoc
|
205
219
|
- bin/console
|
206
|
-
- bin/diagnostics
|
220
|
+
- bin/raygun-diagnostics
|
207
221
|
- bin/setup
|
208
222
|
- ext/raygun/extconf.rb
|
209
223
|
- lib/raygun/2.5/raygun_ext.bundle
|
@@ -219,6 +233,7 @@ files:
|
|
219
233
|
- lib/raygun/apm/hooks/excon.rb
|
220
234
|
- lib/raygun/apm/hooks/httpclient.rb
|
221
235
|
- lib/raygun/apm/hooks/internals.rb
|
236
|
+
- lib/raygun/apm/hooks/mongodb.rb
|
222
237
|
- lib/raygun/apm/hooks/net_http.rb
|
223
238
|
- lib/raygun/apm/hooks/redis.rb
|
224
239
|
- lib/raygun/apm/tracer.rb
|