librato-rack 2.0.1 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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�����