raygun-apm-rails 0.1.15 → 1.0.1
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/rails.rb +2 -0
- data/lib/raygun/apm/rails/middleware.rb +15 -5
- data/lib/raygun/apm/rails/railtie.rb +1 -1
- data/lib/raygun/apm/rails/version.rb +1 -1
- data/raygun-apm-rails.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2b75a889dba518fef1ad8ffef121b278e62445caf67ed2dafd6477f3a6ba95e2
|
4
|
+
data.tar.gz: 23d6c1e974f9700b502e2083f1cc0dcaca584b2de7b4927ecad5ea31385d8efd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aa987252a5b280b13f64a3b8a386d1faa444a04e9e3a351c7dd85af3efced122b0d8de4d70d1f3fef57479228ff2c6b2ae1e0473415e263c0a41eda5fd1ab1f6
|
7
|
+
data.tar.gz: 15704c84f498cbe2e4a54569990a39a38329a107c5b84b3ab9dbb65541c4a52bcd4ab359986965bbc23926cc40f720604ef3a25ee4c9788846e897b832042437
|
data/lib/raygun/apm/rails.rb
CHANGED
@@ -33,21 +33,25 @@ module Raygun
|
|
33
33
|
Thread.current.thread_variable_set(:_raygun_apm_tracer, @tracer)
|
34
34
|
@tracer.start_trace
|
35
35
|
end
|
36
|
-
res = @app.call(env)
|
36
|
+
res = start_of_trace{ @app.call(env) }
|
37
37
|
# Can be nil if we had a fatal error
|
38
38
|
@tracer.end_trace if @tracer
|
39
39
|
res
|
40
40
|
rescue Raygun::Apm::FatalError => e
|
41
41
|
raygun_shutdown_handler(e)
|
42
42
|
end
|
43
|
-
|
43
|
+
|
44
44
|
def raygun_shutdown_handler(exception)
|
45
|
-
warn "Raygun APM shutting down due to error -
|
45
|
+
warn "[Raygun APM] shutting down due to error - #{exception.message}",
|
46
46
|
# Kill extended event subcriptions
|
47
47
|
ActiveSupport::Notifications.unsubscribe(@http_in_subscriber)
|
48
48
|
ActiveSupport::Notifications.unsubscribe(@sql_subscriber)
|
49
|
+
warn "[Raygun APM] notification hooks unsubscribed"
|
49
50
|
# Shutdown the tracepoint if enabled to reduce any overhead and stall emission
|
50
|
-
|
51
|
+
if @tracer.tracepoint.enabled?
|
52
|
+
@tracer.tracepoint.stop
|
53
|
+
warn "[Raygun APM] tracepoint stopped"
|
54
|
+
end
|
51
55
|
# Let the GC clean up the sink thread through the finalizer below
|
52
56
|
@tracer = nil
|
53
57
|
Thread.current.thread_variable_set(:_raygun_apm_tracer, nil)
|
@@ -66,11 +70,12 @@ module Raygun
|
|
66
70
|
event[:status] = notification.payload[:status]
|
67
71
|
# XXX constant milliseconds to microseconds
|
68
72
|
event[:duration] = notification.duration * 1000
|
69
|
-
event[:timestamp] =
|
73
|
+
event[:timestamp] = @tracer.now
|
70
74
|
event[:tid] = @tracer.get_thread_id(Thread.current)
|
71
75
|
@tracer.emit(event)
|
72
76
|
rescue => e
|
73
77
|
warn "[Raygun APM] error reporting HTTP IN event"
|
78
|
+
raygun_shutdown_handler(e)
|
74
79
|
end
|
75
80
|
|
76
81
|
def http_in_event
|
@@ -105,6 +110,7 @@ module Raygun
|
|
105
110
|
@tracer.emit(event)
|
106
111
|
rescue => e
|
107
112
|
warn "[Raygun APM] error reporting SQL event"
|
113
|
+
raygun_shutdown_handler(e)
|
108
114
|
end
|
109
115
|
|
110
116
|
def sql_event
|
@@ -115,6 +121,10 @@ module Raygun
|
|
115
121
|
end
|
116
122
|
end
|
117
123
|
|
124
|
+
def start_of_trace
|
125
|
+
yield
|
126
|
+
end
|
127
|
+
|
118
128
|
def self.finalize(tracer)
|
119
129
|
proc {tracer.process_ended}
|
120
130
|
end
|
@@ -6,7 +6,7 @@ module Raygun
|
|
6
6
|
require "raygun/apm"
|
7
7
|
require "raygun/apm/rails/middleware"
|
8
8
|
Raygun::Apm::Blacklist.extend_with Raygun::Apm::Rails::BLACKLIST
|
9
|
-
app.middleware.
|
9
|
+
app.middleware.use Raygun::Apm::Rails::Middleware
|
10
10
|
# Explictly enable instrumenting HTTP until a good control API is figured out
|
11
11
|
require "raygun/apm/hooks/net_http"
|
12
12
|
end
|
data/raygun-apm-rails.gemspec
CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
24
24
|
spec.require_paths = ["lib"]
|
25
25
|
|
26
|
-
spec.add_dependency "raygun-apm", "~> 0.0
|
26
|
+
spec.add_dependency "raygun-apm", "~> 1.0.0"
|
27
27
|
spec.add_development_dependency "bundler", "~> 1.17"
|
28
28
|
spec.add_development_dependency "rake", "~> 10.0"
|
29
29
|
spec.add_development_dependency "minitest", "~> 5.0"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: raygun-apm-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Erkki Eilonen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-02-
|
11
|
+
date: 2020-02-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: raygun-apm
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.0
|
19
|
+
version: 1.0.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.0
|
26
|
+
version: 1.0.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|