fluent-plugin-zabbix 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
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