logstash-filter-kubernetes 0.2.1 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/logstash/filters/kubernetes.rb +6 -13
- data/logstash-filter-kubernetes.gemspec +3 -3
- data/spec/filters/kubernetes_spec.rb +20 -14
- metadata +10 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dcf4e960b8b44eea9fcc4cf065eca53ebd26274f
|
4
|
+
data.tar.gz: 7d13be190e624ae1ae0144a2dd922fe5226a73f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c1ff6b3dac5309eb0211cbf0ba176709e595e45d3c724bd9ca806e16282966df9ee74d8d65d5326c0084f708980ad7ebe97ca260757fbbc464467d283848b4cb
|
7
|
+
data.tar.gz: 4726ff04aa35dabc4acb9a1c10fbec5c7db8b465f993ed5d0df05731ad96c963c6e46bc3c7e9e6e7860282336e5ede53079057f752e881e7124ad4f70c152827
|
@@ -36,17 +36,11 @@ class LogStash::Filters::Kubernetes < LogStash::Filters::Base
|
|
36
36
|
# The target field name to write event kubernetes metadata.
|
37
37
|
config :target, :validate => :string, :default => "kubernetes"
|
38
38
|
|
39
|
+
def register; end
|
39
40
|
|
40
|
-
public
|
41
|
-
def register
|
42
|
-
# Nothing to do
|
43
|
-
end # def register
|
44
|
-
|
45
|
-
public
|
46
41
|
def filter(event)
|
47
|
-
|
48
|
-
|
49
|
-
parts = event[@source].split(File::SEPARATOR).last.gsub(/.log$/, '').split('_')
|
42
|
+
if @source and event.get(@source)
|
43
|
+
parts = event.get(@source).split(File::SEPARATOR).last.gsub(/.log$/, '').split('_')
|
50
44
|
|
51
45
|
# We do not care about empty POD log files
|
52
46
|
if parts.length != 3 || parts[2].start_with?('POD-')
|
@@ -59,11 +53,10 @@ class LogStash::Filters::Kubernetes < LogStash::Filters::Base
|
|
59
53
|
kubernetes['container_name'] = parts[2].gsub(/-[0-9a-z]*$/, '')
|
60
54
|
kubernetes['container_id'] = parts[2].split('-').last
|
61
55
|
|
62
|
-
event
|
56
|
+
event.set(@target, kubernetes)
|
63
57
|
end
|
64
58
|
end
|
65
59
|
|
66
|
-
# filter_matched should go in the last line of our successful code
|
67
60
|
filter_matched(event)
|
68
|
-
end
|
69
|
-
end
|
61
|
+
end
|
62
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'logstash-filter-kubernetes'
|
3
|
-
s.version
|
3
|
+
s.version = '0.3.1'
|
4
4
|
s.licenses = ['Apache License (2.0)']
|
5
5
|
s.summary = "This filter extracts useful kubernetes information from kubelet logfile symlinks."
|
6
6
|
s.description = "This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not a stand-alone program"
|
@@ -18,6 +18,6 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.metadata = { "logstash_plugin" => "true", "logstash_group" => "filter" }
|
19
19
|
|
20
20
|
# Gem dependencies
|
21
|
-
s.add_runtime_dependency "logstash-core", "
|
22
|
-
s.add_development_dependency 'logstash-devutils'
|
21
|
+
s.add_runtime_dependency "logstash-core-plugin-api", "~> 2.0"
|
22
|
+
s.add_development_dependency 'logstash-devutils'
|
23
23
|
end
|
@@ -1,8 +1,18 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
require
|
2
|
+
require 'logstash/filters/kubernetes'
|
3
3
|
|
4
4
|
describe LogStash::Filters::Kubernetes do
|
5
|
-
|
5
|
+
let(:expected_map) do
|
6
|
+
{
|
7
|
+
'replication_controller' => 'kube-dns-v9',
|
8
|
+
'pod' => 'kube-dns-v9-6mnxk',
|
9
|
+
'namespace' => 'default',
|
10
|
+
'container_name' => 'skydns',
|
11
|
+
'container_id' => '47d3a3bfb112dbd2fd6e255e1e3d9eb91a10b62342e620e4917e2f5e24398507'
|
12
|
+
}
|
13
|
+
end
|
14
|
+
|
15
|
+
describe 'Split path into kubernetes key-value pairs' do
|
6
16
|
let(:config) do <<-CONFIG
|
7
17
|
filter {
|
8
18
|
kubernetes {
|
@@ -12,14 +22,12 @@ describe LogStash::Filters::Kubernetes do
|
|
12
22
|
CONFIG
|
13
23
|
end
|
14
24
|
|
15
|
-
sample(
|
16
|
-
insist { subject
|
25
|
+
sample('path' => '/var/log/containers/kube-dns-v9-6mnxk_default_skydns-47d3a3bfb112dbd2fd6e255e1e3d9eb91a10b62342e620e4917e2f5e24398507.log') do
|
26
|
+
insist { subject.get('kubernetes') } == expected_map
|
17
27
|
end
|
18
28
|
end
|
19
|
-
end
|
20
29
|
|
21
|
-
describe
|
22
|
-
describe "Set target field name." do
|
30
|
+
describe 'Set target field name' do
|
23
31
|
let(:config) do <<-CONFIG
|
24
32
|
filter {
|
25
33
|
kubernetes {
|
@@ -30,14 +38,12 @@ describe LogStash::Filters::Kubernetes do
|
|
30
38
|
CONFIG
|
31
39
|
end
|
32
40
|
|
33
|
-
sample(
|
34
|
-
insist { subject
|
41
|
+
sample('path' => '/var/log/containers/kube-dns-v9-6mnxk_default_skydns-47d3a3bfb112dbd2fd6e255e1e3d9eb91a10b62342e620e4917e2f5e24398507.log') do
|
42
|
+
insist { subject.get('foobar') } == expected_map
|
35
43
|
end
|
36
44
|
end
|
37
|
-
end
|
38
45
|
|
39
|
-
describe
|
40
|
-
describe "Skip parsing empty POD event." do
|
46
|
+
describe 'Skip parsing empty POD event' do
|
41
47
|
let(:config) do <<-CONFIG
|
42
48
|
filter {
|
43
49
|
kubernetes {
|
@@ -47,8 +53,8 @@ describe LogStash::Filters::Kubernetes do
|
|
47
53
|
CONFIG
|
48
54
|
end
|
49
55
|
|
50
|
-
sample(
|
51
|
-
insist { subject
|
56
|
+
sample('path' => '/var/log/containers/kube-dns-v9-6mnxk_default_POD-eaca2cf56e761c25dc4878d48fbe056402ba01f3f6448650d93f988ec121b8cd.log') do
|
57
|
+
insist { subject.get("kubernetes") } == nil
|
52
58
|
end
|
53
59
|
end
|
54
60
|
end
|
metadata
CHANGED
@@ -1,47 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-filter-kubernetes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vaidas Jablonskis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-12-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name: logstash-core
|
14
|
+
name: logstash-core-plugin-api
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 2.0.0
|
20
|
-
- - "<"
|
17
|
+
- - "~>"
|
21
18
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
19
|
+
version: '2.0'
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
|
-
- - "
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: 2.0.0
|
30
|
-
- - "<"
|
24
|
+
- - "~>"
|
31
25
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
26
|
+
version: '2.0'
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
28
|
name: logstash-devutils
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
36
30
|
requirements:
|
37
|
-
- - "
|
31
|
+
- - ">="
|
38
32
|
- !ruby/object:Gem::Version
|
39
33
|
version: '0'
|
40
34
|
type: :development
|
41
35
|
prerelease: false
|
42
36
|
version_requirements: !ruby/object:Gem::Requirement
|
43
37
|
requirements:
|
44
|
-
- - "
|
38
|
+
- - ">="
|
45
39
|
- !ruby/object:Gem::Version
|
46
40
|
version: '0'
|
47
41
|
description: This gem is a logstash plugin required to be installed on top of the
|
@@ -81,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
81
75
|
version: '0'
|
82
76
|
requirements: []
|
83
77
|
rubyforge_project:
|
84
|
-
rubygems_version: 2.5.
|
78
|
+
rubygems_version: 2.5.2
|
85
79
|
signing_key:
|
86
80
|
specification_version: 4
|
87
81
|
summary: This filter extracts useful kubernetes information from kubelet logfile symlinks.
|