opbeat 2.0.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -3
  3. data/.travis.yml +19 -28
  4. data/.yardopts +3 -0
  5. data/Gemfile +4 -2
  6. data/HISTORY.md +3 -0
  7. data/LICENSE +7 -196
  8. data/README.md +96 -177
  9. data/Rakefile +19 -13
  10. data/gemfiles/Gemfile.base +28 -0
  11. data/gemfiles/Gemfile.rails-3.2.x +3 -0
  12. data/gemfiles/Gemfile.rails-4.0.x +3 -0
  13. data/gemfiles/Gemfile.rails-4.1.x +3 -0
  14. data/gemfiles/Gemfile.rails-4.2.x +3 -0
  15. data/lib/opbeat.rb +113 -93
  16. data/lib/opbeat/capistrano.rb +3 -4
  17. data/lib/opbeat/client.rb +243 -82
  18. data/lib/opbeat/configuration.rb +51 -64
  19. data/lib/opbeat/data_builders.rb +16 -0
  20. data/lib/opbeat/data_builders/error.rb +27 -0
  21. data/lib/opbeat/data_builders/transactions.rb +85 -0
  22. data/lib/opbeat/error.rb +1 -2
  23. data/lib/opbeat/error_message.rb +71 -0
  24. data/lib/opbeat/error_message/exception.rb +12 -0
  25. data/lib/opbeat/error_message/http.rb +62 -0
  26. data/lib/opbeat/error_message/stacktrace.rb +75 -0
  27. data/lib/opbeat/error_message/user.rb +23 -0
  28. data/lib/opbeat/filter.rb +53 -43
  29. data/lib/opbeat/http_client.rb +141 -0
  30. data/lib/opbeat/injections.rb +83 -0
  31. data/lib/opbeat/injections/json.rb +19 -0
  32. data/lib/opbeat/injections/net_http.rb +43 -0
  33. data/lib/opbeat/injections/redis.rb +23 -0
  34. data/lib/opbeat/injections/sequel.rb +32 -0
  35. data/lib/opbeat/injections/sinatra.rb +56 -0
  36. data/lib/opbeat/{capistrano → integration}/capistrano2.rb +6 -6
  37. data/lib/opbeat/{capistrano → integration}/capistrano3.rb +3 -3
  38. data/lib/opbeat/{integrations → integration}/delayed_job.rb +6 -11
  39. data/lib/opbeat/integration/rails/inject_exceptions_catcher.rb +23 -0
  40. data/lib/opbeat/integration/railtie.rb +53 -0
  41. data/lib/opbeat/integration/resque.rb +16 -0
  42. data/lib/opbeat/integration/sidekiq.rb +38 -0
  43. data/lib/opbeat/line_cache.rb +21 -0
  44. data/lib/opbeat/logging.rb +37 -0
  45. data/lib/opbeat/middleware.rb +59 -0
  46. data/lib/opbeat/normalizers.rb +65 -0
  47. data/lib/opbeat/normalizers/action_controller.rb +21 -0
  48. data/lib/opbeat/normalizers/action_view.rb +71 -0
  49. data/lib/opbeat/normalizers/active_record.rb +41 -0
  50. data/lib/opbeat/sql_summarizer.rb +27 -0
  51. data/lib/opbeat/subscriber.rb +80 -0
  52. data/lib/opbeat/tasks.rb +20 -18
  53. data/lib/opbeat/trace.rb +47 -0
  54. data/lib/opbeat/trace_helpers.rb +29 -0
  55. data/lib/opbeat/transaction.rb +99 -0
  56. data/lib/opbeat/util.rb +26 -0
  57. data/lib/opbeat/util/constantize.rb +54 -0
  58. data/lib/opbeat/util/inspector.rb +75 -0
  59. data/lib/opbeat/version.rb +1 -1
  60. data/lib/opbeat/worker.rb +55 -0
  61. data/opbeat.gemspec +6 -14
  62. data/spec/opbeat/client_spec.rb +216 -29
  63. data/spec/opbeat/configuration_spec.rb +34 -38
  64. data/spec/opbeat/data_builders/error_spec.rb +43 -0
  65. data/spec/opbeat/data_builders/transactions_spec.rb +51 -0
  66. data/spec/opbeat/error_message/exception_spec.rb +22 -0
  67. data/spec/opbeat/error_message/http_spec.rb +65 -0
  68. data/spec/opbeat/error_message/stacktrace_spec.rb +56 -0
  69. data/spec/opbeat/error_message/user_spec.rb +28 -0
  70. data/spec/opbeat/error_message_spec.rb +78 -0
  71. data/spec/opbeat/filter_spec.rb +21 -99
  72. data/spec/opbeat/http_client_spec.rb +64 -0
  73. data/spec/opbeat/injections/net_http_spec.rb +37 -0
  74. data/spec/opbeat/injections/sequel_spec.rb +33 -0
  75. data/spec/opbeat/injections/sinatra_spec.rb +13 -0
  76. data/spec/opbeat/injections_spec.rb +49 -0
  77. data/spec/opbeat/integration/delayed_job_spec.rb +35 -0
  78. data/spec/opbeat/integration/json_spec.rb +41 -0
  79. data/spec/opbeat/integration/rails_spec.rb +88 -0
  80. data/spec/opbeat/integration/redis_spec.rb +20 -0
  81. data/spec/opbeat/integration/resque_spec.rb +42 -0
  82. data/spec/opbeat/integration/sidekiq_spec.rb +40 -0
  83. data/spec/opbeat/integration/sinatra_spec.rb +66 -0
  84. data/spec/opbeat/line_cache_spec.rb +38 -0
  85. data/spec/opbeat/logging_spec.rb +47 -0
  86. data/spec/opbeat/middleware_spec.rb +32 -0
  87. data/spec/opbeat/normalizers/action_controller_spec.rb +32 -0
  88. data/spec/opbeat/normalizers/action_view_spec.rb +77 -0
  89. data/spec/opbeat/normalizers/active_record_spec.rb +70 -0
  90. data/spec/opbeat/normalizers_spec.rb +16 -0
  91. data/spec/opbeat/sql_summarizer_spec.rb +6 -0
  92. data/spec/opbeat/subscriber_spec.rb +83 -0
  93. data/spec/opbeat/trace_spec.rb +43 -0
  94. data/spec/opbeat/transaction_spec.rb +98 -0
  95. data/spec/opbeat/util/inspector_spec.rb +40 -0
  96. data/spec/opbeat/util_spec.rb +20 -0
  97. data/spec/opbeat/worker_spec.rb +54 -0
  98. data/spec/opbeat_spec.rb +49 -0
  99. data/spec/spec_helper.rb +79 -6
  100. metadata +89 -149
  101. data/Makefile +0 -3
  102. data/gemfiles/rails30.gemfile +0 -9
  103. data/gemfiles/rails31.gemfile +0 -9
  104. data/gemfiles/rails32.gemfile +0 -9
  105. data/gemfiles/rails40.gemfile +0 -9
  106. data/gemfiles/rails41.gemfile +0 -9
  107. data/gemfiles/rails42.gemfile +0 -9
  108. data/gemfiles/ruby192_rails31.gemfile +0 -10
  109. data/gemfiles/ruby192_rails32.gemfile +0 -10
  110. data/gemfiles/sidekiq31.gemfile +0 -11
  111. data/lib/opbeat/better_attr_accessor.rb +0 -44
  112. data/lib/opbeat/event.rb +0 -223
  113. data/lib/opbeat/integrations/resque.rb +0 -22
  114. data/lib/opbeat/integrations/sidekiq.rb +0 -32
  115. data/lib/opbeat/interfaces.rb +0 -35
  116. data/lib/opbeat/interfaces/exception.rb +0 -16
  117. data/lib/opbeat/interfaces/http.rb +0 -57
  118. data/lib/opbeat/interfaces/message.rb +0 -19
  119. data/lib/opbeat/interfaces/stack_trace.rb +0 -50
  120. data/lib/opbeat/linecache.rb +0 -25
  121. data/lib/opbeat/logger.rb +0 -21
  122. data/lib/opbeat/rack.rb +0 -46
  123. data/lib/opbeat/rails/middleware/debug_exceptions_catcher.rb +0 -22
  124. data/lib/opbeat/railtie.rb +0 -26
  125. data/spec/opbeat/better_attr_accessor_spec.rb +0 -99
  126. data/spec/opbeat/event_spec.rb +0 -138
  127. data/spec/opbeat/integrations/delayed_job_spec.rb +0 -38
  128. data/spec/opbeat/logger_spec.rb +0 -55
  129. data/spec/opbeat/opbeat_spec.rb +0 -64
  130. data/spec/opbeat/rack_spec.rb +0 -117
@@ -0,0 +1,43 @@
1
+ require 'spec_helper'
2
+
3
+ module Opbeat
4
+ describe Trace, mock_time: true do
5
+
6
+ describe "#initialize" do
7
+ it "has a timestamp" do
8
+ trace = Trace.new nil, 'test'
9
+ expect(trace.timestamp).to eq Time.now.utc.to_i
10
+ end
11
+ end
12
+
13
+ describe "#start" do
14
+ it "has a relative and absolute start time with a transaction" do
15
+ transaction = Transaction.new(nil, 'Test')
16
+ travel 400
17
+ trace = transaction.trace 'test-1' do
18
+ travel 100
19
+ transaction.trace 'test-2' do |t|
20
+ travel 100
21
+ t
22
+ end
23
+ end
24
+
25
+ expect(trace.signature).to eq 'test-2'
26
+ expect(trace.relative_start).to eq 100_000_000
27
+ end
28
+ end
29
+
30
+ describe "#done" do
31
+ it "sets duration" do
32
+ transaction = Transaction.new nil, 'Test'
33
+ trace = Trace.new(transaction, 'test').start transaction.start_time
34
+ travel 100
35
+ trace.done
36
+
37
+ expect(trace.duration).to eq 100_000_000
38
+ expect(trace).to be_done
39
+ end
40
+ end
41
+
42
+ end
43
+ end
@@ -0,0 +1,98 @@
1
+ require 'spec_helper'
2
+ require 'opbeat'
3
+
4
+ module Opbeat
5
+ describe Transaction, mock_time: true do
6
+
7
+ describe "#initialize" do
8
+ it "has a root trace, timestamp and start time" do
9
+ transaction = Transaction.new nil, 'Test'
10
+ expect(transaction.traces.length).to be 1
11
+ expect(transaction.timestamp).to eq 694224000
12
+ expect(transaction.start_time).to eq 694224000000000000
13
+ end
14
+ end
15
+
16
+ describe "#release" do
17
+ it "sets clients current transaction to nil" do
18
+ client = Struct.new(:current_transaction).new(1)
19
+ transaction = Transaction.new client, 'Test'
20
+ transaction.release
21
+ expect(client.current_transaction).to be_nil
22
+ end
23
+ end
24
+
25
+ describe "#done" do
26
+ it "it sets result, durations and ends root trace" do
27
+ transaction = Transaction.new nil, 'Test'
28
+
29
+ travel 100
30
+ transaction.done(200)
31
+
32
+ expect(transaction.result).to be 200
33
+ expect(transaction.traces.first).to be_done
34
+ expect(transaction.duration).to eq 100_000_000
35
+ end
36
+ end
37
+
38
+ describe "#submit" do
39
+ it "ends transaction and submits it to the client" do
40
+ client = double('client', submit_transaction: true, :current_transaction= => true)
41
+ transaction = Transaction.new client, 'Test'
42
+
43
+ travel 100
44
+ transaction.submit 200
45
+
46
+ expect(transaction.result).to be 200
47
+ expect(transaction).to be_done
48
+ expect(client).to have_received(:current_transaction=)
49
+ expect(client).to have_received(:submit_transaction).with transaction
50
+ end
51
+ end
52
+
53
+ describe "#running_traces" do
54
+ it "returns running traces" do
55
+ transaction = Transaction.new nil, 'Test'
56
+
57
+ transaction.trace 'test' do
58
+ travel 100
59
+ end
60
+
61
+ running_trace = transaction.trace 'test2'
62
+ travel 100
63
+
64
+ expect(transaction.running_traces).to eq [transaction.root_trace, running_trace]
65
+ end
66
+ end
67
+
68
+ describe "#trace" do
69
+ subject do
70
+ transaction = Transaction.new nil, 'Test'
71
+
72
+ travel 100
73
+
74
+ transaction.trace 'test' do
75
+ travel 100
76
+ end
77
+
78
+ transaction.done
79
+ end
80
+ it "creates a new trace" do
81
+ expect(subject.traces.length).to be 2
82
+ end
83
+ it "has root as a parent" do
84
+ expect(subject.traces.last.parents).to eq [subject.traces.first]
85
+ end
86
+ it "has a duration" do
87
+ expect(subject.traces.last.duration).to eq 100_000_000
88
+ end
89
+ it "has a relative start" do
90
+ expect(subject.traces.last.relative_start).to eq 100_000_000
91
+ end
92
+ it "has a total duration" do
93
+ expect(subject.duration).to eq 200_000_000
94
+ end
95
+ end
96
+
97
+ end
98
+ end
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+
3
+ module Opbeat
4
+ RSpec.describe Util::Inspector, start_without_worker: true, mock_time: true do
5
+
6
+ let(:transaction) do
7
+ Opbeat.transaction 'Test' do |transaction|
8
+ travel 10
9
+ Opbeat.trace('test 1', 'trace.test') do
10
+ travel 100
11
+ Opbeat.trace('test 2', 'trace.test') { travel 150 }
12
+ travel 50
13
+ end
14
+ travel 50
15
+ Opbeat.trace('test 3', 'trace.test') do
16
+ travel 100
17
+ end
18
+ travel 1
19
+
20
+ transaction
21
+ end
22
+ end
23
+ subject do
24
+ Util::Inspector.new.transaction(transaction, include_parents: true)
25
+ end
26
+
27
+ it "doesn't explode" do
28
+ expect { subject }.to_not raise_error
29
+ end
30
+
31
+ it "doesn't exceed it's length" do
32
+ expect(subject.split("\n").map(&:length).find { |l| l < 100 })
33
+ end
34
+
35
+ # preview
36
+ it "is beautiful" do
37
+ puts subject
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ module Opbeat
4
+ RSpec.describe Util do
5
+
6
+ describe "#nearest_minute", mock_time: true do
7
+ it "normalizes to nearest minute" do
8
+ travel 125_000 # two minutes five secs
9
+ expect(Util.nearest_minute).to eq Time.utc(1992, 1, 1, 0, 2, 0)
10
+ end
11
+ end
12
+
13
+ describe "#ms", mock_time: true do
14
+ it "returns current ms since unix epoch" do
15
+ expect(Util.nanos).to eq 694224000000000000
16
+ end
17
+ end
18
+
19
+ end
20
+ end
@@ -0,0 +1,54 @@
1
+ require 'spec_helper'
2
+
3
+ module Opbeat
4
+ RSpec.describe Worker do
5
+
6
+ before do
7
+ @queue = Queue.new
8
+ end
9
+
10
+ let :worker do
11
+ config = build_config
12
+ Worker.new config, @queue, HttpClient.new(config)
13
+ end
14
+
15
+ describe "#run" do
16
+ context "during a loop" do
17
+ before { allow(worker).to receive(:loop).and_yield }
18
+
19
+ subject { Thread.new { worker.run }.join 0.01 }
20
+
21
+ it "does nothing with an empty queue" do
22
+ subject
23
+ expect(WebMock).to_not have_requested(:any, /.*/)
24
+ end
25
+
26
+ it "pops the queue" do
27
+ @queue << Worker::PostRequest.new('/errors/', {id: 1}.to_json)
28
+ @queue << Worker::PostRequest.new('/errors/', {id: 2}.to_json)
29
+
30
+ subject
31
+
32
+ expect(WebMock).to have_requested(:post, %r{/errors/$}).with(body: {id: 1})
33
+ expect(WebMock).to have_requested(:post, %r{/errors/$}).with(body: {id: 2})
34
+ end
35
+ end
36
+
37
+ context "can be stopped by sending a message" do
38
+ it "loops until stopped" do
39
+ thread = Thread.new do
40
+ worker.run
41
+ end
42
+
43
+ @queue << Worker::StopMessage.new
44
+
45
+ thread.join
46
+
47
+ expect(thread).to_not be_alive
48
+ expect(@queue).to be_empty
49
+ end
50
+ end
51
+ end
52
+
53
+ end
54
+ end
@@ -0,0 +1,49 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Opbeat do
4
+
5
+ it { should_not be_started }
6
+
7
+ describe "self.start!" do
8
+ it "delegates to client" do
9
+ conf = Opbeat::Configuration.new app_id: 'x', organization_id: 'y', secret_token: 'z'
10
+ expect(Opbeat::Client).to receive(:start!).with(conf) { true }
11
+ Opbeat.start! conf
12
+ end
13
+ end
14
+
15
+ it { should delegate :stop!, to: Opbeat }
16
+
17
+ describe "when Opbeat is started", start: true do
18
+ it { should be_started }
19
+
20
+ it { should delegate :transaction, to: Opbeat::Client.inst, args: ['Test', nil, nil] }
21
+ it { should delegate :trace, to: Opbeat::Client.inst, args: ['test', nil, {}] }
22
+ it { should delegate :report, to: Opbeat::Client.inst, args: [Exception.new, nil] }
23
+ it { should delegate :report_message, to: Opbeat::Client.inst, args: ["My message", nil] }
24
+ it { should delegate :release, to: Opbeat::Client.inst, args: [{}, {}] }
25
+ it { should delegate :capture, to: Opbeat::Client.inst }
26
+
27
+ describe "a block example", mock_time: true do
28
+ it "is done" do
29
+ transaction = Opbeat.transaction 'Test' do
30
+ travel 100
31
+ Opbeat.trace 'test1' do
32
+ travel 100
33
+ Opbeat.trace 'test1-1' do
34
+ travel 100
35
+ end
36
+ Opbeat.trace 'test1-2' do
37
+ travel 100
38
+ end
39
+ travel 100
40
+ end
41
+ end.done(true)
42
+
43
+ expect(transaction).to be_done
44
+ expect(transaction.duration).to eq 500_000_000
45
+ end
46
+ end
47
+ end
48
+
49
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,10 +1,83 @@
1
- require 'simplecov'
1
+ ENV['RACK_ENV'] = 'test'
2
+
3
+ require 'bundler/setup'
4
+ Bundler.require :default
5
+ require 'timecop'
6
+ require 'webmock/rspec'
7
+
2
8
  SimpleCov.start
3
9
 
4
- def build_exception()
5
- begin
6
- 1 / 0
7
- rescue ZeroDivisionError => exception
8
- return exception
10
+ require 'opbeat'
11
+
12
+ module Opbeat
13
+ class Configuration
14
+ # Override defaults to enable http (caught by WebMock) in test env
15
+ defaults = DEFAULTS.dup.merge enabled_environments: %{test}
16
+ remove_const(:DEFAULTS)
17
+ const_set(:DEFAULTS, defaults.freeze)
9
18
  end
10
19
  end
20
+
21
+ RSpec.configure do |config|
22
+ config.before :each do
23
+ @request_stub = stub_request(:post, /intake\.opbeat\.com/)
24
+ end
25
+
26
+ config.around :each, mock_time: true do |example|
27
+ @date = Time.utc(1992, 1, 1)
28
+
29
+ def travel distance
30
+ Timecop.freeze(@date += distance / 1_000.0)
31
+ end
32
+
33
+ travel 0
34
+ example.run
35
+ Timecop.return
36
+ end
37
+
38
+ def build_config attrs = {}
39
+ Opbeat::Configuration.new({
40
+ app_id: 'x',
41
+ organization_id: 'y',
42
+ secret_token: 'z'
43
+ }.merge(attrs))
44
+ end
45
+
46
+ config.around :each, start: true do |example|
47
+ Opbeat.start! build_config
48
+ example.call
49
+ Opbeat::Client.inst.current_transaction = nil
50
+ Opbeat.stop!
51
+ end
52
+
53
+ config.around :each, start_without_worker: true do |example|
54
+ Opbeat.start! build_config(disable_worker: true)
55
+ example.call
56
+ Opbeat::Client.inst.current_transaction = nil
57
+ Opbeat.stop!
58
+ end
59
+ end
60
+
61
+ RSpec::Matchers.define :delegate do |method, opts|
62
+ to = opts[:to]
63
+ args = opts[:args]
64
+
65
+ match do |delegator|
66
+ unless to.respond_to?(method)
67
+ raise NoMethodError.new("no method :#{method} on #{to}")
68
+ end
69
+
70
+ if args
71
+ allow(to).to receive(method).with(*args) { true }
72
+ else
73
+ allow(to).to receive(method).with(no_args) { true }
74
+ end
75
+
76
+ delegator.send method, *args
77
+ end
78
+
79
+ description do
80
+ "delegate :#{method} to #{to}"
81
+ end
82
+ end
83
+
metadata CHANGED
@@ -1,135 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opbeat
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
- - Thomas Watson Steen
8
- - Ron Cohen
9
- - Noah Kantrowitz
7
+ - Mikkel Malmberg
10
8
  autorequire:
11
9
  bindir: bin
12
10
  cert_chain: []
13
- date: 2015-03-05 00:00:00.000000000 Z
11
+ date: 2016-01-28 00:00:00.000000000 Z
14
12
  dependencies:
15
13
  - !ruby/object:Gem::Dependency
16
- name: faraday
14
+ name: activesupport
17
15
  requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
17
  - - ">="
20
18
  - !ruby/object:Gem::Version
21
- version: 0.7.6
22
- - - "<"
23
- - !ruby/object:Gem::Version
24
- version: '0.10'
19
+ version: 3.0.0
25
20
  type: :runtime
26
21
  prerelease: false
27
22
  version_requirements: !ruby/object:Gem::Requirement
28
23
  requirements:
29
24
  - - ">="
30
25
  - !ruby/object:Gem::Version
31
- version: 0.7.6
32
- - - "<"
33
- - !ruby/object:Gem::Version
34
- version: '0.10'
35
- - !ruby/object:Gem::Dependency
36
- name: multi_json
37
- requirement: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - "~>"
40
- - !ruby/object:Gem::Version
41
- version: '1.0'
42
- type: :runtime
43
- prerelease: false
44
- version_requirements: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - "~>"
47
- - !ruby/object:Gem::Version
48
- version: '1.0'
49
- - !ruby/object:Gem::Dependency
50
- name: bundler
51
- requirement: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - "~>"
54
- - !ruby/object:Gem::Version
55
- version: '1.7'
56
- type: :development
57
- prerelease: false
58
- version_requirements: !ruby/object:Gem::Requirement
59
- requirements:
60
- - - "~>"
61
- - !ruby/object:Gem::Version
62
- version: '1.7'
63
- - !ruby/object:Gem::Dependency
64
- name: rake
65
- requirement: !ruby/object:Gem::Requirement
66
- requirements:
67
- - - "~>"
68
- - !ruby/object:Gem::Version
69
- version: '10.0'
70
- type: :development
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- requirements:
74
- - - "~>"
75
- - !ruby/object:Gem::Version
76
- version: '10.0'
77
- - !ruby/object:Gem::Dependency
78
- name: rspec
79
- requirement: !ruby/object:Gem::Requirement
80
- requirements:
81
- - - ">="
82
- - !ruby/object:Gem::Version
83
- version: '2.14'
84
- type: :development
85
- prerelease: false
86
- version_requirements: !ruby/object:Gem::Requirement
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- version: '2.14'
91
- - !ruby/object:Gem::Dependency
92
- name: simplecov
93
- requirement: !ruby/object:Gem::Requirement
94
- requirements:
95
- - - ">="
96
- - !ruby/object:Gem::Version
97
- version: '0'
98
- type: :development
99
- prerelease: false
100
- version_requirements: !ruby/object:Gem::Requirement
101
- requirements:
102
- - - ">="
103
- - !ruby/object:Gem::Version
104
- version: '0'
105
- - !ruby/object:Gem::Dependency
106
- name: delayed_job
107
- requirement: !ruby/object:Gem::Requirement
108
- requirements:
109
- - - ">="
110
- - !ruby/object:Gem::Version
111
- version: '0'
112
- type: :development
113
- prerelease: false
114
- version_requirements: !ruby/object:Gem::Requirement
115
- requirements:
116
- - - ">="
117
- - !ruby/object:Gem::Version
118
- version: '0'
119
- - !ruby/object:Gem::Dependency
120
- name: sidekiq
121
- requirement: !ruby/object:Gem::Requirement
122
- requirements:
123
- - - "~>"
124
- - !ruby/object:Gem::Version
125
- version: 2.17.0
126
- type: :development
127
- prerelease: false
128
- version_requirements: !ruby/object:Gem::Requirement
129
- requirements:
130
- - - "~>"
131
- - !ruby/object:Gem::Version
132
- version: 2.17.0
26
+ version: 3.0.0
133
27
  description:
134
28
  email: support@opbeat.com
135
29
  executables: []
@@ -141,59 +35,105 @@ files:
141
35
  - ".gitignore"
142
36
  - ".rspec"
143
37
  - ".travis.yml"
38
+ - ".yardopts"
144
39
  - Gemfile
40
+ - HISTORY.md
145
41
  - LICENSE
146
- - Makefile
147
42
  - README.md
148
43
  - Rakefile
149
- - gemfiles/rails30.gemfile
150
- - gemfiles/rails31.gemfile
151
- - gemfiles/rails32.gemfile
152
- - gemfiles/rails40.gemfile
153
- - gemfiles/rails41.gemfile
154
- - gemfiles/rails42.gemfile
155
- - gemfiles/ruby192_rails31.gemfile
156
- - gemfiles/ruby192_rails32.gemfile
157
- - gemfiles/sidekiq31.gemfile
44
+ - gemfiles/Gemfile.base
45
+ - gemfiles/Gemfile.rails-3.2.x
46
+ - gemfiles/Gemfile.rails-4.0.x
47
+ - gemfiles/Gemfile.rails-4.1.x
48
+ - gemfiles/Gemfile.rails-4.2.x
158
49
  - lib/opbeat.rb
159
- - lib/opbeat/better_attr_accessor.rb
160
50
  - lib/opbeat/capistrano.rb
161
- - lib/opbeat/capistrano/capistrano2.rb
162
- - lib/opbeat/capistrano/capistrano3.rb
163
51
  - lib/opbeat/client.rb
164
52
  - lib/opbeat/configuration.rb
53
+ - lib/opbeat/data_builders.rb
54
+ - lib/opbeat/data_builders/error.rb
55
+ - lib/opbeat/data_builders/transactions.rb
165
56
  - lib/opbeat/error.rb
166
- - lib/opbeat/event.rb
57
+ - lib/opbeat/error_message.rb
58
+ - lib/opbeat/error_message/exception.rb
59
+ - lib/opbeat/error_message/http.rb
60
+ - lib/opbeat/error_message/stacktrace.rb
61
+ - lib/opbeat/error_message/user.rb
167
62
  - lib/opbeat/filter.rb
168
- - lib/opbeat/integrations/delayed_job.rb
169
- - lib/opbeat/integrations/resque.rb
170
- - lib/opbeat/integrations/sidekiq.rb
171
- - lib/opbeat/interfaces.rb
172
- - lib/opbeat/interfaces/exception.rb
173
- - lib/opbeat/interfaces/http.rb
174
- - lib/opbeat/interfaces/message.rb
175
- - lib/opbeat/interfaces/stack_trace.rb
176
- - lib/opbeat/linecache.rb
177
- - lib/opbeat/logger.rb
178
- - lib/opbeat/rack.rb
179
- - lib/opbeat/rails/middleware/debug_exceptions_catcher.rb
180
- - lib/opbeat/railtie.rb
63
+ - lib/opbeat/http_client.rb
64
+ - lib/opbeat/injections.rb
65
+ - lib/opbeat/injections/json.rb
66
+ - lib/opbeat/injections/net_http.rb
67
+ - lib/opbeat/injections/redis.rb
68
+ - lib/opbeat/injections/sequel.rb
69
+ - lib/opbeat/injections/sinatra.rb
70
+ - lib/opbeat/integration/capistrano2.rb
71
+ - lib/opbeat/integration/capistrano3.rb
72
+ - lib/opbeat/integration/delayed_job.rb
73
+ - lib/opbeat/integration/rails/inject_exceptions_catcher.rb
74
+ - lib/opbeat/integration/railtie.rb
75
+ - lib/opbeat/integration/resque.rb
76
+ - lib/opbeat/integration/sidekiq.rb
77
+ - lib/opbeat/line_cache.rb
78
+ - lib/opbeat/logging.rb
79
+ - lib/opbeat/middleware.rb
80
+ - lib/opbeat/normalizers.rb
81
+ - lib/opbeat/normalizers/action_controller.rb
82
+ - lib/opbeat/normalizers/action_view.rb
83
+ - lib/opbeat/normalizers/active_record.rb
84
+ - lib/opbeat/sql_summarizer.rb
85
+ - lib/opbeat/subscriber.rb
181
86
  - lib/opbeat/tasks.rb
87
+ - lib/opbeat/trace.rb
88
+ - lib/opbeat/trace_helpers.rb
89
+ - lib/opbeat/transaction.rb
90
+ - lib/opbeat/util.rb
91
+ - lib/opbeat/util/constantize.rb
92
+ - lib/opbeat/util/inspector.rb
182
93
  - lib/opbeat/version.rb
94
+ - lib/opbeat/worker.rb
183
95
  - opbeat.gemspec
184
- - spec/opbeat/better_attr_accessor_spec.rb
185
96
  - spec/opbeat/client_spec.rb
186
97
  - spec/opbeat/configuration_spec.rb
187
- - spec/opbeat/event_spec.rb
98
+ - spec/opbeat/data_builders/error_spec.rb
99
+ - spec/opbeat/data_builders/transactions_spec.rb
100
+ - spec/opbeat/error_message/exception_spec.rb
101
+ - spec/opbeat/error_message/http_spec.rb
102
+ - spec/opbeat/error_message/stacktrace_spec.rb
103
+ - spec/opbeat/error_message/user_spec.rb
104
+ - spec/opbeat/error_message_spec.rb
188
105
  - spec/opbeat/filter_spec.rb
189
- - spec/opbeat/integrations/delayed_job_spec.rb
190
- - spec/opbeat/logger_spec.rb
191
- - spec/opbeat/opbeat_spec.rb
192
- - spec/opbeat/rack_spec.rb
106
+ - spec/opbeat/http_client_spec.rb
107
+ - spec/opbeat/injections/net_http_spec.rb
108
+ - spec/opbeat/injections/sequel_spec.rb
109
+ - spec/opbeat/injections/sinatra_spec.rb
110
+ - spec/opbeat/injections_spec.rb
111
+ - spec/opbeat/integration/delayed_job_spec.rb
112
+ - spec/opbeat/integration/json_spec.rb
113
+ - spec/opbeat/integration/rails_spec.rb
114
+ - spec/opbeat/integration/redis_spec.rb
115
+ - spec/opbeat/integration/resque_spec.rb
116
+ - spec/opbeat/integration/sidekiq_spec.rb
117
+ - spec/opbeat/integration/sinatra_spec.rb
118
+ - spec/opbeat/line_cache_spec.rb
119
+ - spec/opbeat/logging_spec.rb
120
+ - spec/opbeat/middleware_spec.rb
121
+ - spec/opbeat/normalizers/action_controller_spec.rb
122
+ - spec/opbeat/normalizers/action_view_spec.rb
123
+ - spec/opbeat/normalizers/active_record_spec.rb
124
+ - spec/opbeat/normalizers_spec.rb
125
+ - spec/opbeat/sql_summarizer_spec.rb
126
+ - spec/opbeat/subscriber_spec.rb
127
+ - spec/opbeat/trace_spec.rb
128
+ - spec/opbeat/transaction_spec.rb
129
+ - spec/opbeat/util/inspector_spec.rb
130
+ - spec/opbeat/util_spec.rb
131
+ - spec/opbeat/worker_spec.rb
132
+ - spec/opbeat_spec.rb
193
133
  - spec/spec_helper.rb
194
- homepage: https://github.com/opbeat/opbeat_ruby
134
+ homepage: https://github.com/opbeat/opbeat-ruby
195
135
  licenses:
196
- - Apache-2.0
136
+ - BSD-3-Clause
197
137
  metadata: {}
198
138
  post_install_message:
199
139
  rdoc_options: []
@@ -211,8 +151,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
211
151
  version: '0'
212
152
  requirements: []
213
153
  rubyforge_project:
214
- rubygems_version: 2.4.3
154
+ rubygems_version: 2.5.1
215
155
  signing_key:
216
156
  specification_version: 4
217
- summary: The official Opbeat Ruby client
157
+ summary: The official Opbeat Ruby client library
218
158
  test_files: []