Method: Datadog::Statsd#time

Defined in:
lib/datadog/statsd.rb

#time(stat, opts = EMPTY_OPTIONS) { ... } ⇒ Object

Reports execution time of the provided block using #timing.

If the block fails, the stat is still reported, then the error is reraised

Examples:

Report the time (in ms) taken to activate an account

$statsd.time('account.activate') { @account.activate! }

Parameters:

  • stat name

  • (defaults to: EMPTY_OPTIONS)

    the options to create the metric with

Options Hash (opts):

  • :sample_rate (Numeric)

    sample rate, 1 for always

  • :pre_sampled (Boolean)

    If true, the client assumes the caller has already sampled metrics at :sample_rate, and doesn’t perform sampling.

  • :tags (Array<String>)

    An array of tags

  • :cardinality (String)

    The tag cardinality to use

Yields:

  • The operation to be timed

See Also:



328
329
330
331
332
333
334
# File 'lib/datadog/statsd.rb', line 328

def time(stat, opts = EMPTY_OPTIONS)
  opts = { sample_rate: opts } if opts.is_a?(Numeric)
  start = now
  yield
ensure
  timing(stat, ((now - start) * 1000).round, opts)
end