raygun-apm-sidekiq 1.0.9 → 1.0.10
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 +4 -4
- data/lib/raygun/apm/sidekiq/middleware.rb +28 -26
- data/lib/raygun/apm/sidekiq/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5d47af0b57af919bbbcfd30f03f6170f48544ea379f3a112504b77b04a21f728
|
4
|
+
data.tar.gz: 768d91496b52936ecab2582091943b997768922ce196ebba17c33ffbc1c5edb0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 46eddc75761d8f7acf5ce5089ac33c340aaac03b915804237bba61ae19e594c0c56cca68bc504304ddcaa2005f900232a09b6d4b61b8fc150af7119ab0ed77f2
|
7
|
+
data.tar.gz: e0a2196341004b863bc00966e86ea7bd8b7c52cdab655c1c9002277f41f896e12e5bd41ba85418bcd4adadf5ef3e64c5b95630a402f5834409ffe55aa0b2904b
|
@@ -3,28 +3,10 @@ module Raygun
|
|
3
3
|
module Sidekiq
|
4
4
|
class Middleware
|
5
5
|
def initialize
|
6
|
-
@
|
7
|
-
end
|
8
|
-
|
9
|
-
def initialize_tracer
|
10
|
-
@tracer = Raygun::Apm::Tracer.new
|
11
|
-
@tracer.udp_sink!
|
12
|
-
@tracer.process_started
|
13
|
-
ObjectSpace.define_finalizer(self, self.class.finalize(@tracer))
|
14
|
-
|
15
|
-
@sql_subscriber = ActiveSupport::Notifications.subscribe('sql.active_record') do |*args|
|
16
|
-
sql_handler(args)
|
17
|
-
end
|
18
|
-
|
19
|
-
GC.stress = true if ENV['RAYGUN_STRESS_GC']
|
20
|
-
|
21
|
-
# If any fatal errors on init, shutdown the tracer
|
22
|
-
rescue Raygun::Apm::FatalError => e
|
23
|
-
raygun_shutdown_handler(e)
|
6
|
+
@tracer = self.class.init_tracer
|
24
7
|
end
|
25
8
|
|
26
9
|
def call(worker_instance, msg, queue)
|
27
|
-
@tracer_initialized ||= initialize_tracer
|
28
10
|
# Can be nil if we had a fatal error
|
29
11
|
if @tracer
|
30
12
|
started = @tracer.now
|
@@ -39,14 +21,34 @@ module Raygun
|
|
39
21
|
end
|
40
22
|
# Can be nil if we had a fatal error
|
41
23
|
if @tracer
|
42
|
-
fake_http_in_handler(started, worker_instance, msg, queue, exception)
|
24
|
+
self.class.fake_http_in_handler(started, worker_instance, msg, queue, exception)
|
43
25
|
@tracer.end_trace
|
44
26
|
end
|
45
27
|
rescue Raygun::Apm::FatalError => e
|
46
|
-
raygun_shutdown_handler(e)
|
28
|
+
self.class.raygun_shutdown_handler(e)
|
47
29
|
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def self.init_tracer
|
34
|
+
return @tracer if @tracer
|
35
|
+
@tracer = Raygun::Apm::Tracer.new
|
36
|
+
@tracer.udp_sink!
|
37
|
+
@tracer.process_started
|
38
|
+
ObjectSpace.define_finalizer(self, self.finalize(@tracer))
|
48
39
|
|
49
|
-
|
40
|
+
@sql_subscriber = ActiveSupport::Notifications.subscribe('sql.active_record') do |*args|
|
41
|
+
sql_handler(args)
|
42
|
+
end
|
43
|
+
|
44
|
+
GC.stress = true if ENV['RAYGUN_STRESS_GC']
|
45
|
+
@tracer
|
46
|
+
# If any fatal errors on init, shutdown the tracer
|
47
|
+
rescue Raygun::Apm::FatalError => e
|
48
|
+
raygun_shutdown_handler(e)
|
49
|
+
end
|
50
|
+
|
51
|
+
def self.raygun_shutdown_handler(exception)
|
50
52
|
warn "Raygun APM shutting down due to error - %s", exception.message
|
51
53
|
# Kill extended event subcriptions
|
52
54
|
ActiveSupport::Notifications.unsubscribe(@sql_subscriber)
|
@@ -57,7 +59,7 @@ module Raygun
|
|
57
59
|
raise(exception) unless (Raygun::Apm::FatalError === exception)
|
58
60
|
end
|
59
61
|
|
60
|
-
def fake_http_in_handler(started, worker_instance, msg, queue, exception)
|
62
|
+
def self.fake_http_in_handler(started, worker_instance, msg, queue, exception)
|
61
63
|
ended = @tracer.now
|
62
64
|
event = http_in_event
|
63
65
|
event[:url] = "sidekiq://#{queue}/#{msg["class"]}?#{msg["jid"]}"
|
@@ -72,7 +74,7 @@ module Raygun
|
|
72
74
|
raygun_shutdown_handler(e)
|
73
75
|
end
|
74
76
|
|
75
|
-
def http_in_event
|
77
|
+
def self.http_in_event
|
76
78
|
@http_in_event ||= begin
|
77
79
|
event = Raygun::Apm::Event::HttpIn.new
|
78
80
|
event[:pid] = Process.pid
|
@@ -81,7 +83,7 @@ module Raygun
|
|
81
83
|
end
|
82
84
|
end
|
83
85
|
|
84
|
-
def sql_handler(args)
|
86
|
+
def self.sql_handler(args)
|
85
87
|
notification = ActiveSupport::Notifications::Event.new *args
|
86
88
|
connection = if notification.payload[:connection]
|
87
89
|
notification.payload[:connection]
|
@@ -108,7 +110,7 @@ module Raygun
|
|
108
110
|
raygun_shutdown_handler(e)
|
109
111
|
end
|
110
112
|
|
111
|
-
def sql_event
|
113
|
+
def self.sql_event
|
112
114
|
@sql_event ||= begin
|
113
115
|
event = Raygun::Apm::Event::Sql.new
|
114
116
|
event[:pid] = Process.pid
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: raygun-apm-sidekiq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Raygun
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-03-
|
12
|
+
date: 2020-03-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: raygun-apm
|