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 +4 -4
- data/.gitignore +1 -0
- data/fluent-plugin-zabbix.gemspec +2 -1
- data/lib/fluent/plugin/out_zabbix.rb +2 -3
- data/test/mockserver.go +30 -8
- data/test/plugin/test_out_zabbix.rb +30 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3549d1035d720adf10906025533a6b300b78cb91
|
4
|
+
data.tar.gz: 4217a75b549c6b3d104872c6fa81d6132028f321
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b8ca5659fa7e75dbdc0ce85ce24f53fe09578a0fe5491aa3795040c520f06f5c25665df6dbab0006aa3c17c758378988eda89813a77aed789ce5e46daedd296
|
7
|
+
data.tar.gz: 9f69b428aafca5e82a7e2baaa0711228fbc3a4aab0d23e152d5378634ec0ef77512672c476d8ae2f926edf8acc6bbc2061b6e3040d4ad927bc1dace47bdb6066
|
data/.gitignore
CHANGED
@@ -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.
|
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
|
69
|
-
|
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
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
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" =>
|
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
|
+
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:
|
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
|