logstash-filter-docker_container 0.1.0 → 0.1.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b2cc55c3d6f9e8078a710db5fbd901b297ddd237
|
4
|
+
data.tar.gz: 949d74ea2a51e4f91cd8cf304782ad233c3f9244
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3dde8958c591688700178a63c40ae05496f1bd549e14416be6f975ee1953198de5ef5c6eaf1e88cb8546ef2b6f189aeb10ac371fdc9ea1a76c62d8c665b8cd74
|
7
|
+
data.tar.gz: 4422d701531969609f71dfa0453250bebc6e31304f3ec3ae0fa2cb0a6618576e7b8e80935ede591e324579c4f376d9c63e082964ab42ccdea39064566d1c2f43
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
require 'logstash/filters/base'
|
3
3
|
require 'logstash/namespace'
|
4
|
-
require '
|
4
|
+
require 'logstash/filters/docker_container/docker_container_inspector'
|
5
5
|
require 'json'
|
6
6
|
|
7
7
|
class LogStash::Filters::DockerContainer < LogStash::Filters::Base
|
@@ -18,6 +18,7 @@ class LogStash::Filters::DockerContainer < LogStash::Filters::Base
|
|
18
18
|
def register
|
19
19
|
# Add instance variables
|
20
20
|
@inspector = LogStash::Filters::DockerContainerSupport::DockerContainerInspector.new(@docker_client, @client_options)
|
21
|
+
@cached = Hash.new
|
21
22
|
end # def register
|
22
23
|
|
23
24
|
public
|
@@ -32,13 +33,17 @@ class LogStash::Filters::DockerContainer < LogStash::Filters::Base
|
|
32
33
|
end
|
33
34
|
|
34
35
|
def resolve_from(container_id)
|
36
|
+
if @cached.has_key?(container_id)
|
37
|
+
return @cached[container_id]
|
38
|
+
end
|
39
|
+
|
35
40
|
blob = @inspector.inspect container_id
|
36
41
|
details = JSON.parse(blob)
|
37
42
|
|
38
43
|
return nil if details.empty?
|
39
44
|
|
40
45
|
detail = details.first
|
41
|
-
detail['Name']
|
46
|
+
@cached[container_id] = detail['Name']
|
42
47
|
|
43
48
|
end # def filter
|
44
49
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'logstash-filter-docker_container'
|
3
|
-
s.version
|
3
|
+
s.version = '0.1.1'
|
4
4
|
s.licenses = ['Apache License (2.0)']
|
5
5
|
s.summary = "Resolves Docker container IDs into the container's name."
|
6
6
|
s.description = "With Docker's syslog log-driver the log entries contain just container ID, but seeing the name is even better"
|
@@ -9,7 +9,7 @@ describe LogStash::Filters::DockerContainer do
|
|
9
9
|
allow(LogStash::Filters::DockerContainerSupport::DockerContainerInspector).to receive(:new).and_return(inspector)
|
10
10
|
end
|
11
11
|
|
12
|
-
describe "typical case" do
|
12
|
+
describe "typical case and cached" do
|
13
13
|
let(:config) do <<-CONFIG
|
14
14
|
filter {
|
15
15
|
docker_container {
|
@@ -21,14 +21,18 @@ describe LogStash::Filters::DockerContainer do
|
|
21
21
|
|
22
22
|
before do
|
23
23
|
content = File.new(File.join(File.dirname(__FILE__),'container_logstash.json')).read()
|
24
|
-
|
24
|
+
# Due to caching of the Docker findings, the inspector should only be consulted once
|
25
|
+
# since the sample includes the same container ID both times
|
26
|
+
expect(inspector).to receive(:inspect).once
|
25
27
|
.with('bd30193a3b9d')
|
26
28
|
.and_return(content)
|
27
29
|
end
|
28
30
|
|
29
|
-
sample('container_id' => 'bd30193a3b9d') do
|
30
|
-
|
31
|
-
|
31
|
+
sample([{'seq' => 1, 'container_id' => 'bd30193a3b9d'}, {'seq' => 2, 'container_id' => 'bd30193a3b9d'}]) do
|
32
|
+
subject.each do |e|
|
33
|
+
expect(e).to include('container_name')
|
34
|
+
expect(e['container_name']).to eq('/logstash')
|
35
|
+
end
|
32
36
|
end
|
33
37
|
end
|
34
38
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-filter-docker_container
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Geoff Bourne
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: logstash-core
|