ivelum-fluent-plugin-oomkiller 0.0.5 → 0.0.6
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-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
|