measurometer 1.1.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -1
- data/README.md +1 -1
- data/lib/measurometer.rb +4 -4
- data/lib/measurometer/version.rb +1 -1
- data/measurometer.gemspec +2 -2
- data/spec/measurometer/statsd_driver_spec.rb +1 -1
- data/spec/measurometer_spec.rb +62 -0
- metadata +9 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: df51b60bd2fe7c7c02cbd31be5729b6ecf73f4bd648f1fb423bc493510555215
|
4
|
+
data.tar.gz: a92627ad8a3e285b5848a2295cc0ae5fd76082adc26dcf927aaed7314fe34013
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 847d3e71f92b9920736f8ab9f978fe153663368edbf4b78e2bee3d7063e97a18157323f2ff8fcaa3c5931cd4a07075f0cd5dc826803f44789485b4a4fd7db734
|
7
|
+
data.tar.gz: 570a3a98e128e02b2f7b1c6e4af64d4e5e78d8ad5a767fb401df9dc8e43212417716409c88049c3655be55be9b075eb6f8e7df78a5e92bfb9de835865289aef1
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
# 1.1.1
|
2
|
+
|
3
|
+
* Automatically convert metric and instrumentation block names to Strings, since i.e.
|
4
|
+
Appsignal cannot deal with Symbol names for those.
|
5
|
+
|
6
|
+
# 1.1.0
|
7
|
+
|
8
|
+
* Ensure #increment_counter provides the default increment of 1 to the drivers
|
9
|
+
|
1
10
|
# 1.0.0
|
2
11
|
|
3
|
-
Initial release
|
12
|
+
* Initial release
|
data/README.md
CHANGED
@@ -9,7 +9,7 @@ You for a fact know that this action consists of the following code:
|
|
9
9
|
|
10
10
|
```
|
11
11
|
heavy_model = ModelTree.find(user_id)
|
12
|
-
|
12
|
+
profligation_outcome = Profilgator.profligate(heavy_model)
|
13
13
|
Promulgator.promulgate(profligation_outcome)
|
14
14
|
```
|
15
15
|
|
data/lib/measurometer.rb
CHANGED
@@ -50,7 +50,7 @@ module Measurometer
|
|
50
50
|
blk_with_capture = -> { blk_return_value = blk.call }
|
51
51
|
@drivers.inject(blk_with_capture) { |outer_block, driver|
|
52
52
|
-> {
|
53
|
-
driver.instrument(block_name, &outer_block)
|
53
|
+
driver.instrument(block_name.to_s, &outer_block)
|
54
54
|
}
|
55
55
|
}.call
|
56
56
|
blk_return_value
|
@@ -62,7 +62,7 @@ module Measurometer
|
|
62
62
|
# @param value[Numeric] distribution value
|
63
63
|
# @return nil
|
64
64
|
def add_distribution_value(value_path, value)
|
65
|
-
@drivers.each { |d| d.add_distribution_value(value_path, value) }
|
65
|
+
@drivers.each { |d| d.add_distribution_value(value_path.to_s, value) }
|
66
66
|
nil
|
67
67
|
end
|
68
68
|
|
@@ -72,7 +72,7 @@ module Measurometer
|
|
72
72
|
# @param by[Integer] the counter increment to apply
|
73
73
|
# @return nil
|
74
74
|
def increment_counter(counter_path, by = 1)
|
75
|
-
@drivers.each { |d| d.increment_counter(counter_path, by) }
|
75
|
+
@drivers.each { |d| d.increment_counter(counter_path.to_s, by) }
|
76
76
|
nil
|
77
77
|
end
|
78
78
|
|
@@ -82,7 +82,7 @@ module Measurometer
|
|
82
82
|
# @param value[Integer] the absolute value of the gauge
|
83
83
|
# @return nil
|
84
84
|
def set_gauge(gauge_name, value)
|
85
|
-
@drivers.each { |d| d.set_gauge(gauge_name, value) }
|
85
|
+
@drivers.each { |d| d.set_gauge(gauge_name.to_s, value) }
|
86
86
|
nil
|
87
87
|
end
|
88
88
|
end
|
data/lib/measurometer/version.rb
CHANGED
data/measurometer.gemspec
CHANGED
@@ -20,8 +20,8 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
21
|
spec.require_paths = ['lib']
|
22
22
|
|
23
|
-
spec.add_development_dependency 'bundler'
|
24
|
-
spec.add_development_dependency 'rake', '~>
|
23
|
+
spec.add_development_dependency 'bundler'
|
24
|
+
spec.add_development_dependency 'rake', '~> 12'
|
25
25
|
spec.add_development_dependency 'rspec', '~> 3'
|
26
26
|
spec.add_development_dependency 'wetransfer_style', '0.5.0'
|
27
27
|
end
|
@@ -17,7 +17,7 @@ describe 'Measurometer::StatsdDriver' do
|
|
17
17
|
Measurometer.increment_counter('app.some_counter', 2)
|
18
18
|
Measurometer.add_distribution_value('app.some_sample', 42)
|
19
19
|
|
20
|
-
expect(statsd).to have_received(:timing) {|block_name, timing_millis|
|
20
|
+
expect(statsd).to have_received(:timing) { |block_name, timing_millis|
|
21
21
|
expect(block_name).to eq('some_block.x')
|
22
22
|
expect(timing_millis).to be_within(20).of(200)
|
23
23
|
}
|
data/spec/measurometer_spec.rb
CHANGED
@@ -35,6 +35,52 @@ RSpec.describe Measurometer do
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
+
describe '.add_distribution_value' do
|
39
|
+
it 'converts the metric name to a String before passing it to the driver' do
|
40
|
+
driver = double
|
41
|
+
expect(driver).to receive(:add_distribution_value).with('bar_intensity', 114.4)
|
42
|
+
|
43
|
+
Measurometer.drivers << driver
|
44
|
+
result = Measurometer.add_distribution_value(:bar_intensity, 114.4)
|
45
|
+
expect(result).to be_nil
|
46
|
+
Measurometer.drivers.delete(driver)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe '.increment_counter' do
|
51
|
+
it 'increments by 1 by default and converts the counter name to a String before passing it to the driver' do
|
52
|
+
driver = double
|
53
|
+
expect(driver).to receive(:increment_counter).with('barness', 1)
|
54
|
+
|
55
|
+
Measurometer.drivers << driver
|
56
|
+
result = Measurometer.increment_counter(:barness)
|
57
|
+
expect(result).to be_nil
|
58
|
+
Measurometer.drivers.delete(driver)
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'passes the increment to the driver' do
|
62
|
+
driver = double
|
63
|
+
expect(driver).to receive(:increment_counter).with('barness', 123)
|
64
|
+
|
65
|
+
Measurometer.drivers << driver
|
66
|
+
result = Measurometer.increment_counter(:barness, 123)
|
67
|
+
expect(result).to be_nil
|
68
|
+
Measurometer.drivers.delete(driver)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
describe '.set_gauge' do
|
73
|
+
it 'converts the gauge name to a String before passing it to the driver' do
|
74
|
+
driver = double
|
75
|
+
expect(driver).to receive(:set_gauge).with('fooeyness', 456)
|
76
|
+
|
77
|
+
Measurometer.drivers << driver
|
78
|
+
result = Measurometer.set_gauge(:fooeyness, 456)
|
79
|
+
expect(result).to be_nil
|
80
|
+
Measurometer.drivers.delete(driver)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
38
84
|
describe '.instrument' do
|
39
85
|
it 'preserves the return value of the block even if one of the drivers swallows it' do
|
40
86
|
bad_driver = Object.new
|
@@ -51,6 +97,22 @@ RSpec.describe Measurometer do
|
|
51
97
|
|
52
98
|
expect(instrument_result).to eq(:block_result)
|
53
99
|
end
|
100
|
+
|
101
|
+
it 'converts the block name to a String before passing it to the instrumenters' do
|
102
|
+
instrumentation_driver = Object.new
|
103
|
+
def instrumentation_driver.instrument(block_name)
|
104
|
+
raise 'Block name must be a string' unless block_name.is_a?(String)
|
105
|
+
yield
|
106
|
+
end
|
107
|
+
|
108
|
+
Measurometer.drivers << instrumentation_driver
|
109
|
+
instrument_result = Measurometer.instrument(:foo) do
|
110
|
+
:block_result
|
111
|
+
end
|
112
|
+
Measurometer.drivers.delete(instrumentation_driver)
|
113
|
+
|
114
|
+
expect(instrument_result).to eq(:block_result)
|
115
|
+
end
|
54
116
|
end
|
55
117
|
|
56
118
|
it 'sources instrumentation to a driver' do
|
metadata
CHANGED
@@ -1,43 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: measurometer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julik Tarkhanov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-05-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '12'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '12'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -112,8 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
112
112
|
- !ruby/object:Gem::Version
|
113
113
|
version: '0'
|
114
114
|
requirements: []
|
115
|
-
|
116
|
-
rubygems_version: 2.7.6
|
115
|
+
rubygems_version: 3.0.3
|
117
116
|
signing_key:
|
118
117
|
specification_version: 4
|
119
118
|
summary: Minimum viable API for instrumentation in libraries
|