fluent-plugin-zabbix 0.0.4 → 0.0.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 95041f2ebddbc8198a121ca2aa73dde358737f83
4
- data.tar.gz: 72c3d45c786d5137dc8ea8e8a051cb96ee581154
3
+ metadata.gz: 3549d1035d720adf10906025533a6b300b78cb91
4
+ data.tar.gz: 4217a75b549c6b3d104872c6fa81d6132028f321
5
5
  SHA512:
6
- metadata.gz: da34f9201d9dfe8b7d32402d52c775a9ab05cbca7f3bc53b0586e6f7e71ae015bedbb852afe841db684995429355363ea320a4277024c95c46d0b1b9aade8dc4
7
- data.tar.gz: efc107c61264121e42986406825fae7d33c3ea6f89a077c188ca2b6aef7af4648c90f1abce0efa491ec3c5d609f50805b36d580f4e505575d9f0e5246d22c5c9
6
+ metadata.gz: 2b8ca5659fa7e75dbdc0ce85ce24f53fe09578a0fe5491aa3795040c520f06f5c25665df6dbab0006aa3c17c758378988eda89813a77aed789ce5e46daedd296
7
+ data.tar.gz: 9f69b428aafca5e82a7e2baaa0711228fbc3a4aab0d23e152d5378634ec0ef77512672c476d8ae2f926edf8acc6bbc2061b6e3040d4ad927bc1dace47bdb6066
data/.gitignore CHANGED
@@ -17,3 +17,4 @@ test/version_tmp
17
17
  tmp
18
18
  *~
19
19
  .#*
20
+ mockserver
@@ -13,9 +13,10 @@ Gem::Specification.new do |gem|
13
13
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
14
  gem.name = "fluent-plugin-zabbix"
15
15
  gem.require_paths = ["lib"]
16
- gem.version = "0.0.4"
16
+ gem.version = "0.0.5"
17
17
 
18
18
  gem.add_runtime_dependency "fluentd", "~> 0.10"
19
19
  gem.add_runtime_dependency "zabbix", ">= 0.4"
20
20
  gem.add_development_dependency "rake", ">= 0.9.2"
21
+ gem.add_development_dependency "glint", "= 0.0.2"
21
22
  end
@@ -65,9 +65,8 @@ class Fluent::ZabbixOutput < Fluent::Output
65
65
  else
66
66
  status = zbx.send_data(name, value.to_s, opts)
67
67
  end
68
- rescue IOError, EOFError, SystemCallError
69
- # server didn't respond
70
- log.warn "plugin-zabbix: Zabbix::Sender.send_data raises exception: #{$!.class}, '#{$!.message}'"
68
+ rescue => e
69
+ log.warn "plugin-zabbix: Zabbix::Sender.send_data raises exception: #{e}"
71
70
  status = false
72
71
  end
73
72
  unless status
data/test/mockserver.go CHANGED
@@ -1,21 +1,43 @@
1
1
  package main
2
2
 
3
3
  import (
4
+ "fmt"
5
+ "io"
4
6
  "log"
7
+ "os"
5
8
 
6
9
  "github.com/fujiwara/go-zabbix-get/zabbix"
7
10
  )
8
11
 
12
+ var Output io.Writer
13
+
9
14
  func main() {
10
- err := zabbix.RunTrapperServer(
11
- "127.0.0.1:10051",
12
- func(req zabbix.TrapperRequest) (res zabbix.TrapperResponse, err error) {
13
- log.Printf("%#v", req)
14
- res.Proceeded = len(req.Data)
15
- return res, nil
16
- },
17
- )
15
+ var err error
16
+ if len(os.Args) >= 2 {
17
+ Output, err = os.Create(os.Args[1])
18
+ if err != nil {
19
+ panic(err)
20
+ }
21
+ log.Printf("output to %s", os.Args[1])
22
+ } else {
23
+ Output = os.Stdout
24
+ }
25
+ err = zabbix.RunTrapper("127.0.0.1:10051", handler)
18
26
  if err != nil {
19
27
  panic(err)
20
28
  }
21
29
  }
30
+
31
+ func handler(req zabbix.TrapperRequest) (res zabbix.TrapperResponse, err error) {
32
+ for _, d := range req.Data {
33
+ line := fmt.Sprintf(
34
+ "host:%s\tkey:%s\tvalue:%s\n",
35
+ d.Host,
36
+ d.Key,
37
+ d.Value,
38
+ )
39
+ Output.Write([]byte(line))
40
+ }
41
+ res.Proceeded = len(req.Data)
42
+ return
43
+ }
@@ -1,8 +1,21 @@
1
1
  require 'helper'
2
2
 
3
+ if ENV['LIVE_TEST']
4
+ require "glint"
5
+ require "tmpdir"
6
+ system "go", "build", "test/mockserver.go"
7
+ end
8
+
3
9
  class ZabbixOutputTest < Test::Unit::TestCase
4
10
  def setup
5
11
  Fluent::Test.setup
12
+ if ENV['LIVE_TEST']
13
+ $dir = Dir.mktmpdir
14
+ $server = Glint::Server.new(10051, { :timeout => 3 }) do |port|
15
+ exec "./mockserver", $dir.to_s + "/trapper.log"
16
+ end
17
+ $server.start
18
+ end
6
19
  end
7
20
 
8
21
  CONFIG = %[
@@ -21,11 +34,21 @@ class ZabbixOutputTest < Test::Unit::TestCase
21
34
  if ENV['LIVE_TEST']
22
35
  d.emit({"foo" => "test value of foo"})
23
36
  d.emit({"bar" => "test value of bar"})
24
- d.emit({"baz" => rand * 10 })
37
+ d.emit({"baz" => 123.4567 })
25
38
  d.emit({"foo" => "yyy", "zabbix_host" => "alternative-hostname"})
26
39
  d.emit({"f1" => 0.000001})
27
40
  d.emit({"f2" => 0.01})
28
41
  d.run
42
+ sleep 1
43
+ $server.stop
44
+ assert_equal open($dir + "/trapper.log").read, <<END
45
+ host:test_host key:test.foo value:test value of foo
46
+ host:test_host key:test.bar value:test value of bar
47
+ host:test_host key:test.baz value:123.4567
48
+ host:test_host key:test.foo value:yyy
49
+ host:test_host key:test.f1 value:0.0
50
+ host:test_host key:test.f2 value:0.01
51
+ END
29
52
  end
30
53
  end
31
54
 
@@ -47,6 +70,12 @@ class ZabbixOutputTest < Test::Unit::TestCase
47
70
  d.emit({"foo" => "AAA" })
48
71
  d.emit({"foo" => "BBB", "host" => "alternative-hostname"})
49
72
  d.run
73
+ sleep 1
74
+ $server.stop
75
+ assert_equal open($dir + "/trapper.log").read, <<END
76
+ host:test_host key:test.foo value:AAA
77
+ host:alternative-hostname key:test.foo value:BBB
78
+ END
50
79
  end
51
80
  end
52
81
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-zabbix
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - FUJIWARA Shunichiro
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-12 00:00:00.000000000 Z
11
+ date: 2015-01-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.9.2
55
+ - !ruby/object:Gem::Dependency
56
+ name: glint
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 0.0.2
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 0.0.2
55
69
  description: Output data plugin to Zabbix
56
70
  email:
57
71
  - fujiwara.shunichiro@gmail.com