raygun-apm-rails 1.1.2 → 1.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 37bbd014edd21ac021ef27ce2c2c1237b4929fa7ab97932eb846f0ed95a741bb
4
- data.tar.gz: d727c1e6fb3a93d242aa0331c9db3cba4e1e827d823895bef83152c526a10390
3
+ metadata.gz: 985a5c6277614425022e771885d60774cedc3adf7e6b984c72ab9492365ea98d
4
+ data.tar.gz: 69bd21d60eef2a3d224ee432b013c31e9907f008b80be5dd43256b0fbd135e47
5
5
  SHA512:
6
- metadata.gz: 7ee47a2ac3b3b92c3794c872b7117a0d7dd3139915bdb472cd6f22656f18215a69602ccfbc880585a7da4a3d4c69a64fa825bd9db7588c8f93b513af14c3a77f
7
- data.tar.gz: d3763e1a6ed7ab227c07bb131355c3a1fe2639f94dfe7b9173e5c3cc3d857acb2d42a97562a08560b0a5c75dc745d2e6c929ecb53194592cdbcacc2a7af79858
6
+ metadata.gz: 90ed4a1ed6485598e332867679ec9386e60b0b7b637faeb165a713cc49f54dbcbf77d8291b3eacb23c5b43fc49aaf44782e4ab3827da71c43ef0ee1c6ad70242
7
+ data.tar.gz: 6024ec51294d4bdf19d664d9e2583013211c8e91ca3908eb594b0301224869de517386a8e4e7666ab35bcf7af7f67ea472442ba6131d718d955d57a191ebbbdf
@@ -7,11 +7,13 @@ module Raygun
7
7
  @app = app
8
8
  @mutex = Mutex.new
9
9
  @tracer = nil
10
+ @http_in_subscriber = nil
11
+ @sql_subscriber = nil
10
12
  end
11
13
 
12
14
  def call(env)
13
- @status, @headers, @response = instrument(env)
14
- [@status, @headers, @response]
15
+ status, headers, response = instrument(env)
16
+ [status, headers, response]
15
17
  end
16
18
 
17
19
  private
@@ -27,7 +29,7 @@ module Raygun
27
29
  end
28
30
  if @tracer
29
31
  # For the exceptional HTTP IN handler
30
- @request_started = @tracer.now
32
+ Thread.current[:_raygun_request_started] = @tracer.now
31
33
  @tracer.start_trace
32
34
  end
33
35
  exception = nil
@@ -54,7 +56,7 @@ module Raygun
54
56
 
55
57
  def init_tracer
56
58
  tracer = Raygun::Apm::Tracer.new
57
- tracer.udp_sink!
59
+ tracer.enable_sink!
58
60
  ObjectSpace.define_finalizer(self, self.class.finalize(tracer))
59
61
 
60
62
  ActiveSupport::Notifications.unsubscribe(@http_in_subscriber) if @http_in_subscriber
@@ -78,11 +80,14 @@ module Raygun
78
80
  warn "[Raygun APM] shutting down due to error - #{exception.message} #{exception.backtrace.join("\n")}",
79
81
  # Kill extended event subcriptions
80
82
  ActiveSupport::Notifications.unsubscribe(@http_in_subscriber)
83
+ @http_in_subscriber = nil
81
84
  ActiveSupport::Notifications.unsubscribe(@sql_subscriber)
85
+ @sql_subscriber = nil
82
86
  warn "[Raygun APM] notification hooks unsubscribed"
83
- @tracer.end_trace
87
+ @tracer.end_trace if @tracer
84
88
  # Let the GC clean up the sink thread through the finalizer below
85
89
  @tracer = Raygun::Apm::Tracer.instance = nil
90
+ crash_report_exception(exception)
86
91
  raise(exception) unless (Raygun::Apm::FatalError === exception)
87
92
  end
88
93
 
@@ -129,7 +134,7 @@ module Raygun
129
134
  event[:url] = req.url
130
135
  event[:verb] = req.request_method
131
136
  event[:status] = 500
132
- event[:duration] = @tracer.now - @request_started
137
+ event[:duration] = @tracer.now - Thread.current[:_raygun_request_started]
133
138
  event[:timestamp] = @tracer.now
134
139
  event[:tid] = @tracer.get_thread_id(Thread.current)
135
140
  @tracer.emit(event)
@@ -139,7 +144,7 @@ module Raygun
139
144
  end
140
145
 
141
146
  def http_in_event
142
- @http_in_event ||= Raygun::Apm::Event::HttpIn.new
147
+ Thread.current[:_raygun_http_in_event] ||= Raygun::Apm::Event::HttpIn.new
143
148
  end
144
149
 
145
150
  def sql_handler(args)
@@ -179,7 +184,7 @@ module Raygun
179
184
  end
180
185
 
181
186
  def sql_event
182
- @sql_event ||= Raygun::Apm::Event::Sql.new
187
+ Thread.current[:_raygun_sql_event] ||= Raygun::Apm::Event::Sql.new
183
188
  end
184
189
 
185
190
  def Ruby_APM_profiler_trace
@@ -11,9 +11,6 @@ module Raygun
11
11
  app.middleware.delete Raygun::Middleware::RackExceptionInterceptor
12
12
  end
13
13
  app.middleware.use Raygun::Apm::Rails::Middleware
14
- # Explictly enable instrumenting HTTP until a good control API is figured out
15
- require "raygun/apm/hooks/net_http"
16
- require "raygun/apm/hooks/redis" if defined?(Redis::Client)
17
14
  end
18
15
  end
19
16
  end
@@ -1,7 +1,7 @@
1
1
  module Raygun
2
2
  module Apm
3
3
  module Rails
4
- VERSION = "1.1.2"
4
+ VERSION = "1.1.5"
5
5
  end
6
6
  end
7
7
  end
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency "raygun-apm"
21
+ spec.add_dependency "raygun-apm", "~> 1.1.11"
22
22
  spec.add_development_dependency "bundler", "~> 2.1.4"
23
23
  spec.add_development_dependency "rake", "~> 10.0"
24
24
  spec.add_development_dependency "minitest", "~> 5.0"
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: raygun-apm-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Raygun Limited
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-09-13 00:00:00.000000000 Z
11
+ date: 2022-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: raygun-apm
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 1.1.11
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'
26
+ version: 1.1.11
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement