logstash-input-file 4.1.4 → 4.1.5
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 +5 -0
- data/docs/index.asciidoc +13 -13
- data/lib/filewatch/read_mode/handlers/read_file.rb +1 -0
- data/lib/filewatch/tail_mode/handlers/base.rb +9 -1
- data/lib/filewatch/tail_mode/handlers/grow.rb +1 -0
- data/lib/filewatch/tail_mode/handlers/shrink.rb +1 -0
- data/lib/filewatch/tail_mode/processor.rb +7 -7
- data/lib/jars/filewatch-1.0.1.jar +0 -0
- data/logstash-input-file.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 91fd970a376e7386f8b2b5ead8a5f2f62e2f1cebce0783aedd44b30913dcc4d5
|
|
4
|
+
data.tar.gz: 7f291854ae2eb7417d15de37d92abf2abe5524e7bd4021c2d241c0d39d177545
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b1c945d44197cdab2609f351e395aaa40c45f872b912f754ce7f4485d8b00d313e693752feede403f93bf5e1c551fb90c61258821d73a72b16dbc7cbc233747a
|
|
7
|
+
data.tar.gz: 6d84ca4b777a648a0f7d51ec976a544fb28dc9c2370ebfd56cdfd259820d778807865751dc7e14b788f72c0c7a1fc2bdcf742e07c45fcac4c0dc0f84cef9160f
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
## 4.1.5
|
|
2
|
+
- Fixed text anchor by changing it from hardcoded to asciidoc reference to
|
|
3
|
+
work in versioned plugin reference
|
|
4
|
+
|
|
1
5
|
## 4.1.4
|
|
2
6
|
- Fixed a regression where files discovered after first discovery were not
|
|
3
7
|
always read from the beginning. Applies to tail mode only.
|
|
@@ -8,6 +12,7 @@
|
|
|
8
12
|
was possible to read into memory allocated but not filled with data resulting
|
|
9
13
|
in ASCII NUL (0) bytes in the message field. Now, files are read up to the
|
|
10
14
|
size as given by the remote filesystem client. Applies to tail and read modes.
|
|
15
|
+
|
|
11
16
|
## 4.1.3
|
|
12
17
|
- Fixed `read` mode of regular files sincedb write is requested in each read loop
|
|
13
18
|
iteration rather than waiting for the end-of-file to be reached. Note: for gz files,
|
data/docs/index.asciidoc
CHANGED
|
@@ -159,12 +159,12 @@ This plugin supports the following configuration options plus the <<plugins-{typ
|
|
|
159
159
|
[NOTE]
|
|
160
160
|
Duration settings can be specified in text form e.g. "250 ms", this string will be converted into
|
|
161
161
|
decimal seconds. There are quite a few supported natural and abbreviated durations,
|
|
162
|
-
see <<string_duration,
|
|
162
|
+
see <<plugins-{type}s-{plugin}-string_duration,string_duration>> for the details.
|
|
163
163
|
|
|
164
164
|
[cols="<,<,<",options="header",]
|
|
165
165
|
|=======================================================================
|
|
166
166
|
|Setting |Input type|Required
|
|
167
|
-
| <<plugins-{type}s-{plugin}-close_older>> |<<number,number>> or <<string_duration,
|
|
167
|
+
| <<plugins-{type}s-{plugin}-close_older>> |<<number,number>> or <<plugins-{type}s-{plugin}-string_duration,string_duration>>|No
|
|
168
168
|
| <<plugins-{type}s-{plugin}-delimiter>> |<<string,string>>|No
|
|
169
169
|
| <<plugins-{type}s-{plugin}-discover_interval>> |<<number,number>>|No
|
|
170
170
|
| <<plugins-{type}s-{plugin}-exclude>> |<<array,array>>|No
|
|
@@ -174,15 +174,15 @@ see <<string_duration,string duration>> for the details.
|
|
|
174
174
|
| <<plugins-{type}s-{plugin}-file_completed_log_path>> |<<string,string>>|No
|
|
175
175
|
| <<plugins-{type}s-{plugin}-file_sort_by>> |<<string,string>>, one of `["last_modified", "path"]`|No
|
|
176
176
|
| <<plugins-{type}s-{plugin}-file_sort_direction>> |<<string,string>>, one of `["asc", "desc"]`|No
|
|
177
|
-
| <<plugins-{type}s-{plugin}-ignore_older>> |<<number,number>> or <<string_duration,
|
|
177
|
+
| <<plugins-{type}s-{plugin}-ignore_older>> |<<number,number>> or <<plugins-{type}s-{plugin}-string_duration,string_duration>>|No
|
|
178
178
|
| <<plugins-{type}s-{plugin}-max_open_files>> |<<number,number>>|No
|
|
179
179
|
| <<plugins-{type}s-{plugin}-mode>> |<<string,string>>, one of `["tail", "read"]`|No
|
|
180
180
|
| <<plugins-{type}s-{plugin}-path>> |<<array,array>>|Yes
|
|
181
|
-
| <<plugins-{type}s-{plugin}-sincedb_clean_after>> |<<number,number>> or <<string_duration,
|
|
181
|
+
| <<plugins-{type}s-{plugin}-sincedb_clean_after>> |<<number,number>> or <<plugins-{type}s-{plugin}-string_duration,string_duration>>|No
|
|
182
182
|
| <<plugins-{type}s-{plugin}-sincedb_path>> |<<string,string>>|No
|
|
183
|
-
| <<plugins-{type}s-{plugin}-sincedb_write_interval>> |<<number,number>> or <<string_duration,
|
|
183
|
+
| <<plugins-{type}s-{plugin}-sincedb_write_interval>> |<<number,number>> or <<plugins-{type}s-{plugin}-string_duration,string_duration>>|No
|
|
184
184
|
| <<plugins-{type}s-{plugin}-start_position>> |<<string,string>>, one of `["beginning", "end"]`|No
|
|
185
|
-
| <<plugins-{type}s-{plugin}-stat_interval>> |<<number,number>> or <<string_duration,
|
|
185
|
+
| <<plugins-{type}s-{plugin}-stat_interval>> |<<number,number>> or <<plugins-{type}s-{plugin}-string_duration,string_duration>>|No
|
|
186
186
|
|=======================================================================
|
|
187
187
|
|
|
188
188
|
Also see <<plugins-{type}s-{plugin}-common-options>> for a list of options supported by all
|
|
@@ -193,7 +193,7 @@ input plugins.
|
|
|
193
193
|
[id="plugins-{type}s-{plugin}-close_older"]
|
|
194
194
|
===== `close_older`
|
|
195
195
|
|
|
196
|
-
* Value type is <<number,number>> or <<string_duration,
|
|
196
|
+
* Value type is <<number,number>> or <<plugins-{type}s-{plugin}-string_duration,string_duration>>
|
|
197
197
|
* Default value is `"1 hour"`
|
|
198
198
|
|
|
199
199
|
The file input closes any files that were last read the specified
|
|
@@ -311,7 +311,7 @@ If you use special naming conventions for the file full paths then perhaps
|
|
|
311
311
|
[id="plugins-{type}s-{plugin}-ignore_older"]
|
|
312
312
|
===== `ignore_older`
|
|
313
313
|
|
|
314
|
-
* Value type is <<number,number>> or <<string_duration,
|
|
314
|
+
* Value type is <<number,number>> or <<plugins-{type}s-{plugin}-string_duration,string_duration>>
|
|
315
315
|
* There is no default value for this setting.
|
|
316
316
|
|
|
317
317
|
When the file input discovers a file that was last modified
|
|
@@ -371,7 +371,7 @@ on the {logstash-ref}/configuration-file-structure.html#array[Logstash configura
|
|
|
371
371
|
[id="plugins-{type}s-{plugin}-sincedb_clean_after"]
|
|
372
372
|
===== `sincedb_clean_after`
|
|
373
373
|
|
|
374
|
-
* Value type is <<number,number>> or <<string_duration,
|
|
374
|
+
* Value type is <<number,number>> or <<plugins-{type}s-{plugin}-string_duration,string_duration>>
|
|
375
375
|
* The default value for this setting is "2 weeks".
|
|
376
376
|
* If a number is specified then it is interpreted as *days* and can be decimal e.g. 0.5 is 12 hours.
|
|
377
377
|
|
|
@@ -395,7 +395,7 @@ NOTE: it must be a file path and not a directory path
|
|
|
395
395
|
[id="plugins-{type}s-{plugin}-sincedb_write_interval"]
|
|
396
396
|
===== `sincedb_write_interval`
|
|
397
397
|
|
|
398
|
-
* Value type is <<number,number>> or <<string_duration,
|
|
398
|
+
* Value type is <<number,number>> or <<plugins-{type}s-{plugin}-string_duration,string_duration>>
|
|
399
399
|
* Default value is `"15 seconds"`
|
|
400
400
|
|
|
401
401
|
How often (in seconds) to write a since database with the current position of
|
|
@@ -421,7 +421,7 @@ position recorded in the sincedb file will be used.
|
|
|
421
421
|
[id="plugins-{type}s-{plugin}-stat_interval"]
|
|
422
422
|
===== `stat_interval`
|
|
423
423
|
|
|
424
|
-
* Value type is <<number,number>> or <<string_duration,
|
|
424
|
+
* Value type is <<number,number>> or <<plugins-{type}s-{plugin}-string_duration,string_duration>>
|
|
425
425
|
* Default value is `"1 second"`
|
|
426
426
|
|
|
427
427
|
How often (in seconds) we stat files to see if they have been modified.
|
|
@@ -438,9 +438,8 @@ the pipeline is congested. So the overall loop time is a combination of the
|
|
|
438
438
|
[id="plugins-{type}s-{plugin}-common-options"]
|
|
439
439
|
include::{include_path}/{type}.asciidoc[]
|
|
440
440
|
|
|
441
|
-
:default_codec!:
|
|
442
441
|
|
|
443
|
-
[id="string_duration"]
|
|
442
|
+
[id="plugins-{type}s-{plugin}-string_duration"]
|
|
444
443
|
// Move this to the includes when we make string durations available generally.
|
|
445
444
|
==== String Durations
|
|
446
445
|
|
|
@@ -474,3 +473,4 @@ Supported values: `us` `usec` `usecs`, e.g. "600 us", "800 usec", "900 usecs"
|
|
|
474
473
|
[NOTE]
|
|
475
474
|
`micro` `micros` and `microseconds` are not supported
|
|
476
475
|
|
|
476
|
+
:default_codec!:
|
|
@@ -30,6 +30,7 @@ module FileWatch module ReadMode module Handlers
|
|
|
30
30
|
def controlled_read(watched_file, loop_control)
|
|
31
31
|
logger.trace("reading...", "iterations" => loop_control.count, "amount" => loop_control.size, "filename" => watched_file.filename)
|
|
32
32
|
loop_control.count.times do
|
|
33
|
+
break if quit?
|
|
33
34
|
begin
|
|
34
35
|
result = watched_file.read_extract_lines(loop_control.size) # expect BufferExtractResult
|
|
35
36
|
logger.info(result.warning, result.additional) unless result.warning.empty?
|
|
@@ -6,12 +6,17 @@ module FileWatch module TailMode module Handlers
|
|
|
6
6
|
include LogStash::Util::Loggable
|
|
7
7
|
attr_reader :sincedb_collection
|
|
8
8
|
|
|
9
|
-
def initialize(sincedb_collection, observer, settings)
|
|
9
|
+
def initialize(processor, sincedb_collection, observer, settings)
|
|
10
10
|
@settings = settings
|
|
11
|
+
@processor = processor
|
|
11
12
|
@sincedb_collection = sincedb_collection
|
|
12
13
|
@observer = observer
|
|
13
14
|
end
|
|
14
15
|
|
|
16
|
+
def quit?
|
|
17
|
+
@processor.watch.quit?
|
|
18
|
+
end
|
|
19
|
+
|
|
15
20
|
def handle(watched_file)
|
|
16
21
|
logger.trace("handling: #{watched_file.filename}")
|
|
17
22
|
unless watched_file.has_listener?
|
|
@@ -41,7 +46,9 @@ module FileWatch module TailMode module Handlers
|
|
|
41
46
|
# user also has the option to specify a low `stat_interval` and a very high `discover_interval`to respond
|
|
42
47
|
# quicker to changing files and not allowing too much content to build up before reading it.
|
|
43
48
|
loop_control.count.times do
|
|
49
|
+
break if quit?
|
|
44
50
|
begin
|
|
51
|
+
logger.debug("read_to_eof: get chunk")
|
|
45
52
|
result = watched_file.read_extract_lines(loop_control.size) # expect BufferExtractResult
|
|
46
53
|
logger.trace(result.warning, result.additional) unless result.warning.empty?
|
|
47
54
|
changed = true
|
|
@@ -62,6 +69,7 @@ module FileWatch module TailMode module Handlers
|
|
|
62
69
|
break
|
|
63
70
|
end
|
|
64
71
|
end
|
|
72
|
+
logger.debug("read_to_eof: exit due to quit") if quit?
|
|
65
73
|
sincedb_collection.request_disk_flush if changed
|
|
66
74
|
end
|
|
67
75
|
|
|
@@ -5,6 +5,7 @@ module FileWatch module TailMode module Handlers
|
|
|
5
5
|
def handle_specifically(watched_file)
|
|
6
6
|
watched_file.file_seek(watched_file.bytes_read)
|
|
7
7
|
loop do
|
|
8
|
+
break if quit?
|
|
8
9
|
loop_control = watched_file.loop_control_adjusted_for_stat_size
|
|
9
10
|
controlled_read(watched_file, loop_control)
|
|
10
11
|
break unless loop_control.more
|
|
@@ -6,6 +6,7 @@ module FileWatch module TailMode module Handlers
|
|
|
6
6
|
add_or_update_sincedb_collection(watched_file)
|
|
7
7
|
watched_file.file_seek(watched_file.bytes_read)
|
|
8
8
|
loop do
|
|
9
|
+
break if quit?
|
|
9
10
|
loop_control = watched_file.loop_control_adjusted_for_stat_size
|
|
10
11
|
controlled_read(watched_file, loop_control)
|
|
11
12
|
break unless loop_control.more
|
|
@@ -35,13 +35,13 @@ module FileWatch module TailMode
|
|
|
35
35
|
|
|
36
36
|
def initialize_handlers(sincedb_collection, observer)
|
|
37
37
|
@sincedb_collection = sincedb_collection
|
|
38
|
-
@create_initial = Handlers::CreateInitial.new(sincedb_collection, observer, @settings)
|
|
39
|
-
@create = Handlers::Create.new(sincedb_collection, observer, @settings)
|
|
40
|
-
@grow = Handlers::Grow.new(sincedb_collection, observer, @settings)
|
|
41
|
-
@shrink = Handlers::Shrink.new(sincedb_collection, observer, @settings)
|
|
42
|
-
@delete = Handlers::Delete.new(sincedb_collection, observer, @settings)
|
|
43
|
-
@timeout = Handlers::Timeout.new(sincedb_collection, observer, @settings)
|
|
44
|
-
@unignore = Handlers::Unignore.new(sincedb_collection, observer, @settings)
|
|
38
|
+
@create_initial = Handlers::CreateInitial.new(self, sincedb_collection, observer, @settings)
|
|
39
|
+
@create = Handlers::Create.new(self, sincedb_collection, observer, @settings)
|
|
40
|
+
@grow = Handlers::Grow.new(self, sincedb_collection, observer, @settings)
|
|
41
|
+
@shrink = Handlers::Shrink.new(self, sincedb_collection, observer, @settings)
|
|
42
|
+
@delete = Handlers::Delete.new(self, sincedb_collection, observer, @settings)
|
|
43
|
+
@timeout = Handlers::Timeout.new(self, sincedb_collection, observer, @settings)
|
|
44
|
+
@unignore = Handlers::Unignore.new(self, sincedb_collection, observer, @settings)
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
def create(watched_file)
|
|
Binary file
|
data/logstash-input-file.gemspec
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Gem::Specification.new do |s|
|
|
2
2
|
|
|
3
3
|
s.name = 'logstash-input-file'
|
|
4
|
-
s.version = '4.1.
|
|
4
|
+
s.version = '4.1.5'
|
|
5
5
|
s.licenses = ['Apache-2.0']
|
|
6
6
|
s.summary = "Streams events from files"
|
|
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"
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: logstash-input-file
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.1.
|
|
4
|
+
version: 4.1.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Elastic
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2018-07-
|
|
11
|
+
date: 2018-07-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|