From 32781731b6ebf29cccdc6aca9ae2a3a524f9b62e Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Tue, 25 Apr 2017 18:37:02 +0200 Subject: [PATCH 1/2] use concurrent-ruby --- Gemfile | 1 + lib/metriks.rb | 3 +++ lib/metriks/counter.rb | 4 +--- lib/metriks/ewma.rb | 4 +--- lib/metriks/exponentially_decaying_sample.rb | 3 +-- lib/metriks/gauge.rb | 2 -- lib/metriks/histogram.rb | 1 - lib/metriks/meter.rb | 4 +--- lib/metriks/simple_moving_average.rb | 4 +--- lib/metriks/timer.rb | 4 ++-- lib/metriks/uniform_sample.rb | 4 ++-- metriks.gemspec | 2 +- test/counter_test.rb | 2 +- test/test_helper.rb | 6 +++--- 14 files changed, 18 insertions(+), 26 deletions(-) diff --git a/Gemfile b/Gemfile index 758e629..d233130 100644 --- a/Gemfile +++ b/Gemfile @@ -6,6 +6,7 @@ gem 'beefcake', '< 1.0.0' group :test do gem 'rake' + gem 'test-unit' gem 'riemann-client', '~> 0.0.7' gem 'rbtree', :platform => :mri_18 end diff --git a/lib/metriks.rb b/lib/metriks.rb index 44f92b7..6520fd1 100644 --- a/lib/metriks.rb +++ b/lib/metriks.rb @@ -1,3 +1,4 @@ +require 'concurrent' module Metriks VERSION = '0.9.9.7' @@ -29,6 +30,8 @@ def self.meter(name) def self.histogram(name) Metriks::Registry.default.histogram(name) end + + Atomic = Concurrent::AtomicReference end require 'metriks/registry' diff --git a/lib/metriks/counter.rb b/lib/metriks/counter.rb index 93b9662..7196558 100644 --- a/lib/metriks/counter.rb +++ b/lib/metriks/counter.rb @@ -1,5 +1,3 @@ -require 'atomic' - module Metriks # Public: Counters are one of the simplest metrics whose only operations # are increment and decrement. @@ -41,4 +39,4 @@ def count @count.value end end -end \ No newline at end of file +end diff --git a/lib/metriks/ewma.rb b/lib/metriks/ewma.rb index d169dfe..d3b3527 100644 --- a/lib/metriks/ewma.rb +++ b/lib/metriks/ewma.rb @@ -1,5 +1,3 @@ -require 'atomic' - module Metriks class EWMA INTERVAL = 5.0 @@ -60,4 +58,4 @@ def rate @rate.value end end -end \ No newline at end of file +end diff --git a/lib/metriks/exponentially_decaying_sample.rb b/lib/metriks/exponentially_decaying_sample.rb index b9da018..e852f93 100644 --- a/lib/metriks/exponentially_decaying_sample.rb +++ b/lib/metriks/exponentially_decaying_sample.rb @@ -1,4 +1,3 @@ -require 'atomic' require 'red_black_tree' require 'metriks/snapshot' @@ -99,4 +98,4 @@ def rescale(now, next_time) end end end -end \ No newline at end of file +end diff --git a/lib/metriks/gauge.rb b/lib/metriks/gauge.rb index 19c222b..0713a84 100644 --- a/lib/metriks/gauge.rb +++ b/lib/metriks/gauge.rb @@ -1,5 +1,3 @@ -require 'atomic' - module Metriks class Gauge # Public: Initialize a new Gauge. diff --git a/lib/metriks/histogram.rb b/lib/metriks/histogram.rb index d3202b5..d4b7c79 100644 --- a/lib/metriks/histogram.rb +++ b/lib/metriks/histogram.rb @@ -1,4 +1,3 @@ -require 'atomic' require 'metriks/uniform_sample' require 'metriks/exponentially_decaying_sample' diff --git a/lib/metriks/meter.rb b/lib/metriks/meter.rb index 3e4d64d..8db649c 100644 --- a/lib/metriks/meter.rb +++ b/lib/metriks/meter.rb @@ -1,5 +1,3 @@ -require 'atomic' - require 'metriks/ewma' module Metriks @@ -82,4 +80,4 @@ def mean_rate def stop end end -end \ No newline at end of file +end diff --git a/lib/metriks/simple_moving_average.rb b/lib/metriks/simple_moving_average.rb index fb0d08f..9370560 100644 --- a/lib/metriks/simple_moving_average.rb +++ b/lib/metriks/simple_moving_average.rb @@ -1,5 +1,3 @@ -require 'atomic' - module Metriks class SimpleMovingAverage INTERVAL = 5.0 @@ -57,4 +55,4 @@ def rate num / count / @interval.to_f end end -end \ No newline at end of file +end diff --git a/lib/metriks/timer.rb b/lib/metriks/timer.rb index c0e46ad..1096dfe 100644 --- a/lib/metriks/timer.rb +++ b/lib/metriks/timer.rb @@ -1,4 +1,4 @@ -require 'atomic' +require 'concurrent' require 'hitimes' require 'metriks/meter' @@ -102,4 +102,4 @@ def stop @meter.stop end end -end \ No newline at end of file +end diff --git a/lib/metriks/uniform_sample.rb b/lib/metriks/uniform_sample.rb index b3d65ac..a5023cd 100644 --- a/lib/metriks/uniform_sample.rb +++ b/lib/metriks/uniform_sample.rb @@ -1,4 +1,4 @@ -require 'atomic' +require 'concurrent' require 'metriks/snapshot' module Metriks @@ -37,4 +37,4 @@ def update(value) end end end -end \ No newline at end of file +end diff --git a/metriks.gemspec b/metriks.gemspec index 80409f2..ff708c6 100644 --- a/metriks.gemspec +++ b/metriks.gemspec @@ -39,7 +39,7 @@ Gem::Specification.new do |s| ## List your runtime dependencies here. Runtime dependencies are those ## that are needed for an end user to actually USE your code. - s.add_dependency('atomic', ["~> 1.0"]) + s.add_dependency('concurrent-ruby', ["~> 1.0"]) s.add_dependency('hitimes', [ "~> 1.1"]) s.add_dependency('avl_tree', [ "~> 1.2.0" ]) diff --git a/test/counter_test.rb b/test/counter_test.rb index 8540a43..caf81c3 100644 --- a/test/counter_test.rb +++ b/test/counter_test.rb @@ -28,7 +28,7 @@ def test_increment_by_more assert_equal 10, @counter.count end - + def test_increment_by_more_threaded thread 10, :n => 100 do @counter.increment 10 diff --git a/test/test_helper.rb b/test/test_helper.rb index e5cd9ee..ba24a65 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -1,7 +1,7 @@ require 'test/unit' require 'pp' -require 'mocha' +require 'mocha/setup' require 'metriks' @@ -17,7 +17,7 @@ module ThreadHelper def thread(threads = 2, opts = {}) n = opts[:n] || 1 results = [] - + threads.times.map do |i| Thread.new do n.times do @@ -27,7 +27,7 @@ def thread(threads = 2, opts = {}) end.each do |thread| thread.join end - + results end end From 9c18178cb6db12e2b2f673205e830fa97c0e007a Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Tue, 25 Apr 2017 18:47:41 +0200 Subject: [PATCH 2/2] add newer ruby versions to .travis.yml --- .travis.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 44e518a..23731e6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,11 @@ +sudo: false +dist: trusty language: ruby + rvm: - - 1.8.7 - - 1.9.2 - 1.9.3 - - ree + - 2.0 + - 2.1 + - 2.2 + - 2.3 + - 2.4