ivelum-fluent-plugin-oomkiller 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/fluent-plugin-oomkiller.gemspec +4 -3
- data/lib/fluent/plugin/out_oomkiller.rb +2 -17
- data/test/plugin/test_out_oomkiller.rb +16 -14
- metadata +20 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 02d5210629dacf910ddadd3a28a829d41b9ce0e1
|
4
|
+
data.tar.gz: a71a3a3b4796b689f669cd7fd0e4ec1473c8d87e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: abcd15cca9e36cbb35cbe255e88e7cdde2b5fb4580bbf24d201e5f455ee2e6d31e2f2aa7fa782a22c40243ec8eec209e4faa0798a9df7f9de8262d8c2a2462bc
|
7
|
+
data.tar.gz: 0625b28d7e4a01241276969857fee39a88375b453fd2b5739e9182ec68be0cedc89c8ede3d117f2b175eddee24600afd34088ac60b4fb8f677c7ef36ae2a7af3
|
data/.gitignore
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = "ivelum-fluent-plugin-oomkiller"
|
5
|
-
spec.version = "0.0.
|
5
|
+
spec.version = "0.0.6"
|
6
6
|
spec.authors = ["Megumi Nakamura", "Ilnur Ibragimov"]
|
7
7
|
spec.email = ["ilnur.ibragimov@ivelum.com"]
|
8
8
|
|
@@ -18,7 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
|
19
19
|
spec.add_development_dependency "bundler", "~> 1.8"
|
20
20
|
spec.add_development_dependency "rake", "~> 10.0"
|
21
|
+
spec.add_development_dependency "test-unit", "~> 1.2"
|
21
22
|
|
22
|
-
spec.add_development_dependency "fluentd", "~> 0.
|
23
|
-
spec.add_runtime_dependency "fluentd", "~> 0.
|
23
|
+
spec.add_development_dependency "fluentd", "~> 0.14"
|
24
|
+
spec.add_runtime_dependency "fluentd", "~> 0.14"
|
24
25
|
end
|
@@ -48,31 +48,17 @@ class Fluent::OomKillerOutput < Fluent::Output
|
|
48
48
|
end
|
49
49
|
|
50
50
|
REGEX1 = /^(\S+\s+\d+\s\d+:\d+:\d+)\s.+/
|
51
|
-
REGEX2 = /Killed process (\d+)\s+\((\S+)\)\s+total-vm:(\d+)kB,\s+anon-rss:(\d+)kB,\s+file-rss:(\d+)kB/
|
51
|
+
REGEX2 = /Killed process (\d+)[\W\w\s]+\((\S+)\)\s+total-vm:(\d+)kB,\s+anon-rss:(\d+)kB,\s+file-rss:(\d+)kB/
|
52
52
|
|
53
53
|
def parse_record_block(syslog_record, tag, time)
|
54
|
-
record =
|
55
|
-
|
56
|
-
if syslog_record.has_key?('time') and syslog_record['time'] then
|
57
|
-
time = syslog_record['time']
|
58
|
-
else
|
59
|
-
@logs[:"#{tag}"][0] =~ REGEX1
|
60
|
-
if $1 then
|
61
|
-
datetime = Time.parse($1)
|
62
|
-
time = datetime.to_i if datetime
|
63
|
-
end
|
64
|
-
end
|
54
|
+
record = syslog_record.clone
|
65
55
|
|
66
56
|
@logs[:"#{tag}"][-1] =~ REGEX2
|
67
|
-
record['time'] = time
|
68
|
-
record['host'] = syslog_record['host']
|
69
|
-
record['ident'] = syslog_record['ident']
|
70
57
|
record['pid'] = $1.to_i
|
71
58
|
record['name'] = $2
|
72
59
|
record['total_vm_kb'] = $3.to_i
|
73
60
|
record['anon_rss_kb'] = $4.to_i
|
74
61
|
record['file_rss_kb'] = $5.to_i
|
75
|
-
|
76
62
|
record['raw'] = @logs[:"#{tag}"].map {|m| m.strip}.join("\n")
|
77
63
|
|
78
64
|
flush_emit(tag, time, record)
|
@@ -83,7 +69,6 @@ class Fluent::OomKillerOutput < Fluent::Output
|
|
83
69
|
|
84
70
|
if !@remove_tag_prefix && !@remove_tag_suffix && !@add_tag_prefix && !@add_tag_suffix
|
85
71
|
router.emit(tag, time, record)
|
86
|
-
|
87
72
|
else
|
88
73
|
_tag = tag.clone
|
89
74
|
filter_record(_tag, time, record)
|
@@ -14,18 +14,19 @@ class OomKillerOutputTest < Test::Unit::TestCase
|
|
14
14
|
def create_driver(conf=%[], tag='test')
|
15
15
|
Fluent::Test::OutputTestDriver.new(Fluent::OomKillerOutput, tag).configure(conf)
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
def test_configure_nil
|
19
19
|
d = create_driver(CONFIG1, 'myapp.test1')
|
20
20
|
assert_equal nil, d.instance.add_tag_prefix
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
def test_configure_set_config
|
24
24
|
d = create_driver(CONFIG2, 'myapp.test2')
|
25
25
|
assert_equal 'oomkiller.', d.instance.add_tag_prefix
|
26
26
|
end
|
27
27
|
|
28
28
|
def test_emit_nil
|
29
|
+
current_year = Time.now.year
|
29
30
|
d = create_driver(CONFIG1, 'myapp.test3')
|
30
31
|
d.run do
|
31
32
|
IO.foreach(File.join(File.dirname(__FILE__), "..", "testdata", "message1")) do |s|
|
@@ -44,22 +45,22 @@ class OomKillerOutputTest < Test::Unit::TestCase
|
|
44
45
|
assert_equal 2, d.emits.size
|
45
46
|
|
46
47
|
assert_equal 'myapp.test3', d.emits[0][0]
|
47
|
-
|
48
|
+
d.emits[0][2].delete("time")
|
49
|
+
d.emits[0][2].delete("message")
|
48
50
|
assert_equal({
|
49
51
|
"pid" => 13550,
|
50
|
-
"uid" => 500,
|
51
52
|
"name" => "java",
|
52
53
|
"total_vm_kb" => 12466024,
|
53
54
|
"anon_rss_kb" => 7625016,
|
54
55
|
"file_rss_kb" => 2608,
|
55
56
|
"raw" => File.read(File.join(File.dirname(__FILE__), "..", "testdata", "message2"))
|
56
57
|
}, d.emits[0][2])
|
57
|
-
|
58
|
+
|
58
59
|
assert_equal 'myapp.test3', d.emits[1][0]
|
59
|
-
|
60
|
+
d.emits[1][2].delete("time")
|
61
|
+
d.emits[1][2].delete("message")
|
60
62
|
assert_equal({
|
61
63
|
"pid" => 18938,
|
62
|
-
"uid" => 500,
|
63
64
|
"name" => "java",
|
64
65
|
"total_vm_kb" => 12482944,
|
65
66
|
"anon_rss_kb" => 7678888,
|
@@ -69,6 +70,7 @@ class OomKillerOutputTest < Test::Unit::TestCase
|
|
69
70
|
end
|
70
71
|
|
71
72
|
def test_emit_set_config
|
73
|
+
current_year = Time.now.year
|
72
74
|
d = create_driver(CONFIG2, 'myapp.test4')
|
73
75
|
d.run do
|
74
76
|
IO.foreach(File.join(File.dirname(__FILE__), "..", "testdata", "message1")) do |s|
|
@@ -85,24 +87,24 @@ class OomKillerOutputTest < Test::Unit::TestCase
|
|
85
87
|
end
|
86
88
|
end
|
87
89
|
assert_equal 2, d.emits.size
|
88
|
-
|
90
|
+
|
89
91
|
assert_equal 'oomkiller.myapp.test4', d.emits[0][0]
|
90
|
-
|
92
|
+
d.emits[0][2].delete("time")
|
93
|
+
d.emits[0][2].delete("message")
|
91
94
|
assert_equal({
|
92
95
|
"pid" => 13550,
|
93
|
-
"uid" => 500,
|
94
96
|
"name" => "java",
|
95
97
|
"total_vm_kb" => 12466024,
|
96
98
|
"anon_rss_kb" => 7625016,
|
97
99
|
"file_rss_kb" => 2608,
|
98
100
|
"raw" => File.read(File.join(File.dirname(__FILE__), "..", "testdata", "message2"))
|
99
101
|
}, d.emits[0][2])
|
100
|
-
|
102
|
+
|
101
103
|
assert_equal 'oomkiller.myapp.test4', d.emits[1][0]
|
102
|
-
|
104
|
+
d.emits[1][2].delete("time")
|
105
|
+
d.emits[1][2].delete("message")
|
103
106
|
assert_equal({
|
104
107
|
"pid" => 18938,
|
105
|
-
"uid" => 500,
|
106
108
|
"name" => "java",
|
107
109
|
"total_vm_kb" => 12482944,
|
108
110
|
"anon_rss_kb" => 7678888,
|
@@ -110,5 +112,5 @@ class OomKillerOutputTest < Test::Unit::TestCase
|
|
110
112
|
"raw" => File.read(File.join(File.dirname(__FILE__), "..", "testdata", "message4"))
|
111
113
|
}, d.emits[1][2])
|
112
114
|
end
|
113
|
-
|
115
|
+
|
114
116
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ivelum-fluent-plugin-oomkiller
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Megumi Nakamura
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-12-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -39,34 +39,48 @@ dependencies:
|
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '10.0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: test-unit
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '1.2'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '1.2'
|
42
56
|
- !ruby/object:Gem::Dependency
|
43
57
|
name: fluentd
|
44
58
|
requirement: !ruby/object:Gem::Requirement
|
45
59
|
requirements:
|
46
60
|
- - "~>"
|
47
61
|
- !ruby/object:Gem::Version
|
48
|
-
version: '0.
|
62
|
+
version: '0.14'
|
49
63
|
type: :development
|
50
64
|
prerelease: false
|
51
65
|
version_requirements: !ruby/object:Gem::Requirement
|
52
66
|
requirements:
|
53
67
|
- - "~>"
|
54
68
|
- !ruby/object:Gem::Version
|
55
|
-
version: '0.
|
69
|
+
version: '0.14'
|
56
70
|
- !ruby/object:Gem::Dependency
|
57
71
|
name: fluentd
|
58
72
|
requirement: !ruby/object:Gem::Requirement
|
59
73
|
requirements:
|
60
74
|
- - "~>"
|
61
75
|
- !ruby/object:Gem::Version
|
62
|
-
version: '0.
|
76
|
+
version: '0.14'
|
63
77
|
type: :runtime
|
64
78
|
prerelease: false
|
65
79
|
version_requirements: !ruby/object:Gem::Requirement
|
66
80
|
requirements:
|
67
81
|
- - "~>"
|
68
82
|
- !ruby/object:Gem::Version
|
69
|
-
version: '0.
|
83
|
+
version: '0.14'
|
70
84
|
description: Fluentd plugin to get oom killer log from system message.
|
71
85
|
email:
|
72
86
|
- ilnur.ibragimov@ivelum.com
|