graphite_sender 1.0.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.
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: []