logstash-filter-split 3.1.1 → 3.1.2

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: 0c289e206791d9973f7c598e12d78142a7dae422
4
- data.tar.gz: 8cbde317a3f26193de7a38c505a356f691aade5a
3
+ metadata.gz: bac465c92c547ae65d21d9e8fff888b430c86610
4
+ data.tar.gz: 8c0a31fa0b00a6cbe23f41953a0e7050d1a88072
5
5
  SHA512:
6
- metadata.gz: a26f3dce99502455905ee8a98832f63fd59af391121d10045343b3a21130fa04b8bf78326a13b8f1df6d73d365a6651c2526074a1a623a8432b58c8fcfc70686
7
- data.tar.gz: 4e4432deac0dc8732c6934e3b8cf79b650fb9e28417f894a7a68886e907f795d5cd084f687023578920da58eedaffc9f0a277026a45346c29547368dd6699153
6
+ metadata.gz: 6192819d80a89065954d3b8f77d7cf997dcf3d6ce38a57d58747832e6603f434381a57965a9655e7f6ae7dbe4c5d83005efc7ffc95b21b7e96feafa79ff0451c
7
+ data.tar.gz: 860b16e6b425cb639dce6b5cc32f40929e344b8f52168eb2457b65b5a9fa8b665700a0c05ed23e4647dce2360cd8e6d0591c4687a646850fa681b8b4038a92c9
data/Gemfile CHANGED
@@ -1,4 +1,11 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- # Specify your gem's dependencies in logstash-mass_effect.gemspec
4
3
  gemspec
4
+
5
+ logstash_path = ENV["LOGSTASH_PATH"] || "../../logstash"
6
+ use_logstash_source = ENV["LOGSTASH_SOURCE"] && ENV["LOGSTASH_SOURCE"].to_s == "1"
7
+
8
+ if Dir.exist?(logstash_path) && use_logstash_source
9
+ gem 'logstash-core', :path => "#{logstash_path}/logstash-core"
10
+ gem 'logstash-core-plugin-api', :path => "#{logstash_path}/logstash-core-plugin-api"
11
+ end
@@ -0,0 +1,111 @@
1
+ :plugin: split
2
+ :type: filter
3
+
4
+ ///////////////////////////////////////////
5
+ START - GENERATED VARIABLES, DO NOT EDIT!
6
+ ///////////////////////////////////////////
7
+ :version: %VERSION%
8
+ :release_date: %RELEASE_DATE%
9
+ :changelog_url: %CHANGELOG_URL%
10
+ :include_path: ../../../../logstash/docs/include
11
+ ///////////////////////////////////////////
12
+ END - GENERATED VARIABLES, DO NOT EDIT!
13
+ ///////////////////////////////////////////
14
+
15
+ [id="plugins-{type}-{plugin}"]
16
+
17
+ === Split filter plugin
18
+
19
+ include::{include_path}/plugin_header.asciidoc[]
20
+
21
+ ==== Description
22
+
23
+ The split filter clones an event by splitting one of its fields and
24
+ placing each value resulting from the split into a clone of the original
25
+ event. The field being split can either be a string or an array.
26
+
27
+ An example use case of this filter is for taking output from the
28
+ <<plugins-inputs-exec,exec input plugin>> which emits one event for
29
+ the whole output of a command and splitting that output by newline -
30
+ making each line an event.
31
+
32
+ Split filter can also be used to split array fields in events into individual events.
33
+ A very common pattern in JSON & XML is to make use of lists to group data together.
34
+
35
+ For example, a json structure like this:
36
+
37
+ [source,js]
38
+ ----------------------------------
39
+ { field1: ...,
40
+ results: [
41
+ { result ... },
42
+ { result ... },
43
+ { result ... },
44
+ ...
45
+ ] }
46
+ ----------------------------------
47
+
48
+ The split filter can be used on the above data to create separate events for each value of `results` field
49
+
50
+ [source,js]
51
+ ----------------------------------
52
+ filter {
53
+ split {
54
+ field => "results"
55
+ }
56
+ }
57
+ ----------------------------------
58
+
59
+ The end result of each split is a complete copy of the event
60
+ with only the current split section of the given field changed.
61
+
62
+ [id="plugins-{type}s-{plugin}-options"]
63
+ ==== Split Filter Configuration Options
64
+
65
+ This plugin supports the following configuration options plus the <<plugins-{type}s-{plugin}-common-options>> described later.
66
+
67
+ [cols="<,<,<",options="header",]
68
+ |=======================================================================
69
+ |Setting |Input type|Required
70
+ | <<plugins-{type}s-{plugin}-field>> |<<string,string>>|No
71
+ | <<plugins-{type}s-{plugin}-target>> |<<string,string>>|No
72
+ | <<plugins-{type}s-{plugin}-terminator>> |<<string,string>>|No
73
+ |=======================================================================
74
+
75
+ Also see <<plugins-{type}s-{plugin}-common-options>> for a list of options supported by all
76
+ filter plugins.
77
+
78
+ &nbsp;
79
+
80
+ [id="plugins-{type}s-{plugin}-field"]
81
+ ===== `field`
82
+
83
+ * Value type is <<string,string>>
84
+ * Default value is `"message"`
85
+
86
+ The field which value is split by the terminator.
87
+ Can be a multiline message or the ID of an array.
88
+ Nested arrays are referenced like: "[object_id][array_id]"
89
+
90
+ [id="plugins-{type}s-{plugin}-target"]
91
+ ===== `target`
92
+
93
+ * Value type is <<string,string>>
94
+ * There is no default value for this setting.
95
+
96
+ The field within the new event which the value is split into.
97
+ If not set, the target field defaults to split field name.
98
+
99
+ [id="plugins-{type}s-{plugin}-terminator"]
100
+ ===== `terminator`
101
+
102
+ * Value type is <<string,string>>
103
+ * Default value is `"\n"`
104
+
105
+ The string to split on. This is usually a line terminator, but can be any
106
+ string. If you are splitting a JSON array into multiple events, you can ignore this field.
107
+
108
+
109
+
110
+ [id="plugins-{type}s-{plugin}-common-options"]
111
+ include::{include_path}/{type}.asciidoc[]
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
 
3
3
  s.name = 'logstash-filter-split'
4
- s.version = '3.1.1'
4
+ s.version = '3.1.2'
5
5
  s.licenses = ['Apache License (2.0)']
6
6
  s.summary = "The split filter is for splitting multiline messages into separate events."
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"
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
11
11
  s.require_paths = ["lib"]
12
12
 
13
13
  # Files
14
- s.files = Dir['lib/**/*','spec/**/*','vendor/**/*','*.gemspec','*.md','CONTRIBUTORS','Gemfile','LICENSE','NOTICE.TXT']
14
+ s.files = Dir["lib/**/*","spec/**/*","*.gemspec","*.md","CONTRIBUTORS","Gemfile","LICENSE","NOTICE.TXT", "vendor/jar-dependencies/**/*.jar", "vendor/jar-dependencies/**/*.rb", "VERSION", "docs/**/*"]
15
15
 
16
16
  # Tests
17
17
  s.test_files = s.files.grep(%r{^(test|spec|features)/})
@@ -80,6 +80,11 @@ describe LogStash::Filters::Split do
80
80
  insist { subject.is_a?(Logstash::Event) }
81
81
  insist { subject.get("array") } == "big"
82
82
  end
83
+
84
+ sample("array" => ["single-element"], "untouched" => "1\n2\n3") do
85
+ insist { subject.get("array") } == "single-element"
86
+ insist { subject.get("untouched") } == "1\n2\n3"
87
+ end
83
88
  end
84
89
 
85
90
  describe "split array into new field" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-filter-split
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.1
4
+ version: 3.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-14 00:00:00.000000000 Z
11
+ date: 2017-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -56,6 +56,7 @@ files:
56
56
  - LICENSE
57
57
  - NOTICE.TXT
58
58
  - README.md
59
+ - docs/index.asciidoc
59
60
  - lib/logstash/filters/split.rb
60
61
  - logstash-filter-split.gemspec
61
62
  - spec/filters/split_spec.rb
@@ -81,7 +82,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
81
82
  version: '0'
82
83
  requirements: []
83
84
  rubyforge_project:
84
- rubygems_version: 2.6.3
85
+ rubygems_version: 2.4.8
85
86
  signing_key:
86
87
  specification_version: 4
87
88
  summary: The split filter is for splitting multiline messages into separate events.