nsa 0.1.4 → 0.2.0
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.
- checksums.yaml +4 -4
- data/lib/nsa.rb +5 -5
- data/lib/nsa/statsd.rb +4 -0
- data/lib/nsa/statsd/async_publisher.rb +40 -0
- data/lib/nsa/statsd/informant.rb +30 -0
- data/lib/nsa/version.rb +1 -1
- data/nsa.gemspec +1 -0
- metadata +19 -3
- data/lib/nsa/statsd_informant.rb +0 -31
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c1a996fa5af6727cff0da62c3bea2c03121e0e39
|
4
|
+
data.tar.gz: b60c21f202615307e3c5c2d0bda20db393fcd79d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 22112240d62da1536e1dc24e3f9c904d0c65ab6d8152376a2a124f9f21a6243b7961ed935577f92f3b02c2da460b4001ed51c9ac09aa180420b9dc56ac839e6f
|
7
|
+
data.tar.gz: 51a0f98d21e227da7ee8a65df55e272b828e906066d99959c7a78bccf66d540ac59ffd8ca7069f9e850f9d1b3fedbeb742c7e3230c2fbc7dd3a6f7dac7c8e55d
|
data/lib/nsa.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
require "nsa/version"
|
2
|
-
require "nsa/statsd_informant"
|
3
|
-
|
4
1
|
module NSA
|
5
2
|
|
6
3
|
def self.inform_statsd(backend)
|
7
|
-
yield ::NSA::
|
8
|
-
::NSA::
|
4
|
+
yield ::NSA::Statsd::Informant
|
5
|
+
::NSA::Statsd::Informant.listen(backend)
|
9
6
|
end
|
10
7
|
|
11
8
|
end
|
9
|
+
|
10
|
+
require "nsa/version"
|
11
|
+
require "nsa/statsd"
|
data/lib/nsa/statsd.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
require "concurrent"
|
2
|
+
|
3
|
+
module NSA
|
4
|
+
module Statsd
|
5
|
+
module AsyncPublisher
|
6
|
+
include ::NSA::Statsd::Publisher
|
7
|
+
|
8
|
+
def async_statsd_count(key, sample_rate = nil, &block)
|
9
|
+
::Concurrent::Promise.execute(&block).then do |value|
|
10
|
+
statsd_count(key, value, sample_rate)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def async_statsd_gauge(key, sample_rate = nil, &block)
|
15
|
+
::Concurrent::Promise.execute(&block).then do |value|
|
16
|
+
statsd_gauge(key, value, sample_rate)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def async_statsd_set(key, sample_rate = nil, &block)
|
21
|
+
::Concurrent::Promise.execute(&block).then do |value|
|
22
|
+
statsd_set(key, value, sample_rate)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def async_statsd_time(key, sample_rate = nil, &block)
|
27
|
+
::Concurrent::Future.execute do
|
28
|
+
statsd_time(key, sample_rate, &block)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def async_statsd_timing(key, sample_rate = nil, &block)
|
33
|
+
::Concurrent::Promise.execute(&block).then do |value|
|
34
|
+
statsd_timing(key, value, sample_rate)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require "nsa/collectors/action_controller"
|
2
|
+
require "nsa/collectors/active_record"
|
3
|
+
require "nsa/collectors/active_support_cache"
|
4
|
+
require "nsa/collectors/null"
|
5
|
+
require "nsa/collectors/sidekiq"
|
6
|
+
|
7
|
+
module NSA
|
8
|
+
module Statsd
|
9
|
+
module Informant
|
10
|
+
extend ::NSA::Statsd::Subscriber
|
11
|
+
|
12
|
+
COLLECTOR_TYPES = ::Hash.new(::NSA::Collectors::Null).merge({
|
13
|
+
:action_controller => ::NSA::Collectors::ActionController,
|
14
|
+
:active_record => ::NSA::Collectors::ActiveRecord,
|
15
|
+
:active_support_cache => ::NSA::Collectors::ActiveSupportCache,
|
16
|
+
:sidekiq => ::NSA::Collectors::Sidekiq
|
17
|
+
}).freeze
|
18
|
+
|
19
|
+
def self.collect(collector, key_prefix)
|
20
|
+
collector = COLLECTOR_TYPES[collector.to_sym] unless collector.respond_to?(:collect)
|
21
|
+
collector.collect(key_prefix)
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.listen(backend)
|
25
|
+
statsd_subscribe(backend)
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/lib/nsa/version.rb
CHANGED
data/nsa.gemspec
CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_dependency "activesupport", "~> 4.2.0"
|
22
|
+
spec.add_dependency "concurrent-ruby", "~> 1.0.0"
|
22
23
|
spec.add_dependency "sidekiq", ">= 3.5.0"
|
23
24
|
spec.add_dependency "statsd-ruby", "~> 1.2.0"
|
24
25
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nsa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- BJ Neilsen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-11-
|
11
|
+
date: 2015-11-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 4.2.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: concurrent-ruby
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.0.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.0.0
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: sidekiq
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -143,9 +157,11 @@ files:
|
|
143
157
|
- lib/nsa/collectors/active_support_cache.rb
|
144
158
|
- lib/nsa/collectors/null.rb
|
145
159
|
- lib/nsa/collectors/sidekiq.rb
|
160
|
+
- lib/nsa/statsd.rb
|
161
|
+
- lib/nsa/statsd/async_publisher.rb
|
162
|
+
- lib/nsa/statsd/informant.rb
|
146
163
|
- lib/nsa/statsd/publisher.rb
|
147
164
|
- lib/nsa/statsd/subscriber.rb
|
148
|
-
- lib/nsa/statsd_informant.rb
|
149
165
|
- lib/nsa/version.rb
|
150
166
|
- nsa.gemspec
|
151
167
|
- tags
|
data/lib/nsa/statsd_informant.rb
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
require "nsa/statsd/subscriber"
|
2
|
-
|
3
|
-
require "nsa/collectors/action_controller"
|
4
|
-
require "nsa/collectors/active_record"
|
5
|
-
require "nsa/collectors/active_support_cache"
|
6
|
-
require "nsa/collectors/null"
|
7
|
-
require "nsa/collectors/sidekiq"
|
8
|
-
|
9
|
-
module NSA
|
10
|
-
module StatsdInformant
|
11
|
-
extend ::NSA::Statsd::Subscriber
|
12
|
-
|
13
|
-
COLLECTOR_TYPES = ::Hash.new(::NSA::Collectors::Null).merge({
|
14
|
-
:action_controller => ::NSA::Collectors::ActionController,
|
15
|
-
:active_record => ::NSA::Collectors::ActiveRecord,
|
16
|
-
:active_support_cache => ::NSA::Collectors::ActiveSupportCache,
|
17
|
-
:sidekiq => ::NSA::Collectors::Sidekiq
|
18
|
-
}).freeze
|
19
|
-
|
20
|
-
def self.collect(collector, key_prefix)
|
21
|
-
collector = COLLECTOR_TYPES[collector.to_sym] unless collector.respond_to?(:collect)
|
22
|
-
collector.collect(key_prefix)
|
23
|
-
end
|
24
|
-
|
25
|
-
def self.listen(backend)
|
26
|
-
statsd_subscribe(backend)
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|