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
 
| 
         @@ -1,128 +0,0 @@ 
     | 
|
| 
       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 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
            class DelayedJobClientTest < Minitest::Test
         
     | 
| 
       10 
     | 
    
         
            -
              def setup
         
     | 
| 
       11 
     | 
    
         
            -
                clear_all_traces
         
     | 
| 
       12 
     | 
    
         
            -
                @collect_backtraces = TraceView::Config[:delayedjobclient][:collect_backtraces]
         
     | 
| 
       13 
     | 
    
         
            -
                @log_args = TraceView::Config[:delayedjobclient][:log_args]
         
     | 
| 
       14 
     | 
    
         
            -
              end
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
              def teardown
         
     | 
| 
       17 
     | 
    
         
            -
                TraceView::Config[:delayedjobclient][:collect_backtraces] = @collect_backtraces
         
     | 
| 
       18 
     | 
    
         
            -
                TraceView::Config[:delayedjobclient][:log_args] = @log_args
         
     | 
| 
       19 
     | 
    
         
            -
              end
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
              def test_enqueue
         
     | 
| 
       22 
     | 
    
         
            -
                # Queue up a job to be run
         
     | 
| 
       23 
     | 
    
         
            -
                jid, _ = ::TraceView::API.start_trace(:enqueue_test) do
         
     | 
| 
       24 
     | 
    
         
            -
                  Sidekiq::Client.push('queue' => 'critical', 'class' => ::RemoteCallWorkerJob, 'args' => [1, 2, 3], 'retry' => false)
         
     | 
| 
       25 
     | 
    
         
            -
                end
         
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
                # Allow the job to be run
         
     | 
| 
       28 
     | 
    
         
            -
                sleep 5
         
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
                traces = get_all_traces
         
     | 
| 
       31 
     | 
    
         
            -
                assert_equal 23, traces.count, "Trace count"
         
     | 
| 
       32 
     | 
    
         
            -
                valid_edges?(traces)
         
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
                assert_equal 'sidekiq-client',       traces[1]['Layer']
         
     | 
| 
       35 
     | 
    
         
            -
                assert_equal 'entry',                traces[1]['Label']
         
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
                assert_equal 'msgclient',            traces[1]['Spec']
         
     | 
| 
       38 
     | 
    
         
            -
                assert_equal 'sidekiq',              traces[1]['Flavor']
         
     | 
| 
       39 
     | 
    
         
            -
                assert_equal 'critical',             traces[1]['Queue']
         
     | 
| 
       40 
     | 
    
         
            -
                assert_equal jid,                    traces[1]['MsgID']
         
     | 
| 
       41 
     | 
    
         
            -
                assert_equal '[1, 2, 3]',            traces[1]['Args']
         
     | 
| 
       42 
     | 
    
         
            -
                assert_equal "RemoteCallWorkerJob",  traces[1]['JobName']
         
     | 
| 
       43 
     | 
    
         
            -
                assert_equal 'false',                traces[1]['Retry']
         
     | 
| 
       44 
     | 
    
         
            -
                assert_equal false,                  traces[1].key?('Backtrace')
         
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
                assert_equal 'sidekiq-client',       traces[2]['Layer']
         
     | 
| 
       47 
     | 
    
         
            -
                assert_equal 'exit',                 traces[2]['Label']
         
     | 
| 
       48 
     | 
    
         
            -
              end
         
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
     | 
    
         
            -
              def test_collect_backtraces_default_value
         
     | 
| 
       51 
     | 
    
         
            -
                assert_equal TV::Config[:delayedjobclient][:collect_backtraces], false, "default backtrace collection"
         
     | 
| 
       52 
     | 
    
         
            -
              end
         
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
              def test_log_args_default_value
         
     | 
| 
       55 
     | 
    
         
            -
                assert_equal TV::Config[:delayedjobclient][:log_args], true, "log_args default "
         
     | 
| 
       56 
     | 
    
         
            -
              end
         
     | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
       58 
     | 
    
         
            -
              def test_obey_collect_backtraces_when_false
         
     | 
| 
       59 
     | 
    
         
            -
                TraceView::Config[:delayedjobclient][:collect_backtraces] = false
         
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
       61 
     | 
    
         
            -
                # Queue up a job to be run
         
     | 
| 
       62 
     | 
    
         
            -
                ::TraceView::API.start_trace(:enqueue_test) do
         
     | 
| 
       63 
     | 
    
         
            -
                  Sidekiq::Client.push('queue' => 'critical', 'class' => ::RemoteCallWorkerJob, 'args' => [1, 2, 3], 'retry' => false)
         
     | 
| 
       64 
     | 
    
         
            -
                end
         
     | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
       66 
     | 
    
         
            -
                # Allow the job to be run
         
     | 
| 
       67 
     | 
    
         
            -
                sleep 5
         
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
       69 
     | 
    
         
            -
                traces = get_all_traces
         
     | 
| 
       70 
     | 
    
         
            -
                assert_equal 23, traces.count, "Trace count"
         
     | 
| 
       71 
     | 
    
         
            -
                valid_edges?(traces)
         
     | 
| 
       72 
     | 
    
         
            -
                assert_equal 'sidekiq-client',   traces[1]['Layer']
         
     | 
| 
       73 
     | 
    
         
            -
                assert_equal false,              traces[1].key?('Backtrace')
         
     | 
| 
       74 
     | 
    
         
            -
              end
         
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
              def test_obey_collect_backtraces_when_true
         
     | 
| 
       77 
     | 
    
         
            -
                TraceView::Config[:delayedjobclient][:collect_backtraces] = true
         
     | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
       79 
     | 
    
         
            -
                # Queue up a job to be run
         
     | 
| 
       80 
     | 
    
         
            -
                ::TraceView::API.start_trace(:enqueue_test) do
         
     | 
| 
       81 
     | 
    
         
            -
                  Sidekiq::Client.push('queue' => 'critical', 'class' => ::RemoteCallWorkerJob, 'args' => [1, 2, 3], 'retry' => false)
         
     | 
| 
       82 
     | 
    
         
            -
                end
         
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
     | 
    
         
            -
                # Allow the job to be run
         
     | 
| 
       85 
     | 
    
         
            -
                sleep 5
         
     | 
| 
       86 
     | 
    
         
            -
             
     | 
| 
       87 
     | 
    
         
            -
                traces = get_all_traces
         
     | 
| 
       88 
     | 
    
         
            -
                assert_equal 23, traces.count, "Trace count"
         
     | 
| 
       89 
     | 
    
         
            -
                valid_edges?(traces)
         
     | 
| 
       90 
     | 
    
         
            -
                assert_equal 'sidekiq-client',   traces[1]['Layer']
         
     | 
| 
       91 
     | 
    
         
            -
                assert_equal true,               traces[1].key?('Backtrace')
         
     | 
| 
       92 
     | 
    
         
            -
              end
         
     | 
| 
       93 
     | 
    
         
            -
             
     | 
| 
       94 
     | 
    
         
            -
              def test_obey_log_args_when_false
         
     | 
| 
       95 
     | 
    
         
            -
                TraceView::Config[:delayedjobclient][:log_args] = false
         
     | 
| 
       96 
     | 
    
         
            -
             
     | 
| 
       97 
     | 
    
         
            -
                # Queue up a job to be run
         
     | 
| 
       98 
     | 
    
         
            -
                ::TraceView::API.start_trace(:enqueue_test) do
         
     | 
| 
       99 
     | 
    
         
            -
                  Sidekiq::Client.push('queue' => 'critical', 'class' => ::RemoteCallWorkerJob, 'args' => [1, 2, 3], 'retry' => false)
         
     | 
| 
       100 
     | 
    
         
            -
                end
         
     | 
| 
       101 
     | 
    
         
            -
             
     | 
| 
       102 
     | 
    
         
            -
                # Allow the job to be run
         
     | 
| 
       103 
     | 
    
         
            -
                sleep 5
         
     | 
| 
       104 
     | 
    
         
            -
             
     | 
| 
       105 
     | 
    
         
            -
                traces = get_all_traces
         
     | 
| 
       106 
     | 
    
         
            -
                assert_equal 23, traces.count, "Trace count"
         
     | 
| 
       107 
     | 
    
         
            -
                valid_edges?(traces)
         
     | 
| 
       108 
     | 
    
         
            -
                assert_equal false, traces[1].key?('Args')
         
     | 
| 
       109 
     | 
    
         
            -
              end
         
     | 
| 
       110 
     | 
    
         
            -
             
     | 
| 
       111 
     | 
    
         
            -
              def test_obey_log_args_when_true
         
     | 
| 
       112 
     | 
    
         
            -
                TraceView::Config[:delayedjobclient][:log_args] = true
         
     | 
| 
       113 
     | 
    
         
            -
             
     | 
| 
       114 
     | 
    
         
            -
                # Queue up a job to be run
         
     | 
| 
       115 
     | 
    
         
            -
                ::TraceView::API.start_trace(:enqueue_test) do
         
     | 
| 
       116 
     | 
    
         
            -
                  Sidekiq::Client.push('queue' => 'critical', 'class' => ::RemoteCallWorkerJob, 'args' => [1, 2, 3], 'retry' => false)
         
     | 
| 
       117 
     | 
    
         
            -
                end
         
     | 
| 
       118 
     | 
    
         
            -
             
     | 
| 
       119 
     | 
    
         
            -
                # Allow the job to be run
         
     | 
| 
       120 
     | 
    
         
            -
                sleep 5
         
     | 
| 
       121 
     | 
    
         
            -
             
     | 
| 
       122 
     | 
    
         
            -
                traces = get_all_traces
         
     | 
| 
       123 
     | 
    
         
            -
                assert_equal 23, traces.count, "Trace count"
         
     | 
| 
       124 
     | 
    
         
            -
                valid_edges?(traces)
         
     | 
| 
       125 
     | 
    
         
            -
                assert_equal true,         traces[1].key?('Args')
         
     | 
| 
       126 
     | 
    
         
            -
                assert_equal '[1, 2, 3]',  traces[1]['Args']
         
     | 
| 
       127 
     | 
    
         
            -
              end
         
     | 
| 
       128 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,177 +0,0 @@ 
     | 
|
| 
       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 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
            class DelayedJobWorkerTest < Minitest::Test
         
     | 
| 
       10 
     | 
    
         
            -
              def setup
         
     | 
| 
       11 
     | 
    
         
            -
                clear_all_traces
         
     | 
| 
       12 
     | 
    
         
            -
                @collect_backtraces = TraceView::Config[:delayedjobworker][:collect_backtraces]
         
     | 
| 
       13 
     | 
    
         
            -
                @log_args = TraceView::Config[:delayedjobworker][:log_args]
         
     | 
| 
       14 
     | 
    
         
            -
              end
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
              def teardown
         
     | 
| 
       17 
     | 
    
         
            -
                TraceView::Config[:delayedjobworker][:collect_backtraces] = @collect_backtraces
         
     | 
| 
       18 
     | 
    
         
            -
                TraceView::Config[:delayedjobworker][:log_args] = @log_args
         
     | 
| 
       19 
     | 
    
         
            -
              end
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
              def test_reports_version_init
         
     | 
| 
       22 
     | 
    
         
            -
                init_kvs = ::TraceView::Util.build_init_report
         
     | 
| 
       23 
     | 
    
         
            -
                assert init_kvs.key?('Ruby.Sidekiq.Version')
         
     | 
| 
       24 
     | 
    
         
            -
                assert_equal "Sidekiq-#{::Sidekiq::VERSION}", init_kvs['Ruby.Sidekiq.Version']
         
     | 
| 
       25 
     | 
    
         
            -
              end
         
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
              def test_job_run
         
     | 
| 
       28 
     | 
    
         
            -
                # Queue up a job to be run
         
     | 
| 
       29 
     | 
    
         
            -
                jid = Sidekiq::Client.push('queue' => 'critical', 'class' => RemoteCallWorkerJob, 'args' => [1, 2, 3], 'retry' => false)
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
                # Allow the job to be run
         
     | 
| 
       32 
     | 
    
         
            -
                sleep 5
         
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
                traces = get_all_traces
         
     | 
| 
       35 
     | 
    
         
            -
                assert_equal 17, traces.count, "Trace count"
         
     | 
| 
       36 
     | 
    
         
            -
                validate_outer_layers(traces, "sidekiq-worker")
         
     | 
| 
       37 
     | 
    
         
            -
                valid_edges?(traces)
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
                # Validate entry layer KVs
         
     | 
| 
       40 
     | 
    
         
            -
                assert_equal 'always_sampled', traces[0]['TraceOrigin'],       "is always_sampled"
         
     | 
| 
       41 
     | 
    
         
            -
                assert_equal true,             traces[0].key?('SampleRate'),   "has SampleRate KV"
         
     | 
| 
       42 
     | 
    
         
            -
                assert_equal true,             traces[0].key?('SampleSource'), "has SampleSource KV"
         
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
                # Validate Webserver Spec KVs
         
     | 
| 
       45 
     | 
    
         
            -
                assert_equal Socket.gethostname,    traces[0]['HTTP-Host']
         
     | 
| 
       46 
     | 
    
         
            -
                assert_equal "Sidekiq_critical",    traces[0]['Controller']
         
     | 
| 
       47 
     | 
    
         
            -
                assert_equal "RemoteCallWorkerJob", traces[0]['Action']
         
     | 
| 
       48 
     | 
    
         
            -
                assert_equal "/sidekiq/critical/RemoteCallWorkerJob", traces[0]['URL']
         
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
     | 
    
         
            -
                # Validate Job Spec KVs
         
     | 
| 
       51 
     | 
    
         
            -
                assert_equal "job",                 traces[0]['Spec']
         
     | 
| 
       52 
     | 
    
         
            -
                assert_equal 'sidekiq',             traces[0]['Flavor']
         
     | 
| 
       53 
     | 
    
         
            -
                assert_equal "RemoteCallWorkerJob", traces[0]['JobName']
         
     | 
| 
       54 
     | 
    
         
            -
                assert_equal jid,                   traces[0]['MsgID']
         
     | 
| 
       55 
     | 
    
         
            -
                assert_equal "critical",            traces[0]['Queue']
         
     | 
| 
       56 
     | 
    
         
            -
                assert_equal "[1, 2, 3]",           traces[0]['Args']
         
     | 
| 
       57 
     | 
    
         
            -
                assert_equal "false",               traces[0]['Retry']
         
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
     | 
    
         
            -
                assert_equal false,                 traces[0].key?('Backtrace')
         
     | 
| 
       60 
     | 
    
         
            -
                assert_equal "net-http",            traces[4]['Layer']
         
     | 
| 
       61 
     | 
    
         
            -
                assert_equal "entry",               traces[4]['Label']
         
     | 
| 
       62 
     | 
    
         
            -
                assert_equal "memcache",            traces[15]['Layer']
         
     | 
| 
       63 
     | 
    
         
            -
              end
         
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
              def test_jobs_with_errors
         
     | 
| 
       66 
     | 
    
         
            -
                # Queue up a job to be run
         
     | 
| 
       67 
     | 
    
         
            -
                jid = Sidekiq::Client.push('queue' => 'critical', 'class' => ErrorWorkerJob, 'args' => [1, 2, 3], 'retry' => false)
         
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
       69 
     | 
    
         
            -
                # Allow the job to be run
         
     | 
| 
       70 
     | 
    
         
            -
                sleep 5
         
     | 
| 
       71 
     | 
    
         
            -
             
     | 
| 
       72 
     | 
    
         
            -
                traces = get_all_traces
         
     | 
| 
       73 
     | 
    
         
            -
                assert_equal 3, traces.count, "Trace count"
         
     | 
| 
       74 
     | 
    
         
            -
                validate_outer_layers(traces, "sidekiq-worker")
         
     | 
| 
       75 
     | 
    
         
            -
                valid_edges?(traces)
         
     | 
| 
       76 
     | 
    
         
            -
             
     | 
| 
       77 
     | 
    
         
            -
                # Validate Webserver Spec KVs
         
     | 
| 
       78 
     | 
    
         
            -
                assert_equal Socket.gethostname,                  traces[0]['HTTP-Host']
         
     | 
| 
       79 
     | 
    
         
            -
                assert_equal "Sidekiq_critical",                  traces[0]['Controller']
         
     | 
| 
       80 
     | 
    
         
            -
                assert_equal "ErrorWorkerJob",                    traces[0]['Action']
         
     | 
| 
       81 
     | 
    
         
            -
                assert_equal "/sidekiq/critical/ErrorWorkerJob",  traces[0]['URL']
         
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
       83 
     | 
    
         
            -
                # Validate Job Spec KVs
         
     | 
| 
       84 
     | 
    
         
            -
                assert_equal "job",             traces[0]['Spec']
         
     | 
| 
       85 
     | 
    
         
            -
                assert_equal 'sidekiq',         traces[0]['Flavor']
         
     | 
| 
       86 
     | 
    
         
            -
                assert_equal "ErrorWorkerJob",  traces[0]['JobName']
         
     | 
| 
       87 
     | 
    
         
            -
                assert_equal jid,               traces[0]['MsgID']
         
     | 
| 
       88 
     | 
    
         
            -
                assert_equal "critical",        traces[0]['Queue']
         
     | 
| 
       89 
     | 
    
         
            -
                assert_equal "[1, 2, 3]",       traces[0]['Args']
         
     | 
| 
       90 
     | 
    
         
            -
                assert_equal "false",           traces[0]['Retry']
         
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
       92 
     | 
    
         
            -
                assert_equal traces[1]['Layer'], 'sidekiq-worker'
         
     | 
| 
       93 
     | 
    
         
            -
                assert_equal traces[1]['Label'], 'error'
         
     | 
| 
       94 
     | 
    
         
            -
                assert_equal traces[1]['ErrorClass'], "RuntimeError"
         
     | 
| 
       95 
     | 
    
         
            -
                assert traces[1].key?('ErrorMsg')
         
     | 
| 
       96 
     | 
    
         
            -
                assert traces[1].key?('Backtrace')
         
     | 
| 
       97 
     | 
    
         
            -
              end
         
     | 
| 
       98 
     | 
    
         
            -
             
     | 
| 
       99 
     | 
    
         
            -
              def test_collect_backtraces_default_value
         
     | 
| 
       100 
     | 
    
         
            -
                assert_equal TV::Config[:delayedjobworker][:collect_backtraces], false, "default backtrace collection"
         
     | 
| 
       101 
     | 
    
         
            -
              end
         
     | 
| 
       102 
     | 
    
         
            -
             
     | 
| 
       103 
     | 
    
         
            -
              def test_log_args_default_value
         
     | 
| 
       104 
     | 
    
         
            -
                assert_equal TV::Config[:delayedjobworker][:log_args], true, "log_args default "
         
     | 
| 
       105 
     | 
    
         
            -
              end
         
     | 
| 
       106 
     | 
    
         
            -
             
     | 
| 
       107 
     | 
    
         
            -
              def test_obey_collect_backtraces_when_false
         
     | 
| 
       108 
     | 
    
         
            -
                TraceView::Config[:delayedjobworker][:collect_backtraces] = false
         
     | 
| 
       109 
     | 
    
         
            -
             
     | 
| 
       110 
     | 
    
         
            -
                # Queue up a job to be run
         
     | 
| 
       111 
     | 
    
         
            -
                Sidekiq::Client.push('queue' => 'critical', 'class' => ::RemoteCallWorkerJob, 'args' => [1, 2, 3], 'retry' => false)
         
     | 
| 
       112 
     | 
    
         
            -
             
     | 
| 
       113 
     | 
    
         
            -
                # Allow the job to be run
         
     | 
| 
       114 
     | 
    
         
            -
                sleep 5
         
     | 
| 
       115 
     | 
    
         
            -
             
     | 
| 
       116 
     | 
    
         
            -
                traces = get_all_traces
         
     | 
| 
       117 
     | 
    
         
            -
                assert_equal 17, traces.count, "Trace count"
         
     | 
| 
       118 
     | 
    
         
            -
                valid_edges?(traces)
         
     | 
| 
       119 
     | 
    
         
            -
                assert_equal 'sidekiq-worker',   traces[0]['Layer']
         
     | 
| 
       120 
     | 
    
         
            -
                assert_equal false,              traces[0].key?('Backtrace')
         
     | 
| 
       121 
     | 
    
         
            -
              end
         
     | 
| 
       122 
     | 
    
         
            -
             
     | 
| 
       123 
     | 
    
         
            -
              def test_obey_collect_backtraces_when_true
         
     | 
| 
       124 
     | 
    
         
            -
                # FIXME: This can't be tested with the current Sidekiq minitest integration (e.g. already booted
         
     | 
| 
       125 
     | 
    
         
            -
                # sidekiq in a different process)
         
     | 
| 
       126 
     | 
    
         
            -
                skip
         
     | 
| 
       127 
     | 
    
         
            -
             
     | 
| 
       128 
     | 
    
         
            -
                TraceView::Config[:delayedjobworker][:collect_backtraces] = true
         
     | 
| 
       129 
     | 
    
         
            -
             
     | 
| 
       130 
     | 
    
         
            -
                # Queue up a job to be run
         
     | 
| 
       131 
     | 
    
         
            -
                Sidekiq::Client.push('queue' => 'critical', 'class' => ::RemoteCallWorkerJob, 'args' => [1, 2, 3], 'retry' => false)
         
     | 
| 
       132 
     | 
    
         
            -
             
     | 
| 
       133 
     | 
    
         
            -
                # Allow the job to be run
         
     | 
| 
       134 
     | 
    
         
            -
                sleep 5
         
     | 
| 
       135 
     | 
    
         
            -
             
     | 
| 
       136 
     | 
    
         
            -
                traces = get_all_traces
         
     | 
| 
       137 
     | 
    
         
            -
                assert_equal 17, traces.count, "Trace count"
         
     | 
| 
       138 
     | 
    
         
            -
                valid_edges?(traces)
         
     | 
| 
       139 
     | 
    
         
            -
                assert_equal 'sidekiq-worker',   traces[0]['Layer']
         
     | 
| 
       140 
     | 
    
         
            -
                assert_equal true,               traces[0].key?('Backtrace')
         
     | 
| 
       141 
     | 
    
         
            -
              end
         
     | 
| 
       142 
     | 
    
         
            -
             
     | 
| 
       143 
     | 
    
         
            -
              def test_obey_log_args_when_false
         
     | 
| 
       144 
     | 
    
         
            -
                # FIXME: This can't be tested with the current Sidekiq minitest integration (e.g. already booted
         
     | 
| 
       145 
     | 
    
         
            -
                # sidekiq in a different process)
         
     | 
| 
       146 
     | 
    
         
            -
                skip
         
     | 
| 
       147 
     | 
    
         
            -
             
     | 
| 
       148 
     | 
    
         
            -
                TraceView::Config[:delayedjobworker][:log_args] = false
         
     | 
| 
       149 
     | 
    
         
            -
             
     | 
| 
       150 
     | 
    
         
            -
                # Queue up a job to be run
         
     | 
| 
       151 
     | 
    
         
            -
                Sidekiq::Client.push('queue' => 'critical', 'class' => ::RemoteCallWorkerJob, 'args' => [1, 2, 3], 'retry' => false)
         
     | 
| 
       152 
     | 
    
         
            -
             
     | 
| 
       153 
     | 
    
         
            -
                # Allow the job to be run
         
     | 
| 
       154 
     | 
    
         
            -
                sleep 5
         
     | 
| 
       155 
     | 
    
         
            -
             
     | 
| 
       156 
     | 
    
         
            -
                traces = get_all_traces
         
     | 
| 
       157 
     | 
    
         
            -
                assert_equal 17, traces.count, "Trace count"
         
     | 
| 
       158 
     | 
    
         
            -
                valid_edges?(traces)
         
     | 
| 
       159 
     | 
    
         
            -
                assert_equal false, traces[0].key?('Args')
         
     | 
| 
       160 
     | 
    
         
            -
              end
         
     | 
| 
       161 
     | 
    
         
            -
             
     | 
| 
       162 
     | 
    
         
            -
              def test_obey_log_args_when_true
         
     | 
| 
       163 
     | 
    
         
            -
                TraceView::Config[:delayedjobworker][:log_args] = true
         
     | 
| 
       164 
     | 
    
         
            -
             
     | 
| 
       165 
     | 
    
         
            -
                # Queue up a job to be run
         
     | 
| 
       166 
     | 
    
         
            -
                Sidekiq::Client.push('queue' => 'critical', 'class' => ::RemoteCallWorkerJob, 'args' => [1, 2, 3], 'retry' => false)
         
     | 
| 
       167 
     | 
    
         
            -
             
     | 
| 
       168 
     | 
    
         
            -
                # Allow the job to be run
         
     | 
| 
       169 
     | 
    
         
            -
                sleep 5
         
     | 
| 
       170 
     | 
    
         
            -
             
     | 
| 
       171 
     | 
    
         
            -
                traces = get_all_traces
         
     | 
| 
       172 
     | 
    
         
            -
                assert_equal 17, traces.count, "Trace count"
         
     | 
| 
       173 
     | 
    
         
            -
                valid_edges?(traces)
         
     | 
| 
       174 
     | 
    
         
            -
                assert_equal true,         traces[0].key?('Args')
         
     | 
| 
       175 
     | 
    
         
            -
                assert_equal '[1, 2, 3]',  traces[0]['Args']
         
     | 
| 
       176 
     | 
    
         
            -
              end
         
     | 
| 
       177 
     | 
    
         
            -
            end
         
     |