Sha256: 14d409543b3ae14a025e376fa7178b0cc9aff8610a3e4806e830f8726fc4928d

Contents?: true

Size: 1.4 KB

Versions: 6

Compression:

Stored size: 1.4 KB

Contents

require 'rubygems'
require 'bundler'

Bundler.require

# Make sure oboe is at the bottom of your Gemfile.
# This is likely redundant but just in case.
require 'oboe'

# Tracing mode can be 'never', 'through' (to follow upstream) or 'always'
TraceView::Config[:tracing_mode] = 'always'

#
# Update April 9, 2015 - this is done automagically now
# and doesn't have to be called manually
#
# Load library instrumentation to auto-capture stuff we know about...
# e.g. ActiveRecord, Cassandra, Dalli, Redis, memcache, mongo
# TraceView::Ruby.load

# Some KVs to report to the dashboard
report_kvs = {}
report_kvs[:command_line_params] = ARGV.to_s
report_kvs[:user_id] = `whoami`

TraceView::API.start_trace('my_background_job', nil, report_kvs) do
  #
  # Initialization code
  #

  tasks = get_all_tasks

  tasks.each do |t|
    # Optional: Here we embed another 'trace' to separate actual
    # work for each task.  In the TV dashboard, this will show
    # up as a large 'my_background_job' parent layer with many
    # child 'task" layers.
    TraceView::API.trace('task', :task_id => t.id) do
      t.perform
    end
  end
  #
  # cleanup code
  #
end

# Note that we use 'start_trace' in the outer block and 'trace' for
# any sub-blocks of code we wish to instrument.  The arguments for
# both methods vary slightly.  Details in RubyDoc:
# https://www.omniref.com/ruby/gems/oboe/2.7.10.1/symbols/TraceView::API::Tracing#tab=Methods

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
traceview-3.8.4-java examples/tracing_background_jobs.rb
traceview-3.8.4 examples/tracing_background_jobs.rb
traceview-3.8.3-java examples/tracing_background_jobs.rb
traceview-3.8.3 examples/tracing_background_jobs.rb
traceview-3.8.2-java examples/tracing_background_jobs.rb
traceview-3.8.2 examples/tracing_background_jobs.rb