Sha256: 1b9b562891697e88bea5b58ce8f6f0020d2ac1bf259dad9a8ce9b036d43150bf

Contents?: true

Size: 581 Bytes

Versions: 3

Compression:

Stored size: 581 Bytes

Contents

require_relative 'datadog'

def fib(n)
  n <= 1 ? n : fib(n-1) + fib(n-2)
end

def trace(*options, &block)
  raise ArgumentError('Must provide trace block') unless block_given?

  if Datadog::DemoEnv.feature?('tracing')
    Datadog.tracer.trace(*options, &block)
  else
    yield
  end
end

def generate_fib
  loop do
    n = rand(25..35)

    trace('compute.fibonacci') do |span|
      result = fib(n)
      span.set_metric('operation.fibonacci.n', n)
      span.set_metric('operation.fibonacci.result', result)
      yield(span) if block_given?
    end

    sleep(0.1)
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ddtrace-0.51.1 integration/apps/rspec/app/fibonacci.rb
ddtrace-0.51.0 integration/apps/rspec/app/fibonacci.rb
ddtrace-0.50.0 integration/apps/rspec/app/fibonacci.rb