logstash-input-file 0.1.10 → 0.1.11

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: 883903a03fd855b756f8a7b077cc41379e29081d
4
- data.tar.gz: 950e3e9103fca2c1e9124c68572de98b3d0635b1
3
+ metadata.gz: c00455f8bb65b9d802f81ac12c095d0bc1454136
4
+ data.tar.gz: dd80537404262d563d574e2062fd429364b466f2
5
5
  SHA512:
6
- metadata.gz: 6a6d8381d79610e31777f9b806572a871c2474902535cc77839a9a89704fc1bf9e5ce75b671324399b4158cf9c85aec7391081e7b8e14b5800f8c2e1755b0e3c
7
- data.tar.gz: 409a59b340a74a05c7695898478d5f5eb218165589a7ecd9bc922c032928380980ae85ee812d2e90f9f2560cac5d41c564c9149ea88229d5e1abdb80ea473a43
6
+ metadata.gz: 605811dd4d4fda955593aeafaab43f5a6a7da1be23f27b8623d9b7db82a2aa0a4c0a8f87123e0223a62247e9e358fe6984e8e78e4e6199ea78426f53f9e005c7
7
+ data.tar.gz: eae72cf60f9e4608a27351df34e083714a72cf56ba97fd0aeddc61785bd05652ed12fce58fd61109a2bcfa4308a352ff993db9ce97264ad46c1e466118bcf5e8
data/CHANGELOG.md ADDED
File without changes
data/README.md CHANGED
@@ -13,7 +13,7 @@ Logstash provides infrastructure to automatically generate documentation for thi
13
13
 
14
14
  ## Need Help?
15
15
 
16
- Need help? Try #logstash on freenode IRC or the logstash-users@googlegroups.com mailing list.
16
+ Need help? Try #logstash on freenode IRC or the https://discuss.elastic.co/c/logstash discussion forum.
17
17
 
18
18
  ## Developing
19
19
 
@@ -25,7 +25,7 @@ class LogStash::Inputs::File < LogStash::Inputs::Base
25
25
  # Paths must be absolute and cannot be relative.
26
26
  #
27
27
  # You may also configure multiple paths. See an example
28
- # on the [Logstash configuration page](configuration#array).
28
+ # on the <<array,Logstash configuration page>>.
29
29
  config :path, :validate => :array, :required => true
30
30
 
31
31
  # Exclusions (matched against the filename, not full path). Globs
@@ -74,6 +74,7 @@ class LogStash::Inputs::File < LogStash::Inputs::Base
74
74
  require "filewatch/tail"
75
75
  require "digest/md5"
76
76
  @logger.info("Registering file input", :path => @path)
77
+ @host = Socket.gethostname.force_encoding(Encoding::UTF_8)
77
78
 
78
79
  @tail_config = {
79
80
  :exclude => @exclude,
@@ -131,14 +132,14 @@ class LogStash::Inputs::File < LogStash::Inputs::Base
131
132
  @tail = FileWatch::Tail.new(@tail_config)
132
133
  @tail.logger = @logger
133
134
  @path.each { |path| @tail.tail(path) }
134
- hostname = Socket.gethostname
135
135
 
136
136
  @tail.subscribe do |path, line|
137
137
  @logger.debug? && @logger.debug("Received line", :path => path, :text => line)
138
138
  @codec.decode(line) do |event|
139
+ event["[@metadata][path]"] = path
140
+ event["host"] = @host if !event.include?("host")
141
+ event["path"] = path if !event.include?("path")
139
142
  decorate(event)
140
- event["host"] = hostname if !event.include?("host")
141
- event["path"] = path
142
143
  queue << event
143
144
  end
144
145
  end
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
 
3
3
  s.name = 'logstash-input-file'
4
- s.version = '0.1.10'
4
+ s.version = '0.1.11'
5
5
  s.licenses = ['Apache License (2.0)']
6
6
  s.summary = "Stream 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/plugin install gemname. This gem is not a stand-alone program"
@@ -24,9 +24,10 @@ Gem::Specification.new do |s|
24
24
 
25
25
  s.add_runtime_dependency 'logstash-codec-plain'
26
26
  s.add_runtime_dependency 'addressable'
27
- s.add_runtime_dependency 'filewatch', ['>= 0.6.2', '~> 0.6']
27
+ s.add_runtime_dependency 'filewatch', ['>= 0.6.4', '~> 0.6']
28
28
 
29
29
  s.add_development_dependency 'stud', ['~> 0.0.19']
30
30
  s.add_development_dependency 'logstash-devutils'
31
+ s.add_development_dependency 'logstash-codec-json'
31
32
  end
32
33
 
@@ -132,4 +132,37 @@ describe "inputs/file" do
132
132
  insist { events[1]["message"] } == "bar"
133
133
  insist { events[2]["message"] } == "baz"
134
134
  end
135
+
136
+ it "should not overwrite existing path and host fields" do
137
+ tmpfile_path = Stud::Temporary.pathname
138
+ sincedb_path = Stud::Temporary.pathname
139
+
140
+ conf = <<-CONFIG
141
+ input {
142
+ file {
143
+ type => "blah"
144
+ path => "#{tmpfile_path}"
145
+ start_position => "beginning"
146
+ sincedb_path => "#{sincedb_path}"
147
+ delimiter => "#{delimiter}"
148
+ codec => "json"
149
+ }
150
+ }
151
+ CONFIG
152
+
153
+ File.open(tmpfile_path, "w") do |fd|
154
+ fd.puts('{"path": "my_path", "host": "my_host"}')
155
+ fd.puts('{"my_field": "my_val"}')
156
+ end
157
+
158
+ events = input(conf) do |pipeline, queue|
159
+ 2.times.collect { queue.pop }
160
+ end
161
+
162
+ insist { events[0]["path"] } == "my_path"
163
+ insist { events[0]["host"] } == "my_host"
164
+
165
+ insist { events[1]["path"] } == "#{tmpfile_path}"
166
+ insist { events[1]["host"] } == "#{Socket.gethostname.force_encoding(Encoding::UTF_8)}"
167
+ end
135
168
  end
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: 0.1.10
4
+ version: 0.1.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-05 00:00:00.000000000 Z
11
+ date: 2015-06-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logstash-core
@@ -64,7 +64,7 @@ dependencies:
64
64
  requirements:
65
65
  - - '>='
66
66
  - !ruby/object:Gem::Version
67
- version: 0.6.2
67
+ version: 0.6.4
68
68
  - - ~>
69
69
  - !ruby/object:Gem::Version
70
70
  version: '0.6'
@@ -72,7 +72,7 @@ dependencies:
72
72
  requirements:
73
73
  - - '>='
74
74
  - !ruby/object:Gem::Version
75
- version: 0.6.2
75
+ version: 0.6.4
76
76
  - - ~>
77
77
  - !ruby/object:Gem::Version
78
78
  version: '0.6'
@@ -106,6 +106,20 @@ dependencies:
106
106
  version: '0'
107
107
  prerelease: false
108
108
  type: :development
109
+ - !ruby/object:Gem::Dependency
110
+ name: logstash-codec-json
111
+ version_requirements: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - '>='
114
+ - !ruby/object:Gem::Version
115
+ version: '0'
116
+ requirement: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - '>='
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ prerelease: false
122
+ type: :development
109
123
  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
110
124
  email: info@elastic.co
111
125
  executables: []
@@ -113,6 +127,7 @@ extensions: []
113
127
  extra_rdoc_files: []
114
128
  files:
115
129
  - .gitignore
130
+ - CHANGELOG.md
116
131
  - CONTRIBUTORS
117
132
  - Gemfile
118
133
  - LICENSE