logstash-filter-kubernetes 0.2.1 → 0.3.1
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/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.
|