rollbar 2.19.2 → 2.19.3
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 +5 -5
- data/.rubocop.yml +27 -0
- data/Appraisals +10 -10
- data/Gemfile +2 -0
- data/README.md +4 -1
- data/Rakefile +0 -0
- data/data/rollbar.snippet.js +1 -1
- data/gemfiles/rails30.gemfile +2 -0
- data/gemfiles/rails31.gemfile +2 -0
- data/gemfiles/rails32.gemfile +2 -0
- data/gemfiles/rails40.gemfile +2 -0
- data/gemfiles/rails41.gemfile +2 -0
- data/gemfiles/rails42.gemfile +2 -0
- data/gemfiles/rails50.gemfile +2 -0
- data/gemfiles/rails51.gemfile +2 -0
- data/gemfiles/rails52.gemfile +2 -0
- data/gemfiles/ruby_1_8_and_1_9_2.gemfile +2 -0
- data/lib/generators/rollbar/rollbar_generator.rb +1 -1
- data/lib/rails/rollbar_runner.rb +1 -1
- data/lib/rollbar.rb +2 -3
- data/lib/rollbar/capistrano3.rb +6 -3
- data/lib/rollbar/capistrano_tasks.rb +13 -15
- data/lib/rollbar/configuration.rb +10 -8
- data/lib/rollbar/delay/girl_friday.rb +2 -2
- data/lib/rollbar/delay/resque.rb +4 -6
- data/lib/rollbar/delay/sidekiq.rb +6 -10
- data/lib/rollbar/delay/sucker_punch.rb +17 -19
- data/lib/rollbar/delay/thread.rb +2 -2
- data/lib/rollbar/deploy.rb +47 -30
- data/lib/rollbar/encoding/encoder.rb +9 -9
- data/lib/rollbar/item.rb +7 -7
- data/lib/rollbar/item/backtrace.rb +4 -4
- data/lib/rollbar/item/frame.rb +7 -1
- data/lib/rollbar/item/locals.rb +56 -0
- data/lib/rollbar/json.rb +5 -2
- data/lib/rollbar/json/default.rb +1 -1
- data/lib/rollbar/json/oj.rb +1 -1
- data/lib/rollbar/language_support.rb +1 -1
- data/lib/rollbar/lazy_store.rb +5 -5
- data/lib/rollbar/logger.rb +1 -0
- data/lib/rollbar/logger_proxy.rb +1 -1
- data/lib/rollbar/middleware/js.rb +15 -15
- data/lib/rollbar/middleware/rack.rb +4 -1
- data/lib/rollbar/middleware/rails/rollbar.rb +10 -1
- data/lib/rollbar/notifier.rb +40 -15
- data/lib/rollbar/notifier/trace_with_bindings.rb +65 -0
- data/lib/rollbar/plugin.rb +54 -6
- data/lib/rollbar/plugins.rb +7 -1
- data/lib/rollbar/plugins/basic_socket.rb +21 -6
- data/lib/rollbar/plugins/delayed_job/job_data.rb +3 -3
- data/lib/rollbar/plugins/delayed_job/plugin.rb +2 -2
- data/lib/rollbar/plugins/goalie.rb +11 -3
- data/lib/rollbar/plugins/rails/controller_methods.rb +15 -3
- data/lib/rollbar/plugins/rake.rb +2 -2
- data/lib/rollbar/plugins/sidekiq/plugin.rb +5 -4
- data/lib/rollbar/rake_tasks.rb +2 -2
- data/lib/rollbar/request_data_extractor.rb +21 -18
- data/lib/rollbar/scrubbers.rb +7 -3
- data/lib/rollbar/scrubbers/params.rb +17 -16
- data/lib/rollbar/scrubbers/url.rb +8 -3
- data/lib/rollbar/truncation.rb +1 -1
- data/lib/rollbar/truncation/strings_strategy.rb +1 -1
- data/lib/rollbar/util/ip_anonymizer.rb +8 -7
- data/lib/rollbar/util/ip_obfuscator.rb +1 -1
- data/lib/rollbar/version.rb +1 -1
- data/lib/tasks/benchmark.rake +103 -0
- data/rollbar.gemspec +13 -4
- metadata +12 -5
data/lib/rollbar/truncation.rb
CHANGED
@@ -5,26 +5,27 @@ module Rollbar
|
|
5
5
|
|
6
6
|
def self.anonymize_ip(ip_string)
|
7
7
|
return ip_string unless Rollbar.configuration.anonymize_user_ip
|
8
|
+
|
8
9
|
ip = IPAddr.new(ip_string)
|
9
10
|
return anonymize_ipv6 ip if ip.ipv6?
|
10
11
|
return anonymize_ipv4 ip if ip.ipv4?
|
11
|
-
rescue
|
12
|
+
rescue StandardError
|
12
13
|
nil
|
13
14
|
end
|
14
|
-
|
15
|
+
|
15
16
|
def self.anonymize_ipv4(ip)
|
16
17
|
ip_parts = ip.to_s.split '.'
|
17
|
-
|
18
|
+
|
18
19
|
ip_parts[ip_parts.count - 1] = '0'
|
19
|
-
|
20
|
+
|
20
21
|
IPAddr.new(ip_parts.join('.')).to_s
|
21
22
|
end
|
22
|
-
|
23
|
+
|
23
24
|
def self.anonymize_ipv6(ip)
|
24
25
|
ip_parts = ip.to_s.split ':'
|
25
|
-
|
26
|
+
|
26
27
|
ip_string = ip_parts[0..2].join(':') + ':0000:0000:0000:0000:0000'
|
27
|
-
|
28
|
+
|
28
29
|
IPAddr.new(ip_string).to_s
|
29
30
|
end
|
30
31
|
end
|
data/lib/rollbar/version.rb
CHANGED
@@ -0,0 +1,103 @@
|
|
1
|
+
require 'benchmark'
|
2
|
+
|
3
|
+
namespace :benchmark do
|
4
|
+
desc 'Measure TracePoint perf for current Ruby'
|
5
|
+
task :trace_point do
|
6
|
+
ARGV.each { |a| task(a.to_sym { ; }) } # Keep rake from treating these ask task names.
|
7
|
+
|
8
|
+
options = {}.tap do |hash|
|
9
|
+
ARGV.each { |arg| hash[arg] = true }
|
10
|
+
end
|
11
|
+
|
12
|
+
puts "options: #{options}"
|
13
|
+
|
14
|
+
trace_with_bindings = BenchmarkTraceWithBindings.new(options)
|
15
|
+
|
16
|
+
trace_with_bindings.enable
|
17
|
+
puts(Benchmark.measure do
|
18
|
+
TraceTest.benchmark_with_locals
|
19
|
+
end)
|
20
|
+
trace_with_bindings.disable
|
21
|
+
|
22
|
+
puts "counts: #{trace_with_bindings.counts}" if options['counts']
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class TraceTest # :nodoc:
|
27
|
+
class << self
|
28
|
+
def benchmark_with_locals
|
29
|
+
foo = false
|
30
|
+
|
31
|
+
(0..20_000).each do |index|
|
32
|
+
foo = TraceTest
|
33
|
+
|
34
|
+
change_frame_with_locals(foo, index)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def change_frame_with_locals(foo, _index)
|
39
|
+
foo.tap do |obj|
|
40
|
+
bar = 'bar'
|
41
|
+
hash = { :foo => obj, :bar => bar } # rubocop:disable Lint/UselessAssignment
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
class BenchmarkTraceWithBindings # :nodoc:
|
48
|
+
attr_reader :frames, :exception_frames, :options, :counts
|
49
|
+
|
50
|
+
def initialize(options = {})
|
51
|
+
@options = options
|
52
|
+
@frames = []
|
53
|
+
@exception_frames = []
|
54
|
+
@exception_signature = nil
|
55
|
+
@counts = init_counts({})
|
56
|
+
end
|
57
|
+
|
58
|
+
def init_counts(counts)
|
59
|
+
[:call, :b_call, :c_call, :class].each do |event|
|
60
|
+
counts[event] = 0
|
61
|
+
end
|
62
|
+
counts
|
63
|
+
end
|
64
|
+
|
65
|
+
def enable
|
66
|
+
return if options['disable']
|
67
|
+
|
68
|
+
trace_point.enable if defined?(TracePoint)
|
69
|
+
end
|
70
|
+
|
71
|
+
def disable
|
72
|
+
return if options['disable']
|
73
|
+
|
74
|
+
trace_point.disable if defined?(TracePoint)
|
75
|
+
end
|
76
|
+
|
77
|
+
def trace_point # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
78
|
+
return unless defined?(TracePoint)
|
79
|
+
|
80
|
+
@trace_point ||= TracePoint.new(:call, :return, :b_call, :b_return, :c_call, :c_return, :raise) do |tp|
|
81
|
+
next if options['hook_only']
|
82
|
+
|
83
|
+
case tp.event
|
84
|
+
when :call, :b_call, :c_call, :class
|
85
|
+
@counts[tp.event] += 1 if options['counts']
|
86
|
+
frame = options['frame'] ? frame(tp) : {}
|
87
|
+
frames.push frame if options['stack']
|
88
|
+
when :return, :b_return, :c_return, :end
|
89
|
+
frames.pop if options['stack']
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
def frame(trace)
|
95
|
+
{
|
96
|
+
:binding => trace.binding,
|
97
|
+
:defined_class => trace.defined_class,
|
98
|
+
:method_id => trace.method_id,
|
99
|
+
:path => trace.path,
|
100
|
+
:lineno => trace.lineno
|
101
|
+
}
|
102
|
+
end
|
103
|
+
end
|
data/rollbar.gemspec
CHANGED
@@ -1,21 +1,30 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
|
2
3
|
require File.expand_path('../lib/rollbar/version', __FILE__)
|
3
4
|
|
4
5
|
Gem::Specification.new do |gem|
|
5
|
-
|
6
|
+
_is_jruby = defined?(JRUBY_VERSION) || (defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby')
|
6
7
|
|
7
8
|
gem.authors = ['Rollbar, Inc.']
|
8
9
|
gem.email = ['support@rollbar.com']
|
9
|
-
gem.description =
|
10
|
+
gem.description = 'Easy and powerful exception tracking for Ruby'
|
10
11
|
gem.executables = ['rollbar-rails-runner']
|
11
|
-
gem.summary =
|
12
|
+
gem.summary = 'Reports exceptions to Rollbar'
|
12
13
|
gem.homepage = 'https://rollbar.com'
|
13
14
|
gem.license = 'MIT'
|
14
15
|
gem.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
15
16
|
gem.name = 'rollbar'
|
16
17
|
gem.require_paths = ['lib']
|
17
18
|
gem.required_ruby_version = '>= 1.9.3'
|
18
|
-
gem.version
|
19
|
+
gem.version = Rollbar::VERSION
|
19
20
|
|
20
21
|
gem.add_runtime_dependency 'multi_json'
|
22
|
+
|
23
|
+
if gem.respond_to?(:metadata)
|
24
|
+
gem.metadata['changelog_uri'] = 'https://github.com/rollbar/rollbar-gem/releases'
|
25
|
+
gem.metadata['source_code_uri'] = 'https://github.com/rollbar/rollbar-gem'
|
26
|
+
gem.metadata['bug_tracker_uri'] = 'https://github.com/rollbar/rollbar-gem/issues'
|
27
|
+
gem.metadata['homepage_uri'] = 'https://rollbar.com/'
|
28
|
+
gem.metadata['documentation_uri'] = 'https://docs.rollbar.com/docs/ruby'
|
29
|
+
end
|
21
30
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rollbar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.19.
|
4
|
+
version: 2.19.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rollbar, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multi_json
|
@@ -85,6 +85,7 @@ files:
|
|
85
85
|
- lib/rollbar/item.rb
|
86
86
|
- lib/rollbar/item/backtrace.rb
|
87
87
|
- lib/rollbar/item/frame.rb
|
88
|
+
- lib/rollbar/item/locals.rb
|
88
89
|
- lib/rollbar/js.rb
|
89
90
|
- lib/rollbar/json.rb
|
90
91
|
- lib/rollbar/json/default.rb
|
@@ -102,6 +103,7 @@ files:
|
|
102
103
|
- lib/rollbar/middleware/rails/show_exceptions.rb
|
103
104
|
- lib/rollbar/middleware/sinatra.rb
|
104
105
|
- lib/rollbar/notifier.rb
|
106
|
+
- lib/rollbar/notifier/trace_with_bindings.rb
|
105
107
|
- lib/rollbar/plugin.rb
|
106
108
|
- lib/rollbar/plugins.rb
|
107
109
|
- lib/rollbar/plugins/active_job.rb
|
@@ -140,12 +142,18 @@ files:
|
|
140
142
|
- lib/rollbar/util/ip_anonymizer.rb
|
141
143
|
- lib/rollbar/util/ip_obfuscator.rb
|
142
144
|
- lib/rollbar/version.rb
|
145
|
+
- lib/tasks/benchmark.rake
|
143
146
|
- lib/tasks/tasks.rake
|
144
147
|
- rollbar.gemspec
|
145
148
|
homepage: https://rollbar.com
|
146
149
|
licenses:
|
147
150
|
- MIT
|
148
|
-
metadata:
|
151
|
+
metadata:
|
152
|
+
changelog_uri: https://github.com/rollbar/rollbar-gem/releases
|
153
|
+
source_code_uri: https://github.com/rollbar/rollbar-gem
|
154
|
+
bug_tracker_uri: https://github.com/rollbar/rollbar-gem/issues
|
155
|
+
homepage_uri: https://rollbar.com/
|
156
|
+
documentation_uri: https://docs.rollbar.com/docs/ruby
|
149
157
|
post_install_message:
|
150
158
|
rdoc_options: []
|
151
159
|
require_paths:
|
@@ -161,8 +169,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
161
169
|
- !ruby/object:Gem::Version
|
162
170
|
version: '0'
|
163
171
|
requirements: []
|
164
|
-
|
165
|
-
rubygems_version: 2.5.1
|
172
|
+
rubygems_version: 3.0.1
|
166
173
|
signing_key:
|
167
174
|
specification_version: 4
|
168
175
|
summary: Reports exceptions to Rollbar
|