graphite_sender 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/graphite_sender.rb +38 -0
  2. metadata +47 -0
@@ -0,0 +1,38 @@
1
+ require "socket"
2
+
3
+ class Graphite_sender
4
+ def initialize(host, port = 2003, type = 'tcp')
5
+
6
+ @type = type
7
+
8
+ if @type == 'tcp'
9
+ @socket = TCPSocket.new(host, port)
10
+ else
11
+ @socket = UDPSocket.new
12
+ @socket.connect(host, port)
13
+ end
14
+ end
15
+
16
+ def send_measure(stat, value, timestamp = nil)
17
+ if timestamp == nil
18
+ timestamp = Time.now.to_i
19
+ end
20
+ send_to_socket("#{stat} #{value} #{timestamp}")
21
+ end
22
+
23
+ private
24
+
25
+ def send_to_socket(message)
26
+ begin
27
+ if @type == 'tcp'
28
+ @socket.puts(message)
29
+ else
30
+ @socket.send(message, 0)
31
+ end
32
+ @socket.close
33
+ rescue Exception => e
34
+ puts e.message
35
+ puts e.backtrace.inspect
36
+ end
37
+ end
38
+ end
metadata ADDED
@@ -0,0 +1,47 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: graphite_sender
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Israel Calvete
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-02-15 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: Sends measurements to Graphite via TCP|UDP
15
+ email:
16
+ - icalvete@gmail.com
17
+ executables: []
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - lib/graphite_sender.rb
22
+ homepage: http://github.com/icalvete/graphite-sender
23
+ licenses:
24
+ - MIT
25
+ post_install_message:
26
+ rdoc_options: []
27
+ require_paths:
28
+ - lib
29
+ required_ruby_version: !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ! '>='
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ required_rubygems_version: !ruby/object:Gem::Requirement
36
+ none: false
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ requirements: []
42
+ rubyforge_project:
43
+ rubygems_version: 1.8.23
44
+ signing_key:
45
+ specification_version: 3
46
+ summary: Sends measurements to Graphite via TCP|UDP
47
+ test_files: []