traceview 3.3.3-java → 3.4.0-java
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/.travis.yml +18 -18
- data/CHANGELOG.md +13 -0
- data/README.md +3 -1
- data/Rakefile +18 -9
- data/gemfiles/delayed_job.gemfile +38 -0
- data/gemfiles/frameworks.gemfile +1 -2
- data/gemfiles/libraries.gemfile +1 -2
- data/gemfiles/rails23.gemfile +1 -2
- data/gemfiles/rails30.gemfile +4 -2
- data/gemfiles/rails31.gemfile +4 -2
- data/gemfiles/rails32.gemfile +4 -2
- data/gemfiles/rails40.gemfile +4 -2
- data/gemfiles/rails41.gemfile +4 -2
- data/gemfiles/rails42.gemfile +4 -2
- data/lib/traceview/api/layerinit.rb +3 -5
- data/lib/traceview/api/logging.rb +63 -50
- data/lib/traceview/api/memcache.rb +10 -9
- data/lib/traceview/api/profiling.rb +6 -7
- data/lib/traceview/api/util.rb +1 -1
- data/lib/traceview/base.rb +21 -7
- data/lib/traceview/config.rb +8 -4
- data/lib/traceview/frameworks/padrino.rb +2 -2
- data/lib/traceview/frameworks/rails/inst/action_controller.rb +3 -3
- data/lib/traceview/frameworks/rails/inst/action_view.rb +4 -2
- data/lib/traceview/frameworks/rails/inst/action_view_2x.rb +4 -2
- data/lib/traceview/frameworks/rails/inst/action_view_30.rb +4 -2
- data/lib/traceview/frameworks/rails/inst/connection_adapters/utils.rb +3 -3
- data/lib/traceview/frameworks/rails.rb +26 -32
- data/lib/traceview/frameworks/sinatra/templates.rb +1 -1
- data/lib/traceview/frameworks/sinatra.rb +1 -1
- data/lib/traceview/inst/dalli.rb +4 -5
- data/lib/traceview/inst/delayed_job.rb +92 -0
- data/lib/traceview/inst/em-http-request.rb +3 -0
- data/lib/traceview/inst/excon.rb +3 -3
- data/lib/traceview/inst/faraday.rb +4 -1
- data/lib/traceview/inst/mongo.rb +10 -5
- data/lib/traceview/inst/moped.rb +4 -4
- data/lib/traceview/inst/redis.rb +5 -7
- data/lib/traceview/inst/resque.rb +3 -3
- data/lib/traceview/inst/rest-client.rb +2 -2
- data/lib/traceview/inst/sidekiq-client.rb +3 -0
- data/lib/traceview/inst/sidekiq-worker.rb +3 -0
- data/lib/traceview/inst/twitter-cassandra.rb +8 -4
- data/lib/traceview/test.rb +30 -1
- data/lib/traceview/util.rb +7 -0
- data/lib/traceview/version.rb +2 -2
- data/test/frameworks/rails3x_test.rb +12 -2
- data/test/frameworks/rails4x_test.rb +12 -2
- data/test/instrumentation/curb_test.rb +2 -2
- data/test/instrumentation/dalli_test.rb +121 -118
- data/test/instrumentation/httpclient_test.rb +0 -1
- data/test/jobs/delayed_job/db_worker_job.rb +29 -0
- data/test/jobs/delayed_job/error_worker_job.rb +10 -0
- data/test/jobs/delayed_job/remote_call_worker_job.rb +20 -0
- data/test/minitest_helper.rb +8 -3
- data/test/models/widget.rb +19 -0
- data/test/queues/delayed_job-client_test.rb +95 -0
- data/test/queues/delayed_job-worker_test.rb +91 -0
- data/test/servers/delayed_job.rb +102 -0
- data/test/servers/rails3x_8140.rb +17 -1
- data/test/servers/rails4x_8140.rb +18 -1
- data/test/support/auto_tracing.rb +40 -0
- data/test/support/config_test.rb +5 -1
- data/traceview.gemspec +1 -0
- metadata +34 -6
- data/test/instrumentation/delayed_job-client_test.rb +0 -128
- data/test/instrumentation/delayed_job-worker_test.rb +0 -177
@@ -0,0 +1,19 @@
|
|
1
|
+
class Widget < ActiveRecord::Base
|
2
|
+
def do_work(*args)
|
3
|
+
Widget.first
|
4
|
+
end
|
5
|
+
|
6
|
+
def do_error(*args)
|
7
|
+
raise "FakeTestError"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
class CreateWidgets < ActiveRecord::Migration
|
12
|
+
def change
|
13
|
+
create_table :widgets do |t|
|
14
|
+
t.string :name
|
15
|
+
t.text :description
|
16
|
+
t.timestamps
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,95 @@
|
|
1
|
+
# Copyright (c) 2015 AppNeta, Inc.
|
2
|
+
# All rights reserved.
|
3
|
+
|
4
|
+
require 'minitest_helper'
|
5
|
+
require_relative "../jobs/delayed_job/remote_call_worker_job"
|
6
|
+
require_relative "../jobs/delayed_job/db_worker_job"
|
7
|
+
require_relative "../jobs/delayed_job/error_worker_job"
|
8
|
+
require_relative '../models/widget'
|
9
|
+
|
10
|
+
# Delete all pre-existing jobs before we start
|
11
|
+
Delayed::Job.delete_all
|
12
|
+
|
13
|
+
class DelayedJobClientTest < Minitest::Test
|
14
|
+
def setup
|
15
|
+
clear_all_traces
|
16
|
+
@collect_backtraces = TraceView::Config[:delayed_jobclient][:collect_backtraces]
|
17
|
+
@log_args = TraceView::Config[:delayed_jobclient][:log_args]
|
18
|
+
end
|
19
|
+
|
20
|
+
def teardown
|
21
|
+
TraceView::Config[:delayed_jobclient][:collect_backtraces] = @collect_backtraces
|
22
|
+
TraceView::Config[:delayed_jobclient][:log_args] = @log_args
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_delay
|
26
|
+
w = Widget.new(:name => 'blah', :description => 'This is a wonderful widget.')
|
27
|
+
w.save
|
28
|
+
|
29
|
+
TV::API.start_trace('dj_delay') do
|
30
|
+
w.delay.do_work(1, 2, 3)
|
31
|
+
end
|
32
|
+
|
33
|
+
sleep 15
|
34
|
+
|
35
|
+
traces = get_all_traces
|
36
|
+
valid_edges?(traces)
|
37
|
+
|
38
|
+
assert_equal 'dj_delay', traces[0]['Layer']
|
39
|
+
assert_equal 'entry', traces[0]['Label']
|
40
|
+
assert_equal 'delayed_job-client', traces[1]['Layer']
|
41
|
+
assert_equal 'entry', traces[1]['Label']
|
42
|
+
assert_equal 'pushq', traces[1]['Spec']
|
43
|
+
assert_equal 'DelayedJob', traces[1]['Flavor']
|
44
|
+
assert_equal 'Widget#do_work', traces[1]['JobName']
|
45
|
+
assert_equal 'delayed_job-client', traces[2]['Layer']
|
46
|
+
assert_equal 'exit', traces[2]['Label']
|
47
|
+
assert_equal 'dj_delay', traces[3]['Layer']
|
48
|
+
assert_equal 'exit', traces[3]['Label']
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_collect_backtraces_default_value
|
53
|
+
assert_equal TV::Config[:delayed_jobclient][:collect_backtraces], false, "default backtrace collection"
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_log_args_default_value
|
57
|
+
assert_equal TV::Config[:delayed_jobclient][:log_args], true, "log_args default "
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_obey_collect_backtraces_when_false
|
61
|
+
TraceView::Config[:delayed_jobclient][:collect_backtraces] = false
|
62
|
+
|
63
|
+
w = Widget.new(:name => 'blah', :description => 'This is a wonderful widget.')
|
64
|
+
w.save
|
65
|
+
|
66
|
+
TV::API.start_trace('dj_delay') do
|
67
|
+
w.delay.do_work(1, 2, 3)
|
68
|
+
end
|
69
|
+
|
70
|
+
traces = get_all_traces
|
71
|
+
valid_edges?(traces)
|
72
|
+
|
73
|
+
assert_equal 'delayed_job-client', traces[1]['Layer']
|
74
|
+
assert_equal 'entry', traces[1]['Label']
|
75
|
+
assert_equal false, traces[1].key?('Backtrace')
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_obey_collect_backtraces_when_true
|
79
|
+
TraceView::Config[:delayed_jobclient][:collect_backtraces] = true
|
80
|
+
|
81
|
+
w = Widget.new(:name => 'blah', :description => 'This is a wonderful widget.')
|
82
|
+
w.save
|
83
|
+
|
84
|
+
TV::API.start_trace('dj_delay') do
|
85
|
+
w.delay.do_work(1, 2, 3)
|
86
|
+
end
|
87
|
+
|
88
|
+
traces = get_all_traces
|
89
|
+
valid_edges?(traces)
|
90
|
+
|
91
|
+
assert_equal 'delayed_job-client', traces[1]['Layer']
|
92
|
+
assert_equal 'entry', traces[1]['Label']
|
93
|
+
assert_equal true, traces[1].key?('Backtrace')
|
94
|
+
end
|
95
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
# Copyright (c) 2015 AppNeta, Inc.
|
2
|
+
# All rights reserved.
|
3
|
+
|
4
|
+
require 'minitest_helper'
|
5
|
+
require_relative '../jobs/delayed_job/remote_call_worker_job'
|
6
|
+
require_relative '../jobs/delayed_job/db_worker_job'
|
7
|
+
require_relative '../jobs/delayed_job/error_worker_job'
|
8
|
+
require_relative '../models/widget'
|
9
|
+
|
10
|
+
class DelayedJobWorkerTest < Minitest::Test
|
11
|
+
def setup
|
12
|
+
# Delete all pre-existing jobs before we start
|
13
|
+
Delayed::Job.delete_all
|
14
|
+
|
15
|
+
clear_all_traces
|
16
|
+
@collect_backtraces = TraceView::Config[:delayed_jobworker][:collect_backtraces]
|
17
|
+
@log_args = TraceView::Config[:delayed_jobworker][:log_args]
|
18
|
+
end
|
19
|
+
|
20
|
+
def teardown
|
21
|
+
TraceView::Config[:delayed_jobworker][:collect_backtraces] = @collect_backtraces
|
22
|
+
TraceView::Config[:delayed_jobworker][:log_args] = @log_args
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_reports_version_init
|
26
|
+
init_kvs = ::TraceView::Util.build_init_report
|
27
|
+
assert init_kvs.key?('Ruby.DelayedJob.Version')
|
28
|
+
assert_equal "DelayedJob-#{Gem.loaded_specs['delayed_job'].version.to_s}", init_kvs['Ruby.DelayedJob.Version']
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_job_run
|
32
|
+
w = Widget.new(:name => 'blah', :description => 'This is a wonderful wonderful widget.')
|
33
|
+
w.save
|
34
|
+
|
35
|
+
w.delay.do_work(1, 2, 3)
|
36
|
+
|
37
|
+
sleep 15
|
38
|
+
|
39
|
+
traces = get_all_traces
|
40
|
+
assert_equal 2, traces.count, "Trace count"
|
41
|
+
valid_edges?(traces)
|
42
|
+
|
43
|
+
assert_equal 'delayed_job-worker', traces[0]['Layer']
|
44
|
+
assert_equal 'entry', traces[0]['Label']
|
45
|
+
assert_equal 'job', traces[0]['Spec']
|
46
|
+
assert_equal 'DelayedJob', traces[0]['Flavor']
|
47
|
+
assert_equal 'Widget#do_work', traces[0]['JobName']
|
48
|
+
assert_equal 0, traces[0]['priority']
|
49
|
+
assert_equal 0, traces[0]['attempts']
|
50
|
+
assert traces[0].key?('WorkerName'), "Worker Name"
|
51
|
+
assert traces[0].key?('SampleRate')
|
52
|
+
assert traces[0].key?('SampleSource')
|
53
|
+
assert_equal false, traces[0].key?('Backtrace')
|
54
|
+
|
55
|
+
assert_equal 'delayed_job-worker', traces[1]['Layer']
|
56
|
+
assert_equal 'exit', traces[1]['Label']
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_jobs_with_errors
|
60
|
+
w = Widget.new(:name => 'blah', :description => 'This is a wonderful wonderful widget.')
|
61
|
+
w.save
|
62
|
+
|
63
|
+
w.delay.do_error(1, 2, 3)
|
64
|
+
|
65
|
+
sleep 15
|
66
|
+
|
67
|
+
traces = get_all_traces
|
68
|
+
assert_equal 3, traces.count, "Trace count"
|
69
|
+
valid_edges?(traces)
|
70
|
+
|
71
|
+
assert_equal 'delayed_job-worker', traces[0]['Layer']
|
72
|
+
assert_equal 'entry', traces[0]['Label']
|
73
|
+
|
74
|
+
assert_equal 'error', traces[1]['Label']
|
75
|
+
assert_equal 'FakeTestError', traces[1]['ErrorMsg']
|
76
|
+
assert traces[1].key?('Backtrace')
|
77
|
+
assert traces[1].key?('ErrorClass')
|
78
|
+
|
79
|
+
assert_equal 'delayed_job-worker', traces[2]['Layer']
|
80
|
+
assert_equal 'exit', traces[2]['Label']
|
81
|
+
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_collect_backtraces_default_value
|
85
|
+
assert_equal TV::Config[:delayed_jobworker][:collect_backtraces], false, "default backtrace collection"
|
86
|
+
end
|
87
|
+
|
88
|
+
def test_log_args_default_value
|
89
|
+
assert_equal TV::Config[:delayed_jobworker][:log_args], true, "log_args default "
|
90
|
+
end
|
91
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
# Copyright (c) 2015 AppNeta, Inc.
|
2
|
+
# All rights reserved.
|
3
|
+
|
4
|
+
require "rails/all"
|
5
|
+
require "delayed_job"
|
6
|
+
require "action_controller/railtie" # require more if needed
|
7
|
+
require 'rack/handler/puma'
|
8
|
+
require File.expand_path(File.dirname(__FILE__) + '/../models/widget')
|
9
|
+
|
10
|
+
TraceView.logger.level = Logger::DEBUG
|
11
|
+
TraceView.logger.info "[traceview/info] Starting background utility rails app on localhost:8140."
|
12
|
+
|
13
|
+
if ENV.key?('TRAVIS_PSQL_PASS')
|
14
|
+
DJ_DB_URL = "postgres://postgres:#{ENV['TRAVIS_PSQL_PASS']}@127.0.0.1:5432/travis_ci_test"
|
15
|
+
else
|
16
|
+
DJ_DB_URL = 'postgres://postgres@127.0.0.1:5432/travis_ci_test'
|
17
|
+
end
|
18
|
+
|
19
|
+
ActiveRecord::Base.establish_connection(DJ_DB_URL)
|
20
|
+
|
21
|
+
unless ActiveRecord::Base.connection.table_exists? :delayed_jobs
|
22
|
+
TraceView.logger.info "[traceview/servers] Creating DelayedJob DB table."
|
23
|
+
require 'generators/delayed_job/templates/migration'
|
24
|
+
ActiveRecord::Migration.run(CreateDelayedJobs)
|
25
|
+
end
|
26
|
+
|
27
|
+
unless ActiveRecord::Base.connection.table_exists? 'widgets'
|
28
|
+
ActiveRecord::Migration.run(CreateWidgets)
|
29
|
+
end
|
30
|
+
|
31
|
+
class Rails40MetalStack < Rails::Application
|
32
|
+
routes.append do
|
33
|
+
get "/hello/world" => "hello#world"
|
34
|
+
get "/hello/metal" => "ferro#world"
|
35
|
+
end
|
36
|
+
|
37
|
+
# Enable cache classes. Production style.
|
38
|
+
config.cache_classes = true
|
39
|
+
config.eager_load = false
|
40
|
+
|
41
|
+
# uncomment below to display errors
|
42
|
+
# config.consider_all_requests_local = true
|
43
|
+
|
44
|
+
config.active_support.deprecation = :stderr
|
45
|
+
|
46
|
+
# Here you could remove some middlewares, for example
|
47
|
+
# Rack::Lock, ActionDispatch::Flash and ActionDispatch::BestStandardsSupport below.
|
48
|
+
# The remaining stack is printed on rackup (for fun!).
|
49
|
+
# Rails API has config.middleware.api_only! to get
|
50
|
+
# rid of browser related middleware.
|
51
|
+
config.middleware.delete "Rack::Lock"
|
52
|
+
config.middleware.delete "ActionDispatch::Flash"
|
53
|
+
config.middleware.delete "ActionDispatch::BestStandardsSupport"
|
54
|
+
|
55
|
+
# We need a secret token for session, cookies, etc.
|
56
|
+
config.secret_token = "49837489qkuweoiuoqwehisuakshdjksadhaisdy78o34y138974xyqp9rmye8yrpiokeuioqwzyoiuxftoyqiuxrhm3iou1hrzmjk"
|
57
|
+
config.secret_key_base = "2048671-96803948"
|
58
|
+
end
|
59
|
+
|
60
|
+
#################################################
|
61
|
+
# Controllers
|
62
|
+
#################################################
|
63
|
+
|
64
|
+
class HelloController < ActionController::Base
|
65
|
+
def world
|
66
|
+
render :text => "Hello world!"
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
class FerroController < ActionController::Metal
|
71
|
+
include AbstractController::Rendering
|
72
|
+
|
73
|
+
def world
|
74
|
+
render :text => "Hello world!"
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
Delayed::Job.delete_all
|
79
|
+
|
80
|
+
@worker_options = {
|
81
|
+
:min_priority => ENV['MIN_PRIORITY'],
|
82
|
+
:max_priority => ENV['MAX_PRIORITY'],
|
83
|
+
:queues => (ENV['QUEUES'] || ENV['QUEUE'] || '').split(','),
|
84
|
+
:quiet => ENV['QUIET']
|
85
|
+
}
|
86
|
+
|
87
|
+
@worker_options[:sleep_delay] = ENV['SLEEP_DELAY'].to_i if ENV['SLEEP_DELAY']
|
88
|
+
@worker_options[:read_ahead] = ENV['READ_AHEAD'].to_i if ENV['READ_AHEAD']
|
89
|
+
|
90
|
+
TraceView.logger.info "[traceview/servers] Starting up background DelayedJob."
|
91
|
+
|
92
|
+
#Delayed::Worker.delay_jobs = false
|
93
|
+
Delayed::Worker.max_attempts = 1
|
94
|
+
Delayed::Worker.sleep_delay = 10
|
95
|
+
|
96
|
+
Thread.new do
|
97
|
+
Delayed::Worker.new(@worker_options).start
|
98
|
+
end
|
99
|
+
|
100
|
+
# Allow it to boot
|
101
|
+
TraceView.logger.info "[traceview/servers] Waiting 5 seconds for DJ to boot..."
|
102
|
+
sleep 5
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# Taken from: https://www.amberbit.com/blog/2014/2/14/putting-ruby-on-rails-on-a-diet/
|
2
2
|
# Port of https://gist.github.com/josevalim/1942658 to Rails 4
|
3
3
|
# Original author: Jose Valim
|
4
|
+
# Updated by: Peter Giacomo Lombardo
|
4
5
|
#
|
5
6
|
# Run this file with:
|
6
7
|
#
|
@@ -15,12 +16,25 @@
|
|
15
16
|
# config/application.rb, config/environment.rb and config.ru
|
16
17
|
# existing in any Rails 4 app. Here they are simply in one
|
17
18
|
# file and without the comments.
|
18
|
-
require "rails"
|
19
|
+
require "rails/all"
|
19
20
|
require "action_controller/railtie" # require more if needed
|
20
21
|
require 'rack/handler/puma'
|
22
|
+
require File.expand_path(File.dirname(__FILE__) + '/../models/widget')
|
21
23
|
|
22
24
|
TraceView.logger.info "[traceview/info] Starting background utility rails app on localhost:8140."
|
23
25
|
|
26
|
+
if ENV.key?('TRAVIS_PSQL_PASS')
|
27
|
+
ENV['DATABASE_URL'] = "postgresql://postgres:#{ENV['TRAVIS_PSQL_PASS']}@127.0.0.1:5432/travis_ci_test"
|
28
|
+
else
|
29
|
+
ENV['DATABASE_URL'] = 'postgresql://postgres@127.0.0.1:5432/travis_ci_test'
|
30
|
+
end
|
31
|
+
|
32
|
+
ActiveRecord::Base.establish_connection(ENV['DATABASE_URL'])
|
33
|
+
|
34
|
+
unless ActiveRecord::Base.connection.table_exists? 'widgets'
|
35
|
+
CreateWidgets.migrate(:up)
|
36
|
+
end
|
37
|
+
|
24
38
|
class Rails32MetalStack < Rails::Application
|
25
39
|
routes.append do
|
26
40
|
get "/hello/world" => "hello#world"
|
@@ -34,6 +48,8 @@ class Rails32MetalStack < Rails::Application
|
|
34
48
|
# uncomment below to display errors
|
35
49
|
# config.consider_all_requests_local = true
|
36
50
|
|
51
|
+
config.active_support.deprecation = :stderr
|
52
|
+
|
37
53
|
# Here you could remove some middlewares, for example
|
38
54
|
# Rack::Lock, ActionDispatch::Flash and ActionDispatch::BestStandardsSupport below.
|
39
55
|
# The remaining stack is printed on rackup (for fun!).
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# Taken from: https://www.amberbit.com/blog/2014/2/14/putting-ruby-on-rails-on-a-diet/
|
2
2
|
# Port of https://gist.github.com/josevalim/1942658 to Rails 4
|
3
3
|
# Original author: Jose Valim
|
4
|
+
# Updated by: Peter Giacomo Lombardo
|
4
5
|
#
|
5
6
|
# Run this file with:
|
6
7
|
#
|
@@ -15,12 +16,26 @@
|
|
15
16
|
# config/application.rb, config/environment.rb and config.ru
|
16
17
|
# existing in any Rails 4 app. Here they are simply in one
|
17
18
|
# file and without the comments.
|
18
|
-
|
19
|
+
#
|
20
|
+
if ENV.key?('TRAVIS_PSQL_PASS')
|
21
|
+
ENV['DATABASE_URL'] = "postgresql://postgres:#{ENV['TRAVIS_PSQL_PASS']}@127.0.0.1:5432/travis_ci_test"
|
22
|
+
else
|
23
|
+
ENV['DATABASE_URL'] = 'postgresql://postgres@127.0.0.1:5432/travis_ci_test'
|
24
|
+
end
|
25
|
+
|
26
|
+
require "rails/all"
|
19
27
|
require "action_controller/railtie" # require more if needed
|
20
28
|
require 'rack/handler/puma'
|
29
|
+
require File.expand_path(File.dirname(__FILE__) + '/../models/widget')
|
21
30
|
|
22
31
|
TraceView.logger.info "[traceview/info] Starting background utility rails app on localhost:8140."
|
23
32
|
|
33
|
+
ActiveRecord::Base.establish_connection(ENV['DATABASE_URL'])
|
34
|
+
|
35
|
+
unless ActiveRecord::Base.connection.table_exists? 'widgets'
|
36
|
+
ActiveRecord::Migration.run(CreateWidgets)
|
37
|
+
end
|
38
|
+
|
24
39
|
class Rails40MetalStack < Rails::Application
|
25
40
|
routes.append do
|
26
41
|
get "/hello/world" => "hello#world"
|
@@ -34,6 +49,8 @@ class Rails40MetalStack < Rails::Application
|
|
34
49
|
# uncomment below to display errors
|
35
50
|
# config.consider_all_requests_local = true
|
36
51
|
|
52
|
+
config.active_support.deprecation = :stderr
|
53
|
+
|
37
54
|
# Here you could remove some middlewares, for example
|
38
55
|
# Rack::Lock, ActionDispatch::Flash and ActionDispatch::BestStandardsSupport below.
|
39
56
|
# The remaining stack is printed on rackup (for fun!).
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# Copyright (c) 2015 AppNeta, Inc.
|
2
|
+
# All rights reserved.
|
3
|
+
|
4
|
+
require 'minitest_helper'
|
5
|
+
|
6
|
+
class AutoTraceTest < Minitest::Test
|
7
|
+
def setup
|
8
|
+
@tm = TraceView::Config[:tracing_mode]
|
9
|
+
end
|
10
|
+
|
11
|
+
def teardown
|
12
|
+
TraceView::Config[:tracing_mode] = @tm
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_entry_layers
|
16
|
+
TraceView.entry_layer?('delayed_job-worker').must_equal true
|
17
|
+
TraceView.entry_layer?('asdf-worker').must_equal false
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_entry_layers_supports_symbols
|
21
|
+
TraceView.entry_layer?(:'delayed_job-worker').must_equal true
|
22
|
+
TraceView.entry_layer?(:asdfworker).must_equal false
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_trace_when_default_tm
|
26
|
+
TraceView::Config[:tracing_mode] = :through
|
27
|
+
|
28
|
+
TV::API.start_trace('delayed_job-worker') do
|
29
|
+
TraceView.tracing?.must_equal true
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_dont_trace_when_never
|
34
|
+
TraceView::Config[:tracing_mode] = :never
|
35
|
+
|
36
|
+
TV::API.start_trace('delayed_job-worker') do
|
37
|
+
TraceView.tracing?.must_equal false
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/test/support/config_test.rb
CHANGED
@@ -30,7 +30,7 @@ describe "TraceView::Config" do
|
|
30
30
|
instrumentation = TraceView::Config.instrumentation
|
31
31
|
|
32
32
|
# Verify the number of individual instrumentations
|
33
|
-
instrumentation.count.must_equal
|
33
|
+
instrumentation.count.must_equal 27
|
34
34
|
|
35
35
|
TraceView::Config[:action_controller][:enabled].must_equal true
|
36
36
|
TraceView::Config[:action_view][:enabled].must_equal true
|
@@ -38,6 +38,8 @@ describe "TraceView::Config" do
|
|
38
38
|
TraceView::Config[:cassandra][:enabled].must_equal true
|
39
39
|
TraceView::Config[:curb][:enabled].must_equal true
|
40
40
|
TraceView::Config[:dalli][:enabled].must_equal true
|
41
|
+
TraceView::Config[:delayed_jobclient][:enabled].must_equal true
|
42
|
+
TraceView::Config[:delayed_jobworker][:enabled].must_equal true
|
41
43
|
TraceView::Config[:em_http_request][:enabled].must_equal false
|
42
44
|
TraceView::Config[:excon][:enabled].must_equal true
|
43
45
|
TraceView::Config[:faraday][:enabled].must_equal true
|
@@ -64,6 +66,8 @@ describe "TraceView::Config" do
|
|
64
66
|
TraceView::Config[:cassandra][:log_args].must_equal true
|
65
67
|
TraceView::Config[:curb][:log_args].must_equal true
|
66
68
|
TraceView::Config[:dalli][:log_args].must_equal true
|
69
|
+
TraceView::Config[:delayed_jobclient][:log_args].must_equal true
|
70
|
+
TraceView::Config[:delayed_jobworker][:log_args].must_equal true
|
67
71
|
TraceView::Config[:em_http_request][:log_args].must_equal true
|
68
72
|
TraceView::Config[:excon][:log_args].must_equal true
|
69
73
|
TraceView::Config[:faraday][:log_args].must_equal true
|
data/traceview.gemspec
CHANGED
@@ -22,6 +22,7 @@ Gem::Specification.new do |s|
|
|
22
22
|
s.extensions = ['ext/oboe_metal/extconf.rb'] unless defined?(JRUBY_VERSION)
|
23
23
|
|
24
24
|
s.add_runtime_dependency('json', '>= 0')
|
25
|
+
s.add_runtime_dependency('bson', '< 4.0')
|
25
26
|
s.add_development_dependency('rake', '>= 0')
|
26
27
|
|
27
28
|
s.required_ruby_version = '>= 1.8.6'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: traceview
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.4.0
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Peter Giacomo Lombardo
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-12-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -25,6 +25,20 @@ dependencies:
|
|
25
25
|
version: '0'
|
26
26
|
prerelease: false
|
27
27
|
type: :runtime
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: bson
|
30
|
+
version_requirements: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "<"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '4.0'
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "<"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '4.0'
|
40
|
+
prerelease: false
|
41
|
+
type: :runtime
|
28
42
|
- !ruby/object:Gem::Dependency
|
29
43
|
name: rake
|
30
44
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -71,6 +85,7 @@ files:
|
|
71
85
|
- ext/oboe_metal/src/oboe.hpp
|
72
86
|
- ext/oboe_metal/src/oboe_wrap.cxx
|
73
87
|
- ext/oboe_metal/tests/test.rb
|
88
|
+
- gemfiles/delayed_job.gemfile
|
74
89
|
- gemfiles/frameworks.gemfile
|
75
90
|
- gemfiles/libraries.gemfile
|
76
91
|
- gemfiles/rails23.gemfile
|
@@ -121,6 +136,7 @@ files:
|
|
121
136
|
- lib/traceview/frameworks/sinatra/templates.rb
|
122
137
|
- lib/traceview/inst/curb.rb
|
123
138
|
- lib/traceview/inst/dalli.rb
|
139
|
+
- lib/traceview/inst/delayed_job.rb
|
124
140
|
- lib/traceview/inst/em-http-request.rb
|
125
141
|
- lib/traceview/inst/excon.rb
|
126
142
|
- lib/traceview/inst/faraday.rb
|
@@ -163,8 +179,6 @@ files:
|
|
163
179
|
- test/instrumentation/cassandra_test.rb
|
164
180
|
- test/instrumentation/curb_test.rb
|
165
181
|
- test/instrumentation/dalli_test.rb
|
166
|
-
- test/instrumentation/delayed_job-client_test.rb
|
167
|
-
- test/instrumentation/delayed_job-worker_test.rb
|
168
182
|
- test/instrumentation/em_http_request_test.rb
|
169
183
|
- test/instrumentation/excon_test.rb
|
170
184
|
- test/instrumentation/faraday_test.rb
|
@@ -190,6 +204,9 @@ files:
|
|
190
204
|
- test/instrumentation/sidekiq-client_test.rb
|
191
205
|
- test/instrumentation/sidekiq-worker_test.rb
|
192
206
|
- test/instrumentation/typhoeus_test.rb
|
207
|
+
- test/jobs/delayed_job/db_worker_job.rb
|
208
|
+
- test/jobs/delayed_job/error_worker_job.rb
|
209
|
+
- test/jobs/delayed_job/remote_call_worker_job.rb
|
193
210
|
- test/jobs/resque/db_worker_job.rb
|
194
211
|
- test/jobs/resque/error_worker_job.rb
|
195
212
|
- test/jobs/resque/remote_call_worker_job.rb
|
@@ -197,15 +214,20 @@ files:
|
|
197
214
|
- test/jobs/sidekiq/error_worker_job.rb
|
198
215
|
- test/jobs/sidekiq/remote_call_worker_job.rb
|
199
216
|
- test/minitest_helper.rb
|
217
|
+
- test/models/widget.rb
|
200
218
|
- test/profiling/legacy_method_profiling_test.rb
|
201
219
|
- test/profiling/method_profiling_test.rb
|
220
|
+
- test/queues/delayed_job-client_test.rb
|
221
|
+
- test/queues/delayed_job-worker_test.rb
|
202
222
|
- test/reporter/reporter_test.rb
|
223
|
+
- test/servers/delayed_job.rb
|
203
224
|
- test/servers/rackapp_8101.rb
|
204
225
|
- test/servers/rails3x_8140.rb
|
205
226
|
- test/servers/rails4x_8140.rb
|
206
227
|
- test/servers/sidekiq.rb
|
207
228
|
- test/servers/sidekiq.yml
|
208
229
|
- test/servers/sidekiq_initializer.rb
|
230
|
+
- test/support/auto_tracing.rb
|
209
231
|
- test/support/backcompat_test.rb
|
210
232
|
- test/support/config_test.rb
|
211
233
|
- test/support/dnt_test.rb
|
@@ -244,11 +266,11 @@ test_files:
|
|
244
266
|
- test/servers/sidekiq_initializer.rb
|
245
267
|
- test/servers/rails4x_8140.rb
|
246
268
|
- test/servers/rails3x_8140.rb
|
269
|
+
- test/servers/delayed_job.rb
|
247
270
|
- test/servers/sidekiq.rb
|
248
271
|
- test/servers/rackapp_8101.rb
|
249
272
|
- test/instrumentation/excon_test.rb
|
250
273
|
- test/instrumentation/sequel_pg_test.rb
|
251
|
-
- test/instrumentation/delayed_job-worker_test.rb
|
252
274
|
- test/instrumentation/moped_test.rb
|
253
275
|
- test/instrumentation/httpclient_test.rb
|
254
276
|
- test/instrumentation/sequel_mysql_test.rb
|
@@ -260,7 +282,6 @@ test_files:
|
|
260
282
|
- test/instrumentation/cassandra_test.rb
|
261
283
|
- test/instrumentation/redis_strings_test.rb
|
262
284
|
- test/instrumentation/typhoeus_test.rb
|
263
|
-
- test/instrumentation/delayed_job-client_test.rb
|
264
285
|
- test/instrumentation/sequel_mysql2_test.rb
|
265
286
|
- test/instrumentation/sidekiq-worker_test.rb
|
266
287
|
- test/instrumentation/redis_misc_test.rb
|
@@ -277,6 +298,7 @@ test_files:
|
|
277
298
|
- test/instrumentation/em_http_request_test.rb
|
278
299
|
- test/instrumentation/rest-client_test.rb
|
279
300
|
- test/reporter/reporter_test.rb
|
301
|
+
- test/models/widget.rb
|
280
302
|
- test/profiling/method_profiling_test.rb
|
281
303
|
- test/profiling/legacy_method_profiling_test.rb
|
282
304
|
- test/frameworks/sinatra_test.rb
|
@@ -288,8 +310,11 @@ test_files:
|
|
288
310
|
- test/frameworks/apps/sinatra_simple.rb
|
289
311
|
- test/frameworks/apps/padrino_simple.rb
|
290
312
|
- test/frameworks/apps/grape_nested.rb
|
313
|
+
- test/queues/delayed_job-worker_test.rb
|
314
|
+
- test/queues/delayed_job-client_test.rb
|
291
315
|
- test/support/config_test.rb
|
292
316
|
- test/support/noop_test.rb
|
317
|
+
- test/support/auto_tracing.rb
|
293
318
|
- test/support/dnt_test.rb
|
294
319
|
- test/support/sql_sanitize_test.rb
|
295
320
|
- test/support/tvalias_test.rb
|
@@ -302,3 +327,6 @@ test_files:
|
|
302
327
|
- test/jobs/resque/remote_call_worker_job.rb
|
303
328
|
- test/jobs/resque/error_worker_job.rb
|
304
329
|
- test/jobs/resque/db_worker_job.rb
|
330
|
+
- test/jobs/delayed_job/remote_call_worker_job.rb
|
331
|
+
- test/jobs/delayed_job/error_worker_job.rb
|
332
|
+
- test/jobs/delayed_job/db_worker_job.rb
|