def measure(event, value = 0)
      if block_given?
        time = Time.now
        # Store the value returned by the block for future reference
        value = yield
        delta = Time.now - time

        ActiveMetrics::Collector.record(event, { metric: 'measure', value: delta })

        value
      else
        ActiveMetrics::Collector.record(event, { metric: 'measure', value: value })
      end
    end
def measure(event, value = 0)
      if block_given?
        time = Time.now
        # Store the value returned by the block for future reference
        value = yield
        delta = Time.now - time

        ActiveMetrics::Collector.record(event, { metric: 'measure', value: delta })

        value
      else
        ActiveMetrics::Collector.record(event, { metric: 'measure', value: value })
      end
    end
Measure log lines are used to submit individual measurements that comprise
 a statistical distribution. The most common use case are timings i.e.
 latency measurements, but it can also be used to represent non-temporal
 distributions such as counts.

 You can submit as many measures as you’d like (typically they are
 submitted per-request) and every minute Librato will calculate/record a
 complete set of summary statistics over the measures submitted in that
 interval.

 The `measure` method also accepts a block of code which will automatically
 measure the amount of time spent running that block:

     measure 'foo.bar.baz' do
       Foo.bar #=> 'baz'
     end

 For convenience, when `measure` is used with a block it will return the
 value returned by the block.

 @param event [String] The name of the event
 @param value [Integer, String] The value measured.