From dd54881246834b81927cba6bb181e9f0d85a71f5 Mon Sep 17 00:00:00 2001 From: Demirhan Aydin Date: Tue, 4 Jun 2013 14:07:10 +0300 Subject: [PATCH] added track_as method --- README.md | 15 +++++++++++++++ lib/rubik.rb | 7 +++++++ 2 files changed, 22 insertions(+) diff --git a/README.md b/README.md index 461d055..691f76d 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,21 @@ class MyClass end ``` +Also Rubik can track inline block execution times. + +```ruby +class MyClass + include Rubik + + def run + track_as 'myclass#run_method' do + # do some stuff + sleep 1 + end + end +end +``` + ### Custom Metrics Just use the Rubik.push_metric method to push your custom metric. diff --git a/lib/rubik.rb b/lib/rubik.rb index 7e2c5e0..bd6ae6e 100644 --- a/lib/rubik.rb +++ b/lib/rubik.rb @@ -6,6 +6,13 @@ module Rubik extend ActiveSupport::Concern + def track_as key + start = Time.now.to_f + yield + delta = ((Time.now.to_f - start) * 1000).ceil + Rubik.push key, delta + end + class << self SAMPLE_SIZE = 500 attr_accessor :redis