zabbix 0.3.0 → 0.4.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.
data/Rakefile CHANGED
@@ -10,7 +10,7 @@ begin
10
10
  gem.email = "mknopp@yammer-inc.com"
11
11
  gem.homepage = "http://github.com/mhat/zabbix"
12
12
  gem.authors = ["Matthew Knopp"]
13
- gem.add_development_dependency "thoughtbot-shoulda", ">= 0"
13
+ gem.add_development_dependency "shoulda", ">= 0"
14
14
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
15
15
  end
16
16
  Jeweler::GemcutterTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.0
1
+ 0.4.0
@@ -2,36 +2,38 @@ class Zabbix::Sender
2
2
 
3
3
  DEFAULT_SERVER_PORT = 10051
4
4
 
5
- attr_reader :configured
5
+ attr_reader :configured
6
6
 
7
7
  def initialize(opts={})
8
+ @client_host = Socket.gethostbyname(Socket.gethostname)[0]
9
+
8
10
  if opts[:config_file]
9
11
  config = Zabbix::Agent::Configuration.read(opts[:config_file])
10
- @host = config.server
11
- @port = config.server_port || DEFAULT_SERVER_PORT
12
+ @server_host = config.server
13
+ @server_port = config.server_port || DEFAULT_SERVER_PORT
12
14
  end
13
15
 
14
16
  if opts[:host]
15
- @host = opts[:host]
16
- @port = opts[:port] || DEFAULT_SERVER_PORT
17
+ @server_host = opts[:host]
18
+ @server_port = opts[:port] || DEFAULT_SERVER_PORT
17
19
  end
18
20
 
19
21
  end
20
22
 
21
23
 
22
24
  def configured?
23
- @configured ||= !(@host.nil? and @port.nil?)
25
+ @configured ||= !(@server_host.nil? and @server_port.nil?)
24
26
  end
25
27
 
26
28
 
27
29
  def connect
28
- @socket ||= TCPSocket.new(@host, @port)
30
+ @socket ||= TCPSocket.new(@server_host, @server_port)
29
31
  end
30
32
 
31
33
  def disconnect
32
34
  if @socket
33
35
  @socket.close unless @socket.closed?
34
- @socket = nil
36
+ @socket = nil
35
37
  end
36
38
  return true
37
39
  end
@@ -41,7 +43,7 @@ class Zabbix::Sender
41
43
  end
42
44
 
43
45
 
44
- def send_stop(key, opts={})
46
+ def send_stop(key, opts={})
45
47
  send_data("#{key}.stop", 1, opts)
46
48
  end
47
49
 
@@ -54,36 +56,36 @@ class Zabbix::Sender
54
56
  end
55
57
 
56
58
  def send_data(key, value, opts={})
57
- return false unless configured?
58
- host = opts[:host]
59
- clock = opts[:ts ]
60
- return send_zabbix_request([ cons_zabbix_data_element(host, key, value, clock) ])
61
- end
59
+ return false unless configured?
60
+ return send_zabbix_request([
61
+ cons_zabbix_data_element(key, value, opts)
62
+ ])
63
+ end
62
64
 
63
- private
65
+ private
64
66
 
65
- def cons_zabbix_data_element(host, key, value, clock=Time.now.to_i)
67
+ def cons_zabbix_data_element(key, value, opts={})
66
68
  return {
67
- :host => host,
68
- :key => key,
69
+ :key => key,
69
70
  :value => value,
70
- :clock => clock
71
+ :host => opts[:host] || @client_host,
72
+ :clock => opts[:ts ] || Time.now.to_i,
71
73
  }
72
74
  end
73
75
 
74
76
  def send_zabbix_request(data)
75
77
  status = false
76
78
  request = Yajl::Encoder.encode({
77
- :request => 'agent data' ,
79
+ :request => 'agent data' ,
78
80
  :clock => Time.now.to_i,
79
81
  :data => data
80
82
  })
81
83
 
82
- begin
84
+ begin
83
85
  sock = connect
84
86
  sock.write "ZBXD\x01"
85
87
  sock.write [request.size].pack('q')
86
- sock.write request
88
+ sock.write request
87
89
  sock.flush
88
90
 
89
91
  # FIXME: check header to make sure it's the message we expect?
@@ -96,7 +98,7 @@ class Zabbix::Sender
96
98
  ## FIXME
97
99
  ensure
98
100
  disconnect
99
- end
101
+ end
100
102
 
101
103
  return status
102
104
  end
@@ -6,12 +6,7 @@ class Zabbix::Sender::Buffer < Zabbix::Sender
6
6
 
7
7
  def append(key, value, opts={})
8
8
  return false unless configured?
9
- @buffer << {
10
- :host => opts[:host] || Socket.gethostname,
11
- :clock => opts[:ts ] || Time.now.to_i,
12
- :key => key,
13
- :value => value,
14
- }
9
+ @buffer << cons_zabbix_data_element(key, value, opts)
15
10
  end
16
11
 
17
12
  def flush
@@ -20,5 +15,6 @@ class Zabbix::Sender::Buffer < Zabbix::Sender
20
15
  @buffer.clear
21
16
  return ret
22
17
  end
18
+ alias send! flush
23
19
 
24
20
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{zabbix}
8
- s.version = "0.3.0"
8
+ s.version = "0.4.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Matthew Knopp"]
12
- s.date = %q{2011-02-14}
12
+ s.date = %q{2011-10-28}
13
13
  s.description = %q{send data to zabbix from ruby}
14
14
  s.email = %q{mknopp@yammer-inc.com}
15
15
  s.extra_rdoc_files = [
@@ -34,24 +34,19 @@ Gem::Specification.new do |s|
34
34
  ]
35
35
  s.homepage = %q{http://github.com/mhat/zabbix}
36
36
  s.require_paths = ["lib"]
37
- s.rubygems_version = %q{1.3.7}
37
+ s.rubygems_version = %q{1.5.2}
38
38
  s.summary = %q{send data to zabbix from ruby}
39
- s.test_files = [
40
- "test/helper.rb",
41
- "test/test_zabbix.rb"
42
- ]
43
39
 
44
40
  if s.respond_to? :specification_version then
45
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
46
41
  s.specification_version = 3
47
42
 
48
43
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
49
- s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
44
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
50
45
  else
51
- s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
46
+ s.add_dependency(%q<shoulda>, [">= 0"])
52
47
  end
53
48
  else
54
- s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
49
+ s.add_dependency(%q<shoulda>, [">= 0"])
55
50
  end
56
51
  end
57
52
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zabbix
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
5
- prerelease: false
4
+ hash: 15
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
- - 3
8
+ - 4
9
9
  - 0
10
- version: 0.3.0
10
+ version: 0.4.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Matthew Knopp
@@ -15,11 +15,11 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-02-14 00:00:00 -08:00
18
+ date: 2011-10-28 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- name: thoughtbot-shoulda
22
+ name: shoulda
23
23
  prerelease: false
24
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
25
  none: false
@@ -86,10 +86,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
86
86
  requirements: []
87
87
 
88
88
  rubyforge_project:
89
- rubygems_version: 1.3.7
89
+ rubygems_version: 1.5.2
90
90
  signing_key:
91
91
  specification_version: 3
92
92
  summary: send data to zabbix from ruby
93
- test_files:
94
- - test/helper.rb
95
- - test/test_zabbix.rb
93
+ test_files: []
94
+