fluent-plugin-multi-format-parser 0.1.1 → 1.0.0

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: b3ccd298b01b05ed96a4494b153bd4ee4abd2b8d
4
- data.tar.gz: 5b8399121244fd4f5939a7acb8c2481c6450d1ce
3
+ metadata.gz: da4c776b74c85a0624c5cc7f899b041ff8b0c196
4
+ data.tar.gz: 866aa7acf91781fdb2959c69ad8d94375f0f569c
5
5
  SHA512:
6
- metadata.gz: fefc45c5044df050487e7189d0071ee6021c29cac9ba4383e91273a08bdbf9cea851cd29ce160eac99df3c9994a775e48eb62f0c1db63bbc157aadccd2a14f3d
7
- data.tar.gz: 8a69a5e16b154f21961b7227ee6e55a8ee7945825a966cc2e2badf5cde8ba9b921d5f671485947795979449c095d05d50089a4df401b826ec25aa1288b20c9d9
6
+ metadata.gz: 86375df425d675d69613190c69ab05a8d0e304ce51e9456d2338b1ba9dd2c2070c33d9347b2f05c9ec245794f9e1937c8c0afe3bb1d29b7852637202f2918c4a
7
+ data.tar.gz: 87b2222ffa0188677498299b7570109f4cc11ac4a4a7e0a4c012ec4dccb82a6b54a33cedb0de2cdccbcdd44e7cf8d0b5f9f3cf6e163f2ebe2e3152c6d4704326
data/README.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  Parse format mixed logs.
4
4
 
5
+ ## Requirements
6
+
7
+ | fluent-plugin-multi-format-parser | fluentd | ruby |
8
+ |-------------------|---------|------|
9
+ | >= 1.0.0 | >= v0.14.0 | >= 2.1 |
10
+ | < 1.0.0 | >= v0.12.0 | >= 1.9 |
11
+
5
12
  ## Installation
6
13
 
7
14
  Use RubyGems:
@@ -10,50 +17,75 @@ Use RubyGems:
10
17
 
11
18
  ## Configuration
12
19
 
13
- This plugin is a parser plugin. After installed, you can use `multi_format` in `format` supported plugins.
14
- Use multiple `<pattern>` to specify multiple format.
20
+ This plugin is a parser plugin. After installed, you can use `multi_format` in `<parse>` supported plugins.
21
+ Use multiple `<pattern>`s to specify multiple parser formats.
15
22
 
16
23
  <source>
17
24
  @type udp
18
25
  tag logs.multi
19
26
 
20
- format multi_format
21
- <pattern>
22
- format apache
23
- </pattern>
24
- <pattern>
25
- format json
26
- time_key timestamp
27
- </pattern>
28
- <pattern>
29
- format none
30
- </pattern>
31
- </match>
27
+ <parse>
28
+ @type multi_format
29
+ <pattern>
30
+ format apache
31
+ </pattern>
32
+ <pattern>
33
+ format json
34
+ time_key timestamp
35
+ </pattern>
36
+ <pattern>
37
+ format none
38
+ </pattern>
39
+ </parse>
40
+ </source>
32
41
 
33
42
  `multi_format` tries pattern matching from top to bottom and returns parsed result when matched.
34
43
 
35
44
  Available format patterns and parameters are depends on Fluentd parsers.
36
- See [in_tail format document](http://docs.fluentd.org/articles/in_tail) for more details.
45
+ See [parser plugin document](http://docs.fluentd.org/v1.0/articles/parser-plugin-overview) for more details.
37
46
 
38
- ### For v0.14
47
+ ### For v1.0/v0.14
39
48
 
40
- This plugin handles `pattern` section manually, so v0.14's automatic parameter conversion doesn't work well.
41
- If you want to use this plugin with v0.14, you need to use v0.14 parser syntax like below
49
+ Put `<pattern>`s inside `<parse>`.
42
50
 
43
51
  <filter app.**>
44
52
  @type parser
45
53
  key_name message
46
- <parse> # Use <parse> section for parser parameters
54
+ <parse>
47
55
  @type multi_format
48
56
  <pattern>
49
57
  format json
50
58
  </pattern>
59
+ <pattern>
60
+ format regexp
61
+ expression /...your regexp pattern.../
62
+ </pattern>
51
63
  <pattern>
52
64
  format none
53
65
  </pattern>
54
66
  </parse>
55
67
  </filter>
56
68
 
69
+ ### For v0.12
70
+
71
+ Use `format` instead of `<parse></parse>`.
72
+
73
+ <filter app.**>
74
+ @type parser
75
+ key_name message
76
+
77
+ format multi_format
78
+ <pattern>
79
+ format json
80
+ </pattern>
81
+ <pattern>
82
+ format /...your regexp pattern.../
83
+ </pattern>
84
+ <pattern>
85
+ format none
86
+ </pattern>
87
+ </filter>
88
+
57
89
  ### NOTE
58
90
 
59
91
  This plugin doesn't work with `multiline` parsers because parser itself doesn't store previous lines.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 1.0.0
@@ -17,6 +17,6 @@ Gem::Specification.new do |gem|
17
17
  gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
18
  gem.require_paths = ['lib']
19
19
 
20
- gem.add_dependency "fluentd", [">= 0.10.46", "< 2"]
20
+ gem.add_dependency "fluentd", [">= 0.14.0", "< 2"]
21
21
  gem.add_development_dependency "rake", ">= 0.9.2"
22
22
  end
@@ -1,98 +1,44 @@
1
- require 'fluent/parser'
1
+ require 'fluent/plugin/parser'
2
2
 
3
3
  module Fluent
4
- class TextParser
5
- if defined?(::Fluent::Parser)
6
- class MultiFormatParser < Parser
7
- Plugin.register_parser('multi_format', self)
4
+ module Plugin
5
+ class MultiFormatParser < Parser
6
+ Plugin.register_parser('multi_format', self)
8
7
 
9
- def initialize
10
- super
8
+ def initialize
9
+ super
11
10
 
12
- @parsers = []
13
- end
14
-
15
- def configure(conf)
16
- super
17
-
18
- conf.elements.each { |e|
19
- next unless ['pattern', 'format'].include?(e.name)
20
- next if e['format'].nil? && (e['@type'] == 'multi_format')
21
-
22
- parser = Plugin.new_parser(e['format'])
23
- parser.configure(e)
24
- @parsers << parser
25
- }
26
- end
27
-
28
- def parse(text)
29
- @parsers.each { |parser|
30
- begin
31
- parser.parse(text) { |time, record|
32
- if time && record
33
- yield time, record
34
- return
35
- end
36
- }
37
- rescue # ignore parser error
38
- end
39
- }
40
-
41
- yield nil, nil
42
- end
11
+ @parsers = []
43
12
  end
44
- else # support old API. Will be removed.
45
- class MultiFormatParser
46
- include Configurable
47
13
 
48
- def initialize
49
- super
14
+ def configure(conf)
15
+ super
50
16
 
51
- @parsers = []
52
- end
17
+ conf.elements.each { |e|
18
+ next unless ['pattern', 'format'].include?(e.name)
19
+ next if e['format'].nil? && (e['@type'] == 'multi_format')
53
20
 
54
- def configure(conf)
55
- super
56
-
57
- conf.elements.each { |e|
58
- next unless ['pattern', 'format'].include?(e.name)
59
-
60
- parser = TextParser.new
61
- parser.configure(e)
62
- @parsers << parser.parser
63
- }
64
- end
65
-
66
- def parse(text)
67
- @parsers.each { |parser|
68
- begin
69
- parser.call(text) { |time, record|
70
- if time && record
71
- if block_given?
72
- yield time, record
73
- return
74
- else
75
- return time, record
76
- end
77
- end
78
- }
79
- rescue # ignore parser error
80
- end
81
- }
21
+ parser = Plugin.new_parser(e['format'])
22
+ parser.configure(e)
23
+ @parsers << parser
24
+ }
25
+ end
82
26
 
83
- if block_given?
84
- yield nil, nil
85
- else
86
- return nil, nil
27
+ def parse(text)
28
+ @parsers.each { |parser|
29
+ begin
30
+ parser.parse(text) { |time, record|
31
+ if time && record
32
+ yield time, record
33
+ return
34
+ end
35
+ }
36
+ rescue # ignore parser error
87
37
  end
88
- end
38
+ }
89
39
 
90
- def call(*a, &b)
91
- parse(*a, &b)
92
- end
40
+ yield nil, nil
93
41
  end
94
-
95
- register_template('multi_format', Proc.new { MultiFormatParser.new })
96
42
  end
97
43
  end
98
44
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-multi-format-parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masahiro Nakagawa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-10 00:00:00.000000000 Z
11
+ date: 2017-12-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.10.46
19
+ version: 0.14.0
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: '2'
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 0.10.46
29
+ version: 0.14.0
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '2'
@@ -77,7 +77,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
77
77
  version: '0'
78
78
  requirements: []
79
79
  rubyforge_project:
80
- rubygems_version: 2.5.1
80
+ rubygems_version: 2.6.13
81
81
  signing_key:
82
82
  specification_version: 4
83
83
  summary: Multi format parser plugin for Fluentd