raygun-apm 1.0.61-x86-linux → 1.0.69-x86-linux

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: 3ae3629e56d34cd5fb0452d9c1c87665a257e9515ca67ce3447c1d4e2ba4e946
4
- data.tar.gz: ff4f0a6946cb1f8c491cedb31e310680c456ea84c0069a88ae3d442ddf2c0fbc
3
+ metadata.gz: a8fcd8ffc8006a1bb8ccb5b6874fd4827a1c9c66a259907f0917c9c94c98df1a
4
+ data.tar.gz: 68e5d34b1e3691c233b1e1b3ddc9f262a0e8d2ac2681ecb025f0c032cf806478
5
5
  SHA512:
6
- metadata.gz: 790e1cb884ed6dffd70390d0d34836fae030a100a5d36f16f90a91f8b7c43cbbf678db2c0e0d9802707a158644a6e580aca3a72250b74665338c47052bf07e63
7
- data.tar.gz: 1828ce3edb2ae70b0dea621662479138800e03f077007ab0a66373c2130617a895911b99b708b0e6c23c8744d8d58e5b9fa9c2bae808a2b39305c01e1099c3d4
6
+ metadata.gz: 6c2a79e23b52225950e0dabc8001fb85c89f51ceae385bc222e39990d55052b7b6f7a312f6df84e151043dd8ef5b908fa4b18177dcf6311835e38141bff3b1c8
7
+ data.tar.gz: 88cdf56989e3c9b3fef4639c60ac73d3f91f07293bc553c9efd200ad9ce2d2a90ba82d8dd027d04e1d0cbda2e3ce13be95bf779e2082321b2f428613a75b386c
@@ -3,5 +3,4 @@
3
3
  require "bundler/setup"
4
4
  require "raygun/apm"
5
5
 
6
- check = Raygun::Apm::Diagnostics.new
7
- check.verify_agent
6
+ tracer = Raygun::Apm::Tracer.new
Binary file
Binary file
Binary file
@@ -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
- begin
22
- require "raygun/apm/hooks/httpclient"
23
- require "raygun/apm/hooks/excon"
24
- rescue LoadError
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
@@ -66,6 +66,10 @@ module Raygun
66
66
  Method#
67
67
  Module#
68
68
  Mutex#
69
+ +Thread::Mutex#synchronize
70
+ +Thread::Mutex#lock
71
+ +Thread::Mutex#unlock
72
+ +Thread::Mutex#sleep
69
73
  NameError#
70
74
  NilClass#
71
75
  NoMemoryError#
@@ -154,6 +158,8 @@ module Raygun
154
158
  FileUtils::
155
159
  TempFile#
156
160
  TempFile::
161
+ Logger#
162
+ Logger::
157
163
  }
158
164
 
159
165
  INTERNALS = %w{
@@ -246,6 +252,10 @@ module Raygun
246
252
  }
247
253
 
248
254
  QUERIES = %w{
255
+ #mongodb
256
+ Mongo
257
+ BSON
258
+ +Mongo::Operation::Executable#do_execute
249
259
  #redis
250
260
  Redis
251
261
  +Redis#auth
@@ -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 udp_host
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 = "\nUnable to determine the state of the Raygun APM Agent."
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/"
@@ -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]}"
@@ -1,3 +1,5 @@
1
+ require 'thread'
2
+
1
3
  module Raygun
2
4
  module Apm
3
5
  module Hooks
@@ -64,6 +66,24 @@ module Raygun
64
66
  super
65
67
  end
66
68
  end
69
+
70
+ module Mutex
71
+ def synchronize(*args)
72
+ super
73
+ end
74
+
75
+ def lock(*args)
76
+ super
77
+ end
78
+
79
+ def unlock(*args)
80
+ super
81
+ end
82
+
83
+ def sleep(*args)
84
+ super
85
+ end
86
+ end
67
87
  end
68
88
  end
69
89
  end
@@ -71,4 +91,5 @@ end
71
91
  Object.prepend Raygun::Apm::Hooks::Object
72
92
  IO.prepend Raygun::Apm::Hooks::IO
73
93
  Random.prepend Raygun::Apm::Hooks::Random
74
- Signal.prepend Raygun::Apm::Hooks::Signal
94
+ Signal.prepend Raygun::Apm::Hooks::Signal
95
+ Thread::Mutex.prepend Raygun::Apm::Hooks::Mutex
@@ -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
@@ -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.udp_host,
40
- port: config.udp_port,
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
@@ -1,6 +1,6 @@
1
1
  module Raygun
2
2
  module Apm
3
- VERSION = "1.0.61"
3
+ VERSION = "1.0.69"
4
4
  MINIMUM_AGENT_VERSION = "1.0.1190.0"
5
5
  end
6
6
  end
@@ -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 = "exe"
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.61
4
+ version: 1.0.69
5
5
  platform: x86-linux
6
6
  authors:
7
7
  - Raygun
8
8
  - Erkki Eilonen
9
9
  autorequire:
10
- bindir: exe
10
+ bindir: bin
11
11
  cert_chain: []
12
- date: 2020-08-02 00:00:00.000000000 Z
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.so
@@ -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