rorvswild 1.5.8 → 1.5.9

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: 75f2fdba9fff15749762886844ffe4847fea3db15f6f777313625b4d88d3ccb4
4
- data.tar.gz: 6f03efbb858658d3e7ed29e73d90926e2217d1d733aa0246a364cf13e4492391
3
+ metadata.gz: 82e99bed32ec2670bc121da6de38cdfa320cf2d86f1e09004f08629eab6c0040
4
+ data.tar.gz: d92ed6e8faa815ff9be3dd3d6ee8528a5c9b43824c803616c0106276111baf45
5
5
  SHA512:
6
- metadata.gz: f7e3227c4499002874c4d2cd96c97181098d71b433873c6f139e90223d2022cd51357f37e98a3277434797bd81ef1ca122af02a71b5373436c93a51ac15aba53
7
- data.tar.gz: 9d848e8f284c5d359d675362a48c095df672ebcc4d55855225aaca119585d41e8dbb7359cdde0c540aba0c3a710dddda922c7fe87aab3030b53c0c4088115f8f
6
+ metadata.gz: 3b48fea4d285459afe675e47cde1a2ca2cd658f09dcc742b8f425e83dfa346714940688bbcbd83a356db24c154ea7bb15643b68e673714563a35261416cc6eec
7
+ data.tar.gz: 3162a68b10887ea2733757f7bd7cf3edb8b76479e6f558ac2f096aa3e9225486350dca307c22611743448cc0801b0883c42b42b16f25cf6096e39586c6c34955
@@ -1,4 +1,6 @@
1
1
  require "logger"
2
+ require "socket"
3
+ require "etc"
2
4
 
3
5
  module RorVsWild
4
6
  class Agent
@@ -26,7 +28,7 @@ module RorVsWild
26
28
  @config = self.class.default_config.merge(config)
27
29
  @client = Client.new(@config)
28
30
  @queue = config[:queue] || Queue.new(client)
29
- @locator = RorVsWild::Locator.new(defined?(Rails) ? Rails.root.to_s : ENV["PWD"])
31
+ @locator = RorVsWild::Locator.new
30
32
 
31
33
  RorVsWild.logger.info("Start RorVsWild #{RorVsWild::VERSION}")
32
34
  setup_plugins
@@ -72,7 +74,7 @@ module RorVsWild
72
74
  begin
73
75
  block.call
74
76
  rescue Exception => ex
75
- push_exception(ex, parameters: parameters)
77
+ push_exception(ex, parameters: parameters, job: {name: name})
76
78
  raise
77
79
  ensure
78
80
  current_data[:runtime] = RorVsWild.clock_milliseconds - current_data[:started_at]
@@ -168,11 +170,26 @@ module RorVsWild
168
170
  backtrace: exception.backtrace || ["No backtrace"],
169
171
  exception: exception.class.to_s,
170
172
  extra_details: extra_details,
173
+ environment: {
174
+ os: os_description,
175
+ user: Etc.getlogin,
176
+ host: Socket.gethostname,
177
+ ruby: RUBY_DESCRIPTION,
178
+ pid: Process.pid,
179
+ cwd: Dir.pwd,
180
+ lib_paths: locator.lib_paths,
181
+ },
171
182
  }
172
183
  end
173
184
 
174
185
  def ignored_exception?(exception)
175
186
  (config[:ignored_exceptions] || config[:ignore_exceptions]).include?(exception.class.to_s)
176
187
  end
188
+
189
+ def os_description
190
+ @os_description ||= `uname -a`
191
+ rescue Exception => ex
192
+ @os_description = RUBY_PLATFORM
193
+ end
177
194
  end
178
195
  end
@@ -21,7 +21,11 @@ module RorVsWild
21
21
  @connection_count = 0
22
22
  @mutex = Mutex.new
23
23
  @config = config
24
- @headers = {"Content-Type" => "application/json", "X-Gem-Version" => RorVsWild::VERSION}
24
+ @headers = {
25
+ "Content-Type" => "application/json",
26
+ "X-RorVsWild-Version" => RorVsWild::VERSION,
27
+ "X-Ruby-Version" => RUBY_VERSION,
28
+ }
25
29
  @headers["X-Rails-Version"] = Rails.version if defined?(Rails)
26
30
  end
27
31
 
@@ -2,8 +2,8 @@ module RorVsWild
2
2
  class Locator
3
3
  attr_reader :current_path
4
4
 
5
- def initialize(current_path = ENV["PWD"])
6
- @current_path = current_path
5
+ def initialize(current_path = Dir.pwd)
6
+ @current_path = File.join(current_path, "")
7
7
  end
8
8
 
9
9
  def find_most_relevant_file_and_line(locations)
@@ -42,26 +42,21 @@ module RorVsWild
42
42
  end
43
43
 
44
44
  def irrelevant_path?(path)
45
- path.start_with?(*irrelevant_paths)
45
+ path.start_with?(*lib_paths)
46
46
  end
47
47
 
48
- def irrelevant_paths
49
- @irrelevant_paths ||= initialize_irrelevant_paths
48
+ def lib_paths
49
+ @lib_paths ||= initialize_lib_paths
50
50
  end
51
51
 
52
52
  private
53
53
 
54
- def initialize_irrelevant_paths
55
- array = ["RUBYLIB", "GEM_HOME", "GEM_PATH", "BUNDLER_ORIG_GEM_PATH"].flat_map do |name|
54
+ def initialize_lib_paths
55
+ array = [RbConfig::CONFIG["rubylibprefix"]] + Gem.default_path + Gem.path
56
+ array += ["RUBYLIB", "GEM_HOME", "GEM_PATH", "BUNDLER_ORIG_GEM_PATH"].flat_map do |name|
56
57
  ENV[name].split(":".freeze) if ENV[name]
57
58
  end
58
- array += [heroku_ruby_lib_path] if File.exists?(heroku_ruby_lib_path)
59
- array += Gem.path
60
59
  array.compact.uniq
61
60
  end
62
-
63
- def heroku_ruby_lib_path
64
- "/app/vendor/ruby-#{RUBY_VERSION}/lib"
65
- end
66
61
  end
67
62
  end
@@ -35,7 +35,12 @@ module RorVsWild
35
35
  if hash = RorVsWild.agent.push_exception(exception)
36
36
  hash[:session] = controller.session.to_hash
37
37
  hash[:parameters] = controller.request.filtered_parameters
38
- hash[:environment_variables] = extract_http_headers(controller.request.filtered_env)
38
+ hash[:request] = {
39
+ headers: extract_http_headers(controller.request.filtered_env),
40
+ name: "#{controller.class}##{controller.action_name}",
41
+ method: controller.request.method,
42
+ url: controller.request.url,
43
+ }
39
44
  end
40
45
  raise exception
41
46
  end
@@ -66,5 +66,13 @@ module RorVsWild
66
66
  def command=(value)
67
67
  @command = value && value.size > COMMAND_MAX_SIZE ? value[0, COMMAND_MAX_SIZE] + " [TRUNCATED]" : value
68
68
  end
69
+
70
+ def to_h
71
+ {calls: calls, total_runtime: total_runtime, children_runtime: children_runtime, kind: kind, started_at: started_at, file: file, line: line, command: command}
72
+ end
73
+
74
+ def to_json(options = {})
75
+ to_h.to_json(options)
76
+ end
69
77
  end
70
78
  end
@@ -1,3 +1,3 @@
1
1
  module RorVsWild
2
- VERSION = "1.5.8".freeze
2
+ VERSION = "1.5.9".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rorvswild
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.8
4
+ version: 1.5.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexis Bernard
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-10-16 00:00:00.000000000 Z
12
+ date: 2021-02-19 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Performances and errors insights for rails developers.
15
15
  email: