raygun-apm-rails 1.0.3 → 1.0.8
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 +3 -1
- data/lib/raygun/apm/rails/middleware.rb +17 -13
- data/lib/raygun/apm/rails/version.rb +1 -1
- data/raygun-apm-rails.gemspec +4 -7
- metadata +9 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4808c6993b9c3a6ab130e67b2c187938b077d559f000aa8a346098fa05efcb49
|
4
|
+
data.tar.gz: ae9b0fefe92e79886f5ef81ba327477b4d4c397f55c9cab8afae983eb2cb12d7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3db3c4dddbbe9d900485beae2f53644055a75a0f141f5d8b542fab232c9d74f2f9491c53eeccf606a6fed9859019e233e8df63cf2eb6ae2b97908610a3daecae
|
7
|
+
data.tar.gz: 1c3a39e6af50815a8ddd47968e632e28247755b35266dc66fbf899418b9d5ff8a5a715d65c1f4e1b9cc4fdd8073742aae8b5c385109a1fa395cffd337d59c445
|
data/lib/raygun/apm/rails.rb
CHANGED
@@ -4,6 +4,17 @@ module Raygun
|
|
4
4
|
class Middleware
|
5
5
|
def initialize(app)
|
6
6
|
@app = app
|
7
|
+
@tracer_initialized = nil
|
8
|
+
end
|
9
|
+
|
10
|
+
def call(env)
|
11
|
+
@status, @headers, @response = instrument(env)
|
12
|
+
[@status, @headers, @response]
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def initialize_tracer
|
7
18
|
@tracer = Raygun::Apm::Tracer.new
|
8
19
|
@tracer.udp_sink!
|
9
20
|
@tracer.process_started
|
@@ -21,19 +32,15 @@ module Raygun
|
|
21
32
|
raygun_shutdown_handler(e)
|
22
33
|
end
|
23
34
|
|
24
|
-
def call(env)
|
25
|
-
@status, @headers, @response = instrument(env)
|
26
|
-
[@status, @headers, @response]
|
27
|
-
end
|
28
|
-
|
29
35
|
def instrument(env)
|
30
36
|
res = nil
|
37
|
+
@tracer_initialized ||= initialize_tracer
|
31
38
|
# Can be nil if we had a fatal error
|
32
39
|
if @tracer
|
33
40
|
Thread.current.thread_variable_set(:_raygun_apm_tracer, @tracer)
|
34
41
|
@tracer.start_trace
|
35
42
|
end
|
36
|
-
res =
|
43
|
+
res = Ruby_APM_profiler_trace{ @app.call(env) }
|
37
44
|
# Can be nil if we had a fatal error
|
38
45
|
@tracer.end_trace if @tracer
|
39
46
|
res
|
@@ -47,15 +54,12 @@ module Raygun
|
|
47
54
|
ActiveSupport::Notifications.unsubscribe(@http_in_subscriber)
|
48
55
|
ActiveSupport::Notifications.unsubscribe(@sql_subscriber)
|
49
56
|
warn "[Raygun APM] notification hooks unsubscribed"
|
50
|
-
# Shutdown the
|
51
|
-
|
52
|
-
@tracer.tracepoint.stop
|
53
|
-
warn "[Raygun APM] tracepoint stopped"
|
54
|
-
end
|
57
|
+
# Shutdown the tracepoints if enabled to reduce any overhead and stall emission
|
58
|
+
@tracer.stop_tracepoints
|
55
59
|
# Let the GC clean up the sink thread through the finalizer below
|
56
60
|
@tracer = nil
|
57
61
|
Thread.current.thread_variable_set(:_raygun_apm_tracer, nil)
|
58
|
-
unless (Raygun::Apm::FatalError === exception)
|
62
|
+
raise(exception) unless (Raygun::Apm::FatalError === exception)
|
59
63
|
end
|
60
64
|
|
61
65
|
def http_in_handler(args)
|
@@ -122,7 +126,7 @@ module Raygun
|
|
122
126
|
end
|
123
127
|
end
|
124
128
|
|
125
|
-
def
|
129
|
+
def Ruby_APM_profiler_trace
|
126
130
|
yield
|
127
131
|
end
|
128
132
|
|
data/raygun-apm-rails.gemspec
CHANGED
@@ -6,16 +6,13 @@ require "raygun/apm/rails/version"
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "raygun-apm-rails"
|
8
8
|
spec.version = Raygun::Apm::Rails::VERSION
|
9
|
-
spec.authors = ["Erkki Eilonen"]
|
10
|
-
spec.email = ["
|
9
|
+
spec.authors = ["Raygun", "Erkki Eilonen"]
|
10
|
+
spec.email = ["support@raygun.com", "info@bearmetal.eu"]
|
11
11
|
|
12
12
|
spec.summary = %q{Raygun application performance monitoring for Rails}
|
13
|
-
|
14
|
-
#spec.homepage = "TODO: Put your gem's website or public repo URL here."
|
13
|
+
spec.homepage = "https://raygun.com/platform/apm"
|
15
14
|
#spec.license = "MIT"
|
16
15
|
|
17
|
-
# Specify which files should be added to the gem when it is released.
|
18
|
-
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
19
16
|
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
20
17
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
21
18
|
end
|
@@ -23,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
23
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
24
21
|
spec.require_paths = ["lib"]
|
25
22
|
|
26
|
-
spec.add_dependency "raygun-apm", "~> 1.0.
|
23
|
+
spec.add_dependency "raygun-apm", "~> 1.0.3"
|
27
24
|
spec.add_development_dependency "bundler", "~> 1.17"
|
28
25
|
spec.add_development_dependency "rake", "~> 10.0"
|
29
26
|
spec.add_development_dependency "minitest", "~> 5.0"
|
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: raygun-apm-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
+
- Raygun
|
7
8
|
- Erkki Eilonen
|
8
9
|
autorequire:
|
9
10
|
bindir: exe
|
10
11
|
cert_chain: []
|
11
|
-
date: 2020-02-
|
12
|
+
date: 2020-02-28 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: raygun-apm
|
@@ -16,14 +17,14 @@ dependencies:
|
|
16
17
|
requirements:
|
17
18
|
- - "~>"
|
18
19
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.0.
|
20
|
+
version: 1.0.3
|
20
21
|
type: :runtime
|
21
22
|
prerelease: false
|
22
23
|
version_requirements: !ruby/object:Gem::Requirement
|
23
24
|
requirements:
|
24
25
|
- - "~>"
|
25
26
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.0.
|
27
|
+
version: 1.0.3
|
27
28
|
- !ruby/object:Gem::Dependency
|
28
29
|
name: bundler
|
29
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -68,7 +69,8 @@ dependencies:
|
|
68
69
|
version: '5.0'
|
69
70
|
description:
|
70
71
|
email:
|
71
|
-
-
|
72
|
+
- support@raygun.com
|
73
|
+
- info@bearmetal.eu
|
72
74
|
executables: []
|
73
75
|
extensions: []
|
74
76
|
extra_rdoc_files: []
|
@@ -85,7 +87,7 @@ files:
|
|
85
87
|
- lib/raygun/apm/rails/railtie.rb
|
86
88
|
- lib/raygun/apm/rails/version.rb
|
87
89
|
- raygun-apm-rails.gemspec
|
88
|
-
homepage:
|
90
|
+
homepage: https://raygun.com/platform/apm
|
89
91
|
licenses: []
|
90
92
|
metadata: {}
|
91
93
|
post_install_message:
|
@@ -103,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
103
105
|
- !ruby/object:Gem::Version
|
104
106
|
version: '0'
|
105
107
|
requirements: []
|
106
|
-
rubygems_version: 3.0.
|
108
|
+
rubygems_version: 3.0.6
|
107
109
|
signing_key:
|
108
110
|
specification_version: 4
|
109
111
|
summary: Raygun application performance monitoring for Rails
|