logstash-input-unix 3.0.2 → 3.0.3
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/CHANGELOG.md +3 -0
- data/lib/logstash/inputs/unix.rb +28 -8
- data/logstash-input-unix.gemspec +1 -1
- data/spec/inputs/unix_spec.rb +13 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce52177d18d3c4f2ac356640d08c48919f451689
|
4
|
+
data.tar.gz: b803f47cb17a6d147805ed0ab8070cd8a7ffc61a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f6565a89ff69dae14c7459852a8af7302667f24d94f0e1e5192aa62a94efb760357d68741358ab28093855994293ac6d820adf1f9ba4767a84e7b6b7dfe08b5d
|
7
|
+
data.tar.gz: bacb3762def1d9a9f2890e4006fc48893f99f44edd1e3b6a66f5a4e43b1acecb81d8aca2e6bf118c02d0c61df3f290bff73343c58fb4a6bb7e85fb126c5bbaa9
|
data/CHANGELOG.md
CHANGED
data/lib/logstash/inputs/unix.rb
CHANGED
@@ -32,6 +32,12 @@ class LogStash::Inputs::Unix < LogStash::Inputs::Base
|
|
32
32
|
# `client` connects to a server.
|
33
33
|
config :mode, :validate => ["server", "client"], :default => "server"
|
34
34
|
|
35
|
+
# Amount of time in seconds to wait if the socket file is not present, before retrying.
|
36
|
+
# Only positive values are allowed.
|
37
|
+
#
|
38
|
+
# This setting is only used if `mode` is `client`.
|
39
|
+
config :socket_not_present_retry_interval_seconds, :validate => :number, :required => true, :default => 5
|
40
|
+
|
35
41
|
def initialize(*args)
|
36
42
|
super(*args)
|
37
43
|
end # def initialize
|
@@ -61,6 +67,11 @@ class LogStash::Inputs::Unix < LogStash::Inputs::Base
|
|
61
67
|
:path => @path)
|
62
68
|
raise
|
63
69
|
end
|
70
|
+
else # client
|
71
|
+
if @socket_not_present_retry_interval_seconds < 0
|
72
|
+
@logger.warn("Value #{@socket_not_present_retry_interval_seconds} for socket_not_present_retry_interval_seconds is not valid, using default value of 5 instead")
|
73
|
+
@socket_not_present_retry_interval_seconds = 5
|
74
|
+
end
|
64
75
|
end
|
65
76
|
end # def register
|
66
77
|
|
@@ -82,8 +93,8 @@ class LogStash::Inputs::Unix < LogStash::Inputs::Base
|
|
82
93
|
end
|
83
94
|
@codec.decode(buf) do |event|
|
84
95
|
decorate(event)
|
85
|
-
event.set("host", hostname)
|
86
|
-
event.set("path", @path)
|
96
|
+
event.set("host", hostname) unless event.include?("host")
|
97
|
+
event.set("path", @path) unless event.include?("path")
|
87
98
|
output_queue << event
|
88
99
|
end
|
89
100
|
end
|
@@ -119,10 +130,15 @@ class LogStash::Inputs::Unix < LogStash::Inputs::Base
|
|
119
130
|
end
|
120
131
|
else
|
121
132
|
while !stop?
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
133
|
+
if File.socket?(@path) then
|
134
|
+
@client_socket = UNIXSocket.new(@path)
|
135
|
+
@client_socket.instance_eval { class << self; include ::LogStash::Util::SocketPeer end }
|
136
|
+
@logger.debug("Opened connection", :client => @path)
|
137
|
+
handle_socket(@client_socket, output_queue)
|
138
|
+
else
|
139
|
+
@logger.warn("Socket not present, wait for #{@subscription_retry_interval_seconds} seconds for socket to appear", :client => @path)
|
140
|
+
sleep @socket_not_present_retry_interval_seconds
|
141
|
+
end
|
126
142
|
end
|
127
143
|
end
|
128
144
|
rescue IOError
|
@@ -135,9 +151,13 @@ class LogStash::Inputs::Unix < LogStash::Inputs::Base
|
|
135
151
|
def stop
|
136
152
|
if server?
|
137
153
|
File.unlink(@path)
|
138
|
-
@server_socket.close
|
154
|
+
@server_socket.close unless @server_socket.nil?
|
139
155
|
else
|
140
|
-
@client_socket.close
|
156
|
+
@client_socket.close unless @client_socket.nil?
|
141
157
|
end
|
158
|
+
rescue IOError
|
159
|
+
# if socket with @mode == client was closed by the client, an other call to @client_socket.close
|
160
|
+
# will raise an IOError. We catch IOError here and do nothing, just let logstash terminate
|
161
|
+
@logger.warn("Cloud not close socket while Logstash is shutting down. Socket already closed by the other party?", :path => @path)
|
142
162
|
end # def stop
|
143
163
|
end # class LogStash::Inputs::Unix
|
data/logstash-input-unix.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
|
3
3
|
s.name = 'logstash-input-unix'
|
4
|
-
s.version = '3.0.
|
4
|
+
s.version = '3.0.3'
|
5
5
|
s.licenses = ['Apache License (2.0)']
|
6
6
|
s.summary = "Read events over a UNIX socket."
|
7
7
|
s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program"
|
data/spec/inputs/unix_spec.rb
CHANGED
@@ -12,6 +12,19 @@ describe LogStash::Inputs::Unix do
|
|
12
12
|
expect { plugin.register }.to_not raise_error
|
13
13
|
end
|
14
14
|
|
15
|
+
describe "when mode is client" do
|
16
|
+
|
17
|
+
let(:mode) { "client" }
|
18
|
+
|
19
|
+
context "if socket_not_present_retry_interval_seconds is out of bounds" do
|
20
|
+
it "should fallback to default value" do
|
21
|
+
plugin = LogStash::Plugin.lookup("input", "unix").new({ "path" => tempfile.path, "force_unlink" => true, "mode" => mode, "socket_not_present_retry_interval_seconds" => -1 })
|
22
|
+
plugin.register
|
23
|
+
expect(plugin.instance_variable_get(:@socket_not_present_retry_interval_seconds)).to be 5
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
15
28
|
describe "when interrupting the plugin" do
|
16
29
|
|
17
30
|
context "#server" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-input-unix
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-02-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -96,7 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
96
96
|
version: '0'
|
97
97
|
requirements: []
|
98
98
|
rubyforge_project:
|
99
|
-
rubygems_version: 2.
|
99
|
+
rubygems_version: 2.4.8
|
100
100
|
signing_key:
|
101
101
|
specification_version: 4
|
102
102
|
summary: Read events over a UNIX socket.
|