mini_statsd 0.1.1
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 +7 -0
- data/bin/mini_statsd +5 -0
- data/lib/mini_statsd.rb +7 -0
- data/lib/port_sanitizer.rb +17 -0
- data/lib/statsd_listener.rb +44 -0
- metadata +63 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: be0ac4712a9c32e5402edc0c2d20b2002069244d
|
4
|
+
data.tar.gz: 1b4d48d558f2aa2f73e74882c01891bc74c501b6
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: eeeb59171b0f7c399bda290fb25174b4361be5138bf6bb24a90ab27fef97298681f15dabdaf6ace60b4792c0cd8752bd8dfeb3f536b1b68c8fee03ca0a2a5058
|
7
|
+
data.tar.gz: 88bc608719a8c6b3b8c7244b90f1445be3e646bd79cc0e627c6ed636284b0875e48518c0c120bbb8da3773ec808b986e89b3daf4318d588940d05deffbeeeb56
|
data/bin/mini_statsd
ADDED
data/lib/mini_statsd.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'term/ansicolor'
|
2
|
+
|
3
|
+
class PortSanitizer
|
4
|
+
def self.get_port(args)
|
5
|
+
color = Term::ANSIColor
|
6
|
+
|
7
|
+
port = args.first.to_i
|
8
|
+
|
9
|
+
if port < 1024
|
10
|
+
puts "#{color.yellow('Invalid or no port informed. Assigning default port (8125)')}.\n\n"
|
11
|
+
|
12
|
+
port = 8125
|
13
|
+
end
|
14
|
+
|
15
|
+
port
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'socket'
|
2
|
+
require 'term/ansicolor'
|
3
|
+
require_relative 'port_sanitizer'
|
4
|
+
|
5
|
+
class StatsdListener
|
6
|
+
include Term::ANSIColor
|
7
|
+
|
8
|
+
def self.run(args)
|
9
|
+
puts "Starting MiniStatsd...\n\n"
|
10
|
+
|
11
|
+
new(args).run
|
12
|
+
end
|
13
|
+
|
14
|
+
def initialize(args)
|
15
|
+
$stdout.sync = true
|
16
|
+
|
17
|
+
@socket = UDPSocket.new
|
18
|
+
@port = PortSanitizer.get_port(args)
|
19
|
+
|
20
|
+
@socket.bind(nil, @port)
|
21
|
+
end
|
22
|
+
|
23
|
+
def run
|
24
|
+
puts "Listening on port #{@port}"
|
25
|
+
|
26
|
+
while @message = @socket.recvfrom(@port)
|
27
|
+
extract_metric
|
28
|
+
|
29
|
+
print_metric
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def extract_metric
|
36
|
+
return if @message.empty?
|
37
|
+
|
38
|
+
@metric, @value = @message.first.split(':')
|
39
|
+
end
|
40
|
+
|
41
|
+
def print_metric
|
42
|
+
puts "#{bold('Metric Received')}: #{blue(@metric)} | value: #{green(@value)}"
|
43
|
+
end
|
44
|
+
end
|
metadata
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mini_statsd
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Igor Marques
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-01-14 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: term-ansicolor
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.3.2
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.3.2
|
27
|
+
description: A super simple StatsD receiver
|
28
|
+
email: igormarquessilva@gmail.com
|
29
|
+
executables:
|
30
|
+
- mini_statsd
|
31
|
+
extensions: []
|
32
|
+
extra_rdoc_files: []
|
33
|
+
files:
|
34
|
+
- bin/mini_statsd
|
35
|
+
- lib/mini_statsd.rb
|
36
|
+
- lib/port_sanitizer.rb
|
37
|
+
- lib/statsd_listener.rb
|
38
|
+
homepage: https://github.com/IgorMarques/Mini-StatsD
|
39
|
+
licenses:
|
40
|
+
- MIT
|
41
|
+
metadata: {}
|
42
|
+
post_install_message:
|
43
|
+
rdoc_options: []
|
44
|
+
require_paths:
|
45
|
+
- lib
|
46
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
47
|
+
requirements:
|
48
|
+
- - ">="
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: '0'
|
51
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
56
|
+
requirements: []
|
57
|
+
rubyforge_project:
|
58
|
+
rubygems_version: 2.4.6
|
59
|
+
signing_key:
|
60
|
+
specification_version: 4
|
61
|
+
summary: Mini StatsD
|
62
|
+
test_files: []
|
63
|
+
has_rdoc:
|