librato-rack 2.0.1 → 2.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/CHANGELOG.md +4 -1
- data/README.md +3 -1
- data/lib/librato/rack/validating_queue.rb +8 -4
- data/lib/librato/rack/version.rb +1 -1
- data/test/unit/rack/validating_queue_test.rb +56 -0
- metadata +64 -42
- metadata.gz.sig +0 -0
- checksums.yaml +0 -7
- checksums.yaml.gz.sig +0 -1
data.tar.gz.sig
CHANGED
Binary file
|
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,11 @@
|
|
1
|
+
### Version 2.0.2
|
2
|
+
* Update `ValidatingQueue` tag value restrictions (#72)
|
3
|
+
|
1
4
|
### Version 2.0.1
|
2
5
|
* Ensure `rack.request.queue.time` metric is not negative (#68, Austin Schneider)
|
3
6
|
|
4
7
|
### Version 2.0.0
|
5
|
-
* Add support for tagged measurements (#54)
|
8
|
+
* Add support for tagged measurements (#54). **NOTE**: This version introduces breaking changes for legacy sources. Please contact support@librato.com to learn more.
|
6
9
|
|
7
10
|
### Version 1.1.0
|
8
11
|
* Fix deprecation warnings in ruby 2.4 (#57, Ben Radler)
|
data/README.md
CHANGED
@@ -5,7 +5,9 @@ librato-rack
|
|
5
5
|
|
6
6
|
---
|
7
7
|
|
8
|
-
**NOTE:** Starting with version 2.0.0 librato-rack requires a Librato account that [supports tagged metrics](https://www.librato.com/docs/kb/faq/account_questions/tags_or_sources/).
|
8
|
+
**NOTE:** Starting with version 2.0.0 librato-rack requires a Librato account that [supports tagged metrics](https://www.librato.com/docs/kb/faq/account_questions/tags_or_sources/).
|
9
|
+
|
10
|
+
If your Librato account doesn't yet support tagged metrics or you are using [a heroku addon](https://devcenter.heroku.com/articles/librato#using-with-ruby), please use the [1.x.x version](https://rubygems.org/gems/librato-rack/versions/1.1.0).
|
9
11
|
|
10
12
|
---
|
11
13
|
|
@@ -8,12 +8,18 @@ module Librato
|
|
8
8
|
DEFAULT_TAGS_LIMIT = 4
|
9
9
|
METRIC_NAME_REGEX = /\A[-.:_\w]{1,255}\z/
|
10
10
|
TAGS_KEY_REGEX = /\A[-.:_\w]{1,64}\z/
|
11
|
-
TAGS_VALUE_REGEX = /\A[-.:_\w]{1,
|
11
|
+
TAGS_VALUE_REGEX = /\A[-.:_\w\s]{1,255}\z/
|
12
12
|
|
13
13
|
attr_accessor :logger
|
14
14
|
|
15
|
-
# screen all measurements for validity before sending
|
16
15
|
def submit
|
16
|
+
validate_measurements
|
17
|
+
|
18
|
+
super
|
19
|
+
end
|
20
|
+
|
21
|
+
# screen all measurements for validity before sending
|
22
|
+
def validate_measurements
|
17
23
|
@queued[:measurements].delete_if do |entry|
|
18
24
|
name = entry[:name].to_s
|
19
25
|
tags = entry[:tags]
|
@@ -27,8 +33,6 @@ module Librato
|
|
27
33
|
false # preserve
|
28
34
|
end
|
29
35
|
end
|
30
|
-
|
31
|
-
super
|
32
36
|
end
|
33
37
|
|
34
38
|
private
|
data/lib/librato/rack/version.rb
CHANGED
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module Librato
|
4
|
+
class Rack
|
5
|
+
class ValidatingQueueTest < Minitest::Test
|
6
|
+
def setup
|
7
|
+
@queue = ValidatingQueue.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_valid_metric_name_tag_name_tag_value
|
11
|
+
@queue.add valid_metric_name: {
|
12
|
+
value: rand(100),
|
13
|
+
tags: { valid_tag_name: 'valid_tag_value' }
|
14
|
+
}
|
15
|
+
@queue.validate_measurements
|
16
|
+
refute_empty @queue.queued[:measurements]
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_valid_tag_value_with_whitespace
|
20
|
+
@queue.add valid_metric_name: {
|
21
|
+
value: rand(100),
|
22
|
+
tags: { valid_tag_name: 'valid tag value' }
|
23
|
+
}
|
24
|
+
@queue.validate_measurements
|
25
|
+
refute_empty @queue.queued[:measurements]
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_invalid_metric_name
|
29
|
+
@queue.add 'invalid metric name' => {
|
30
|
+
value: rand(100),
|
31
|
+
tags: { valid_tag_name: 'valid_tag_value' }
|
32
|
+
}
|
33
|
+
@queue.validate_measurements
|
34
|
+
assert_empty @queue.queued[:measurements]
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_invalid_tag_name
|
38
|
+
@queue.add valid_metric_name: {
|
39
|
+
value: rand(100),
|
40
|
+
tags: { 'invalid_tag_name!' => 'valid_tag_value' }
|
41
|
+
}
|
42
|
+
@queue.validate_measurements
|
43
|
+
assert_empty @queue.queued[:measurements]
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_invalid_tag_value
|
47
|
+
@queue.add valid_metric_name: {
|
48
|
+
value: rand(100),
|
49
|
+
tags: { valid_tag_name: 'invalid_tag_value!' }
|
50
|
+
}
|
51
|
+
@queue.validate_measurements
|
52
|
+
assert_empty @queue.queued[:measurements]
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
metadata
CHANGED
@@ -1,76 +1,89 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: librato-rack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.2
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Matt Sanders
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain:
|
11
|
-
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
12
|
+
- !binary |-
|
13
|
+
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURMakNDQWhhZ0F3SUJB
|
14
|
+
Z0lCQURBTkJna3Foa2lHOXcwQkFRVUZBREE5TVEwd0N3WURWUVFEREFSeWRX
|
15
|
+
SjUKTVJjd0ZRWUtDWkltaVpQeUxHUUJHUllIYkdsaWNtRjBiekVUTUJFR0Nn
|
16
|
+
bVNKb21UOGl4a0FSa1dBMk52YlRBZQpGdzB4TnpBeE1URXhPREkzTURkYUZ3
|
17
|
+
MHhPREF4TVRFeE9ESTNNRGRhTUQweERUQUxCZ05WQkFNTUJISjFZbmt4CkZ6
|
18
|
+
QVZCZ29Ka2lhSmsvSXNaQUVaRmdkc2FXSnlZWFJ2TVJNd0VRWUtDWkltaVpQ
|
19
|
+
eUxHUUJHUllEWTI5dE1JSUIKSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4
|
20
|
+
QU1JSUJDZ0tDQVFFQTU4TGlyd3NXbktMMXV1Q2xRMHV3QTFYTApHcHhEdUZ6
|
21
|
+
U29zaXBpUGt6WlkzaGlIYXpDOFNIRFJFWlFYbG03SVRYL28rZHVlTm9CN2R0
|
22
|
+
MEJSM1JQVmlwSDdWCjdjdmJDVWFaTmpFWFI1TGFsNlBzbVVzYk1UcmRka3Zq
|
23
|
+
M2U3ZmxtSnYra01qK3RlZUo3TURlSlRVNXdYWFY5cEQKVGhpQ0RJTEpNRjVD
|
24
|
+
ZFA4SnJ1NHJTQk9QNlJtbXpZVSswY041KzVwdDl4cXJ5Y0ErUG9vMlp1b1VN
|
25
|
+
Q01zU0J2bApQaW1NM1BQdm9XVHVFNDFHVG4vYkxvT1ZvWFFtZHdaSWJ3VVNW
|
26
|
+
SDhyQ0RqWlNsdHRPc3QreHJCdzRLRzBkWVVwCjJVdkVlOGlDeXFFTVE4ZkVa
|
27
|
+
N0VYdVAyV01WSUN1dEZiejhQdDRoSU1xK09UbkRYK21JZm1hN0d2UGFLQUZ3
|
28
|
+
SUQKQVFBQm96a3dOekFKQmdOVkhSTUVBakFBTUIwR0ExVWREZ1FXQkJRQlN4
|
29
|
+
dTlKajRWVHJYVHBMdWpQd2s5S3p3cAoyakFMQmdOVkhROEVCQU1DQkxBd0RR
|
30
|
+
WUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFDdk5zdzFwR3Y3MnhwM0xpRGxaCjB0
|
31
|
+
cGhOUC84NVJjWXlKTWtsc2xHM3RJWWJseW83MXhIVzFVYks1QXJVSzZrMEJO
|
32
|
+
NDNNdURuM3BxTEpRdHRWbWkKYlVkQTN5WWkxM0dlU3JyQU1scjRuSDhZdC9C
|
33
|
+
bi9YcFpHbGlvdUpVQndoMUJqRzZkU2oxaXVSNC85cHQ5L0x0TwpRVGRJYysw
|
34
|
+
N3FHc3B5cFQwVWgvdy9Cb2RFY0d1QWFaWkZsa1U5dm90dFRlNndXTm5NNmhm
|
35
|
+
UkV4aVNJc3Irb1ZlCnM4czgzT2JzaGp1U3pqT3FTNTZJQnRObFBFTCtENmdo
|
36
|
+
alpaTFAzbFM2bDlwNzBQY3BjbCtJY0U0dmVxWm1tS0MKc0dlcGdSY2xDNlVi
|
37
|
+
WmgreVEzYWxYVmdoTTJxc29uQXdJL3JUTm1GSk45a1FuNm5QOStmMVVmL3Fa
|
38
|
+
Rk5jam40TAo5Ymc9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
|
39
|
+
date: 2017-03-20 00:00:00.000000000 Z
|
33
40
|
dependencies:
|
34
41
|
- !ruby/object:Gem::Dependency
|
35
42
|
name: librato-metrics
|
36
43
|
requirement: !ruby/object:Gem::Requirement
|
44
|
+
none: false
|
37
45
|
requirements:
|
38
|
-
- -
|
46
|
+
- - ~>
|
39
47
|
- !ruby/object:Gem::Version
|
40
48
|
version: 2.1.0
|
41
49
|
type: :runtime
|
42
50
|
prerelease: false
|
43
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
44
53
|
requirements:
|
45
|
-
- -
|
54
|
+
- - ~>
|
46
55
|
- !ruby/object:Gem::Version
|
47
56
|
version: 2.1.0
|
48
57
|
- !ruby/object:Gem::Dependency
|
49
58
|
name: hetchy
|
50
59
|
requirement: !ruby/object:Gem::Requirement
|
60
|
+
none: false
|
51
61
|
requirements:
|
52
|
-
- -
|
62
|
+
- - ~>
|
53
63
|
- !ruby/object:Gem::Version
|
54
64
|
version: '1.0'
|
55
65
|
type: :runtime
|
56
66
|
prerelease: false
|
57
67
|
version_requirements: !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
58
69
|
requirements:
|
59
|
-
- -
|
70
|
+
- - ~>
|
60
71
|
- !ruby/object:Gem::Version
|
61
72
|
version: '1.0'
|
62
73
|
- !ruby/object:Gem::Dependency
|
63
74
|
name: minitest
|
64
75
|
requirement: !ruby/object:Gem::Requirement
|
76
|
+
none: false
|
65
77
|
requirements:
|
66
|
-
- -
|
78
|
+
- - ! '>='
|
67
79
|
- !ruby/object:Gem::Version
|
68
80
|
version: '0'
|
69
81
|
type: :development
|
70
82
|
prerelease: false
|
71
83
|
version_requirements: !ruby/object:Gem::Requirement
|
84
|
+
none: false
|
72
85
|
requirements:
|
73
|
-
- -
|
86
|
+
- - ! '>='
|
74
87
|
- !ruby/object:Gem::Version
|
75
88
|
version: '0'
|
76
89
|
description: Rack middleware to report key app statistics and custom instrumentation
|
@@ -82,25 +95,25 @@ executables: []
|
|
82
95
|
extensions: []
|
83
96
|
extra_rdoc_files: []
|
84
97
|
files:
|
85
|
-
- CHANGELOG.md
|
86
|
-
- LICENSE
|
87
|
-
- README.md
|
88
|
-
- Rakefile
|
89
|
-
- lib/librato-rack.rb
|
90
|
-
- lib/librato/collector.rb
|
91
98
|
- lib/librato/collector/aggregator.rb
|
92
99
|
- lib/librato/collector/counter_cache.rb
|
93
100
|
- lib/librato/collector/exceptions.rb
|
94
101
|
- lib/librato/collector/group.rb
|
95
|
-
- lib/librato/
|
96
|
-
- lib/librato/rack/configuration.rb
|
102
|
+
- lib/librato/collector.rb
|
97
103
|
- lib/librato/rack/configuration/suites.rb
|
104
|
+
- lib/librato/rack/configuration.rb
|
98
105
|
- lib/librato/rack/errors.rb
|
99
106
|
- lib/librato/rack/logger.rb
|
100
107
|
- lib/librato/rack/tracker.rb
|
101
108
|
- lib/librato/rack/validating_queue.rb
|
102
109
|
- lib/librato/rack/version.rb
|
103
110
|
- lib/librato/rack/worker.rb
|
111
|
+
- lib/librato/rack.rb
|
112
|
+
- lib/librato-rack.rb
|
113
|
+
- LICENSE
|
114
|
+
- Rakefile
|
115
|
+
- README.md
|
116
|
+
- CHANGELOG.md
|
104
117
|
- test/apps/basic.ru
|
105
118
|
- test/apps/custom.ru
|
106
119
|
- test/apps/custom_suites.ru
|
@@ -123,30 +136,38 @@ files:
|
|
123
136
|
- test/unit/rack/configuration_test.rb
|
124
137
|
- test/unit/rack/logger_test.rb
|
125
138
|
- test/unit/rack/tracker_test.rb
|
139
|
+
- test/unit/rack/validating_queue_test.rb
|
126
140
|
- test/unit/rack/worker_test.rb
|
127
141
|
homepage: https://github.com/librato/librato-rack
|
128
142
|
licenses:
|
129
143
|
- BSD-3-Clause
|
130
|
-
metadata: {}
|
131
144
|
post_install_message:
|
132
145
|
rdoc_options: []
|
133
146
|
require_paths:
|
134
147
|
- lib
|
135
148
|
required_ruby_version: !ruby/object:Gem::Requirement
|
149
|
+
none: false
|
136
150
|
requirements:
|
137
|
-
- -
|
151
|
+
- - ! '>='
|
138
152
|
- !ruby/object:Gem::Version
|
139
153
|
version: '0'
|
154
|
+
segments:
|
155
|
+
- 0
|
156
|
+
hash: -2408742932426034102
|
140
157
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
158
|
+
none: false
|
141
159
|
requirements:
|
142
|
-
- -
|
160
|
+
- - ! '>='
|
143
161
|
- !ruby/object:Gem::Version
|
144
162
|
version: '0'
|
163
|
+
segments:
|
164
|
+
- 0
|
165
|
+
hash: -2408742932426034102
|
145
166
|
requirements: []
|
146
167
|
rubyforge_project:
|
147
|
-
rubygems_version:
|
168
|
+
rubygems_version: 1.8.23.2
|
148
169
|
signing_key:
|
149
|
-
specification_version:
|
170
|
+
specification_version: 3
|
150
171
|
summary: Use Librato Metrics with your rack application
|
151
172
|
test_files:
|
152
173
|
- test/apps/basic.ru
|
@@ -171,4 +192,5 @@ test_files:
|
|
171
192
|
- test/unit/rack/configuration_test.rb
|
172
193
|
- test/unit/rack/logger_test.rb
|
173
194
|
- test/unit/rack/tracker_test.rb
|
195
|
+
- test/unit/rack/validating_queue_test.rb
|
174
196
|
- test/unit/rack/worker_test.rb
|
metadata.gz.sig
CHANGED
Binary file
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: d291d01af87d4bef2ce62492b0d44487112626b6
|
4
|
-
data.tar.gz: dfe86fb5950bfa428bb153a471f14d5bf2b9fee2
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 8fc08bb0ce4c5a06864cf1f2c43818a4e9485c0adebdafde1e5ab7a427c1b38b620aca87af7115d671936731ad346ac8a17d28bf9678b488d4ec655a13afc5fb
|
7
|
-
data.tar.gz: f87fb8ebb490fbe3e2ecb1ca6db297b07841fafbc66ee2e53b52ccc3b1e07a0825ab8a183a58cda4e19b9501ee2e6399963b43d79261dd257f3aebc50360ee40
|
checksums.yaml.gz.sig
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
E�ݕ�%�+�g�>����ނs}�>��P�g^9�(�RHvj��4�>��OI�����iS�u�>:{�L�Q���;�_nv��[�y__�С�'0�i�����
|