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 CHANGED
Binary file
@@ -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/). If your Librato account doesn't yet support tagged metrics please use the [1.x.x version](https://rubygems.org/gems/librato-rack/versions/1.1.0).
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,256}\z/
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
@@ -1,5 +1,5 @@
1
1
  module Librato
2
2
  class Rack
3
- VERSION = "2.0.1"
3
+ VERSION = "2.0.2"
4
4
  end
5
5
  end
@@ -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.1
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
- -----BEGIN CERTIFICATE-----
13
- MIIDLjCCAhagAwIBAgIBADANBgkqhkiG9w0BAQUFADA9MQ0wCwYDVQQDDARydWJ5
14
- MRcwFQYKCZImiZPyLGQBGRYHbGlicmF0bzETMBEGCgmSJomT8ixkARkWA2NvbTAe
15
- Fw0xNzAxMTExODI3MDdaFw0xODAxMTExODI3MDdaMD0xDTALBgNVBAMMBHJ1Ynkx
16
- FzAVBgoJkiaJk/IsZAEZFgdsaWJyYXRvMRMwEQYKCZImiZPyLGQBGRYDY29tMIIB
17
- IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA58LirwsWnKL1uuClQ0uwA1XL
18
- GpxDuFzSosipiPkzZY3hiHazC8SHDREZQXlm7ITX/o+dueNoB7dt0BR3RPVipH7V
19
- 7cvbCUaZNjEXR5Lal6PsmUsbMTrddkvj3e7flmJv+kMj+teeJ7MDeJTU5wXXV9pD
20
- ThiCDILJMF5CdP8Jru4rSBOP6RmmzYU+0cN5+5pt9xqrycA+Poo2ZuoUMCMsSBvl
21
- PimM3PPvoWTuE41GTn/bLoOVoXQmdwZIbwUSVH8rCDjZSlttOst+xrBw4KG0dYUp
22
- 2UvEe8iCyqEMQ8fEZ7EXuP2WMVICutFbz8Pt4hIMq+OTnDX+mIfma7GvPaKAFwID
23
- AQABozkwNzAJBgNVHRMEAjAAMB0GA1UdDgQWBBQBSxu9Jj4VTrXTpLujPwk9Kzwp
24
- 2jALBgNVHQ8EBAMCBLAwDQYJKoZIhvcNAQEFBQADggEBACvNsw1pGv72xp3LiDlZ
25
- 0tphNP/85RcYyJMklslG3tIYblyo71xHW1UbK5ArUK6k0BN43MuDn3pqLJQttVmi
26
- bUdA3yYi13GeSrrAMlr4nH8Yt/Bn/XpZGliouJUBwh1BjG6dSj1iuR4/9pt9/LtO
27
- QTdIc+07qGspypT0Uh/w/BodEcGuAaZZFlkU9vottTe6wWNnM6hfRExiSIsr+oVe
28
- s8s83ObshjuSzjOqS56IBtNlPEL+D6ghjZZLP3lS6l9p70Pcpcl+IcE4veqZmmKC
29
- sGepgRclC6UbZh+yQ3alXVghM2qsonAwI/rTNmFJN9kQn6nP9+f1Uf/qZFNcjn4L
30
- 9bg=
31
- -----END CERTIFICATE-----
32
- date: 2017-02-21 00:00:00.000000000 Z
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/rack.rb
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: 2.2.2
168
+ rubygems_version: 1.8.23.2
148
169
  signing_key:
149
- specification_version: 4
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
@@ -1 +0,0 @@
1
- E�ݕ�%�+�g�>����ނs}�>��P�g^9�(�RHvj��4�>��OI�����iS�u�>:{�L�Q���;�_nv��[�y__�С�'0�i�����