fluent-plugin-tai64n_parser 0.1.0 → 0.2.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 +4 -4
- data/.travis.yml +7 -10
- data/CHANGELOG.md +5 -0
- data/Gemfile +1 -0
- data/Gemfile.fluentd.v0.10 +4 -0
- data/Gemfile.fluentd.v0.12 +4 -0
- data/README.md +78 -9
- data/Rakefile +1 -0
- data/fluent-plugin-tai64n_parser.gemspec +3 -4
- data/lib/fluent/plugin/filter_tai64n_parser.rb +35 -0
- data/lib/fluent/plugin/out_tai64n_parser.rb +14 -27
- data/lib/fluent/plugin/tai64n_parser_mixin.rb +26 -0
- data/test/plugin/test_filter_tai64n_parser.rb +58 -0
- data/test/plugin/test_out_tai64n_parser.rb +2 -50
- data/test/plugin/test_tai64n_parser_mixin.rb +38 -0
- data/test/test_helper.rb +0 -2
- metadata +25 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 98eeadeabea7c5c15b15b840c1d8d6b9ade095ce
|
4
|
+
data.tar.gz: 0a03ab28e47f559559422470cd0f07573a9694a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee877722ddb16ce7162959e1b12bc3a475324f9244adbeaade7e6584fbf112ff1a16bf87067ea54ce14f8bf56ce4c37b04fa1c133ee48402a3e477a811b148f2
|
7
|
+
data.tar.gz: 204d311a6c71145c83aa716376956dd9d4e7a8f090e8ab1f717bcb1cb43d2483df4681efde2a4f47ab33b538c28e33a446d7c09f3ae247db67c4a3d2ea5410d8
|
data/.travis.yml
CHANGED
@@ -1,18 +1,15 @@
|
|
1
1
|
# https://github.com/travis-ci/travis-ci/wiki/.travis.yml-options
|
2
2
|
language: ruby
|
3
3
|
rvm:
|
4
|
-
- 1
|
5
|
-
- 2.
|
6
|
-
|
4
|
+
- 2.1.*
|
5
|
+
- 2.2.*
|
6
|
+
- 2.3.*
|
7
|
+
gemfile:
|
8
|
+
- Gemfile
|
9
|
+
- Gemfile.fluentd.v0.12
|
10
|
+
- Gemfile.fluentd.v0.10
|
7
11
|
before_install:
|
8
12
|
- gem update bundler
|
9
|
-
|
10
|
-
matrie:
|
11
|
-
allow_failures:
|
12
|
-
- rvm: 1.9.3
|
13
|
-
- rvm: 2.0.0
|
14
|
-
|
15
13
|
env:
|
16
14
|
- TZ="Asia/Tokyo"
|
17
|
-
|
18
15
|
script: bundle exec rake test
|
data/CHANGELOG.md
ADDED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -14,15 +14,39 @@ gem install fluent-plugin-tai64n_parser
|
|
14
14
|
|
15
15
|
## Configuration
|
16
16
|
|
17
|
-
###
|
17
|
+
### Filter Plugin
|
18
18
|
|
19
19
|
```
|
20
|
-
<
|
21
|
-
type
|
20
|
+
<filter test.**>
|
21
|
+
@type tai64n_parser
|
22
|
+
key message
|
23
|
+
</match>
|
24
|
+
```
|
22
25
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
+
Assume following input is coming (indented):
|
27
|
+
|
28
|
+
``` js
|
29
|
+
"test" => {
|
30
|
+
"message" => "@4000000052f88ea32489532c [FATAL] blah blah"
|
31
|
+
}
|
32
|
+
```
|
33
|
+
|
34
|
+
then output becomes as below (indented):
|
35
|
+
|
36
|
+
``` js
|
37
|
+
"test" => {
|
38
|
+
"message" => "2014-02-10 17:32:25.612979500 [FATAL] blah blah"
|
39
|
+
}
|
40
|
+
```
|
41
|
+
|
42
|
+
### Output Plugin (Old Style)
|
43
|
+
|
44
|
+
```
|
45
|
+
<match test.**>
|
46
|
+
@type tai64n_parser
|
47
|
+
|
48
|
+
key message
|
49
|
+
add_tag_prefix parsed.
|
26
50
|
</match>
|
27
51
|
```
|
28
52
|
|
@@ -30,7 +54,7 @@ Assume following input is coming (indented):
|
|
30
54
|
|
31
55
|
``` js
|
32
56
|
"test" => {
|
33
|
-
"
|
57
|
+
"message" => "@4000000052f88ea32489532c [FATAL] blah blah"
|
34
58
|
}
|
35
59
|
```
|
36
60
|
|
@@ -38,8 +62,7 @@ then output becomes as below (indented):
|
|
38
62
|
|
39
63
|
``` js
|
40
64
|
"parsed.test" => {
|
41
|
-
"
|
42
|
-
"parsed_time" => "2014-02-10 17:32:25.612979500",
|
65
|
+
"message" => "2014-02-10 17:32:25.612979500 [FATAL] blah blah"
|
43
66
|
}
|
44
67
|
```
|
45
68
|
|
@@ -93,6 +116,52 @@ delivery_id":"9","parsed_time":"2014-02-12 13:50:11.947211500"}
|
|
93
116
|
2014-02-12T13:50:11+09:00 parsed.qmail.sent {"tai64n":"@4000000052fafd8d387554bc","message":"end msg 3890","key":"3890","parsed_time":"2014-02-12 13:50:11.947213500"}
|
94
117
|
```
|
95
118
|
|
119
|
+
## Parameters
|
120
|
+
|
121
|
+
### Filter Plugin
|
122
|
+
|
123
|
+
- key *field\_key*
|
124
|
+
|
125
|
+
The target field key to parse tai64n. The first 25 characters are tried to parse.
|
126
|
+
If the characters are of tail64n format, convert to the time format as of `tai64nlocal` command.
|
127
|
+
If the characters are not of tai64n format, just pass through the input with info level messages on the log.
|
128
|
+
|
129
|
+
- output\_key *field\_key*
|
130
|
+
|
131
|
+
The target field to output the parsed result. The default is equivalent with `key` which means to overwrite the `key` field.
|
132
|
+
|
133
|
+
### Output Plugin (Old Style)
|
134
|
+
|
135
|
+
- key *field\_key*
|
136
|
+
|
137
|
+
The target field key to parse tai64n. The first 25 characters are tried to parse.
|
138
|
+
If the characters are of tail64n format, convert to the time format as of `tai64nlocal` command.
|
139
|
+
If the characters are not of tai64n format, just pass through the input with info level messages on the log.
|
140
|
+
|
141
|
+
- output\_key *field\_key*
|
142
|
+
|
143
|
+
The target field to output the parsed result. The default is equivalent with `key` which means to overwrite the `key` field.
|
144
|
+
|
145
|
+
- add_tag_prefix
|
146
|
+
|
147
|
+
Add tag prefix for output message
|
148
|
+
|
149
|
+
- remove_tag_prefix
|
150
|
+
|
151
|
+
Remove tag prefix for output message
|
152
|
+
|
153
|
+
- add_tag_suffix
|
154
|
+
|
155
|
+
Add tag suffix for output message
|
156
|
+
|
157
|
+
- remove_tag_suffix
|
158
|
+
|
159
|
+
Remove tag suffix for output message
|
160
|
+
|
161
|
+
## ChangeLog
|
162
|
+
|
163
|
+
[CHANGELOG.md](./CHANGELOG.md)
|
164
|
+
|
96
165
|
## Contributing
|
97
166
|
|
98
167
|
1. Fork it
|
data/Rakefile
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |gem|
|
2
2
|
gem.name = 'fluent-plugin-tai64n_parser'
|
3
|
-
gem.version = '0.
|
3
|
+
gem.version = '0.2.0'
|
4
4
|
gem.authors = ['Akira Maeda','Naotoshi Seo']
|
5
5
|
gem.email = ['glidenote+github@gmail.com','sonots@gmail.com']
|
6
6
|
gem.homepage = 'https://github.com/glidenote/fluent-plugin-tai64n_parser'
|
@@ -12,9 +12,8 @@ Gem::Specification.new do |gem|
|
|
12
12
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
13
13
|
gem.require_paths = ['lib']
|
14
14
|
|
15
|
+
gem.add_runtime_dependency 'fluentd'
|
16
|
+
|
15
17
|
gem.add_development_dependency 'rake'
|
16
|
-
gem.add_development_dependency 'fluentd'
|
17
18
|
gem.add_development_dependency 'test-unit'
|
18
|
-
|
19
|
-
gem.add_runtime_dependency 'fluentd'
|
20
19
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require_relative 'tai64n_parser_mixin'
|
2
|
+
|
3
|
+
module Fluent
|
4
|
+
class Tai64nParserFilter < Filter
|
5
|
+
include Fluent::Tai64nParserMixin
|
6
|
+
Fluent::Plugin.register_filter('tai64n_parser', self)
|
7
|
+
|
8
|
+
config_param :key, :string, :default => 'tai64n'
|
9
|
+
config_param :output_key, :string, :default => nil
|
10
|
+
|
11
|
+
def configure(conf)
|
12
|
+
super
|
13
|
+
@output_key ||= @key
|
14
|
+
end
|
15
|
+
|
16
|
+
def start
|
17
|
+
super
|
18
|
+
end
|
19
|
+
|
20
|
+
def shutdown
|
21
|
+
super
|
22
|
+
end
|
23
|
+
|
24
|
+
def filter(tag, time, record)
|
25
|
+
begin
|
26
|
+
record[output_key] = try_replace_tai64n(record[key])
|
27
|
+
rescue => e
|
28
|
+
log.warn("filter_tai64n_parser: #{e.class} #{e.message}")
|
29
|
+
log.warn_backtrace
|
30
|
+
end
|
31
|
+
record
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
end if defined?(Fluent::Filter) # Support only >= v0.12
|
@@ -1,6 +1,9 @@
|
|
1
|
+
require_relative 'tai64n_parser_mixin'
|
2
|
+
|
1
3
|
module Fluent
|
2
4
|
class Tai64nParserOutput < Output
|
3
5
|
include Fluent::HandleTagNameMixin
|
6
|
+
include Fluent::Tai64nParserMixin
|
4
7
|
Fluent::Plugin.register_output('tai64n_parser', self)
|
5
8
|
|
6
9
|
# Define `log` method for v0.10.42 or earlier
|
@@ -8,6 +11,11 @@ module Fluent
|
|
8
11
|
define_method("log") { $log }
|
9
12
|
end
|
10
13
|
|
14
|
+
# Define `router` method of v0.12 to support v0.10 or earlier
|
15
|
+
unless method_defined?(:router)
|
16
|
+
define_method("router") { Fluent::Engine }
|
17
|
+
end
|
18
|
+
|
11
19
|
config_param :key, :string, :default => 'tai64n'
|
12
20
|
config_param :output_key, :string, :default => nil
|
13
21
|
|
@@ -36,41 +44,20 @@ module Fluent
|
|
36
44
|
es.each {|time,record|
|
37
45
|
t = tag.dup
|
38
46
|
filter_record(t, time, record)
|
39
|
-
|
47
|
+
router.emit(t, time, record)
|
40
48
|
}
|
41
49
|
chain.next
|
42
50
|
end
|
43
51
|
|
44
52
|
def filter_record(tag, time, record)
|
45
53
|
begin
|
46
|
-
record[output_key] =
|
47
|
-
rescue =>
|
48
|
-
log.warn("out_tai64n_parser: #{
|
54
|
+
record[output_key] = try_replace_tai64n(record[key])
|
55
|
+
rescue => e
|
56
|
+
log.warn("out_tai64n_parser: #{e.class} #{e.message}")
|
57
|
+
log.warn_backtrace
|
49
58
|
end
|
50
|
-
super(tag, time, record)
|
59
|
+
super(tag, time, record) # HandleTagNameMixin
|
51
60
|
end
|
52
61
|
|
53
|
-
def replace_tai64n(str)
|
54
|
-
tai64n, rest = str[0,25], str[25..-1]
|
55
|
-
parsed = parse_tai64n(tai64n)
|
56
|
-
if parsed
|
57
|
-
"#{parsed}#{rest}"
|
58
|
-
else
|
59
|
-
log.info("out_tai64n_parser: record['#{key}']='#{str}' does not start with valid tai64n")
|
60
|
-
str
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
def parse_tai64n(tai64n)
|
65
|
-
# @4000000052f88ea32489532c
|
66
|
-
# 0123456789012345678901234
|
67
|
-
# 0 1 2
|
68
|
-
# |-------------||------|
|
69
|
-
return nil unless tai64n[0,2] == '@4'
|
70
|
-
ts = tai64n[2,15].hex
|
71
|
-
tf = tai64n[17,8].hex
|
72
|
-
t = Time.at(ts-10,tf/1000.0)
|
73
|
-
t.strftime("%Y-%m-%d %X.%9N")
|
74
|
-
end
|
75
62
|
end
|
76
63
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Fluent
|
2
|
+
module Tai64nParserMixin
|
3
|
+
def try_replace_tai64n(str)
|
4
|
+
tai64n, rest = str[0,25], str[25..-1]
|
5
|
+
parsed = parse_tai64n(tai64n)
|
6
|
+
if parsed
|
7
|
+
"#{parsed}#{rest}"
|
8
|
+
else
|
9
|
+
log.info("tai64n_parser: record['#{key}']='#{str}' does not start with valid tai64n")
|
10
|
+
str
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def parse_tai64n(tai64n)
|
15
|
+
# @4000000052f88ea32489532c
|
16
|
+
# 0123456789012345678901234
|
17
|
+
# 0 1 2
|
18
|
+
# |-------------||------|
|
19
|
+
return nil unless tai64n[0,2] == '@4'
|
20
|
+
ts = tai64n[2,15].hex
|
21
|
+
tf = tai64n[17,8].hex
|
22
|
+
t = Time.at(ts-10,tf/1000.0)
|
23
|
+
t.strftime("%Y-%m-%d %X.%9N")
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
require 'fluent/plugin/filter_tai64n_parser'
|
3
|
+
|
4
|
+
class Tai64nParserFilterTest < Test::Unit::TestCase
|
5
|
+
|
6
|
+
TAI64N_TIME = "@4000000052f88ea32489532c"
|
7
|
+
PARSED_TIME = "2014-02-10 17:32:25.612979500"
|
8
|
+
|
9
|
+
def setup
|
10
|
+
Fluent::Test.setup
|
11
|
+
@time = Fluent::Engine.now
|
12
|
+
end
|
13
|
+
|
14
|
+
def create_driver(conf)
|
15
|
+
Fluent::Test::FilterTestDriver.new(
|
16
|
+
Fluent::Tai64nParserFilter
|
17
|
+
).configure(conf)
|
18
|
+
end
|
19
|
+
|
20
|
+
def filter(config, msgs)
|
21
|
+
d = create_driver(config)
|
22
|
+
d.run {
|
23
|
+
msgs.each {|msg|
|
24
|
+
d.filter(msg, @time)
|
25
|
+
}
|
26
|
+
}
|
27
|
+
filtered = d.filtered_as_array
|
28
|
+
filtered.map {|m| m[2] }
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_configure
|
32
|
+
d = create_driver(%[
|
33
|
+
key test
|
34
|
+
output_key parsed_time
|
35
|
+
])
|
36
|
+
assert_equal 'test', d.instance.key
|
37
|
+
assert_equal 'parsed_time', d.instance.output_key
|
38
|
+
|
39
|
+
#Default Key
|
40
|
+
d = create_driver(%[
|
41
|
+
])
|
42
|
+
assert_equal 'tai64n', d.instance.key
|
43
|
+
assert_equal 'tai64n', d.instance.output_key
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_filter
|
47
|
+
d = create_driver(%[
|
48
|
+
key tai64n
|
49
|
+
output_key parsed_time
|
50
|
+
])
|
51
|
+
record = {'tai64n' => TAI64N_TIME}
|
52
|
+
d.run { d.filter(record, @time) }
|
53
|
+
|
54
|
+
filtered_record = d.filtered_as_array.first[2]
|
55
|
+
assert_equal PARSED_TIME, filtered_record['parsed_time']
|
56
|
+
end
|
57
|
+
|
58
|
+
end if defined?(Fluent::Filter)
|
@@ -1,11 +1,10 @@
|
|
1
|
-
|
2
|
-
require '
|
1
|
+
require_relative '../test_helper'
|
2
|
+
require 'fluent/plugin/out_tai64n_parser'
|
3
3
|
|
4
4
|
class Tai64nParserOutputTest < Test::Unit::TestCase
|
5
5
|
|
6
6
|
TAI64N_TIME = "@4000000052f88ea32489532c"
|
7
7
|
PARSED_TIME = "2014-02-10 17:32:25.612979500"
|
8
|
-
BAD_TAI64N_TIME = "4000000052f88ea32489"
|
9
8
|
|
10
9
|
def setup
|
11
10
|
Fluent::Test.setup
|
@@ -50,23 +49,6 @@ class Tai64nParserOutputTest < Test::Unit::TestCase
|
|
50
49
|
assert_equal record['parsed_time'], '2014-02-10 17:32:25.612979500'
|
51
50
|
end
|
52
51
|
|
53
|
-
def test_filter_record_bad_parameters
|
54
|
-
d = create_driver(%[
|
55
|
-
key tai64n
|
56
|
-
output_key parsed_time
|
57
|
-
add_tag_prefix parsed.
|
58
|
-
])
|
59
|
-
tag = 'test'
|
60
|
-
record = {'tai64n' => BAD_TAI64N_TIME}
|
61
|
-
|
62
|
-
d.instance.filter_record('test', Time.now, record)
|
63
|
-
assert_equal record['parsed_time'], BAD_TAI64N_TIME
|
64
|
-
|
65
|
-
record = {'tai64n' => "this is not a date"}
|
66
|
-
d.instance.filter_record('test', Time.now, record)
|
67
|
-
assert_equal record['parsed_time'], "this is not a date"
|
68
|
-
end
|
69
|
-
|
70
52
|
def test_emit
|
71
53
|
d = create_driver(%[
|
72
54
|
key tai64n
|
@@ -103,34 +85,4 @@ class Tai64nParserOutputTest < Test::Unit::TestCase
|
|
103
85
|
end
|
104
86
|
end
|
105
87
|
|
106
|
-
def test_emit_with_invalid_tai64n
|
107
|
-
d = create_driver(%[
|
108
|
-
key tai64n
|
109
|
-
output_key parsed_time
|
110
|
-
add_tag_prefix parsed.
|
111
|
-
])
|
112
|
-
wrong_time = 'wrong time'
|
113
|
-
d.run { d.emit('tai64n' => wrong_time) }
|
114
|
-
emits = d.emits
|
115
|
-
|
116
|
-
assert_equal 1, emits.count
|
117
|
-
assert_equal 'parsed.test', emits[0][0]
|
118
|
-
assert_equal wrong_time, emits[0][2]['tai64n']
|
119
|
-
end
|
120
|
-
|
121
|
-
def test_emit_with_replace
|
122
|
-
d = create_driver(%[
|
123
|
-
key message
|
124
|
-
parsed_time_tag message
|
125
|
-
add_tag_prefix parsed.
|
126
|
-
])
|
127
|
-
|
128
|
-
d.run { d.emit('message' => "#{TAI64N_TIME}foobar") }
|
129
|
-
emits = d.emits
|
130
|
-
|
131
|
-
assert_equal 1, emits.count
|
132
|
-
assert_equal 'parsed.test', emits[0][0]
|
133
|
-
assert_equal "#{PARSED_TIME}foobar", emits[0][2]['message']
|
134
|
-
end
|
135
|
-
|
136
88
|
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
require 'fluent/plugin/tai64n_parser_mixin'
|
3
|
+
require 'logger'
|
4
|
+
|
5
|
+
class Tai64nParserTest < Test::Unit::TestCase
|
6
|
+
|
7
|
+
class Tai64nParser
|
8
|
+
include Fluent::Tai64nParserMixin
|
9
|
+
|
10
|
+
def log
|
11
|
+
@log ||= Logger.new(logdev)
|
12
|
+
end
|
13
|
+
|
14
|
+
def logdev
|
15
|
+
@logdev ||= StringIO.new
|
16
|
+
end
|
17
|
+
|
18
|
+
def key
|
19
|
+
'foo'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def parser
|
24
|
+
@parser ||= Tai64nParser.new
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_try_replace_tai64n
|
28
|
+
good_tai64n = "@4000000052f88ea32489532c"
|
29
|
+
expected_time = "2014-02-10 17:32:25.612979500"
|
30
|
+
assert_equal expected_time, parser.try_replace_tai64n(good_tai64n)
|
31
|
+
assert_equal "#{expected_time} foo", parser.try_replace_tai64n("#{good_tai64n} foo")
|
32
|
+
|
33
|
+
bad_tai64n = "4000000052f88ea32489"
|
34
|
+
assert_equal bad_tai64n, parser.try_replace_tai64n(bad_tai64n)
|
35
|
+
assert_true parser.logdev.tap {|d| d.rewind }.read.include?('does not start with valid tai64n')
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-tai64n_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Akira Maeda
|
@@ -9,62 +9,48 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2016-09-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: fluentd
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- -
|
18
|
+
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: '0'
|
21
|
-
type: :
|
21
|
+
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- -
|
25
|
+
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
|
-
name:
|
29
|
+
name: rake
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: '0'
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: test-unit
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- -
|
46
|
+
- - ">="
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: '0'
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- -
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: '0'
|
56
|
-
- !ruby/object:Gem::Dependency
|
57
|
-
name: fluentd
|
58
|
-
requirement: !ruby/object:Gem::Requirement
|
59
|
-
requirements:
|
60
|
-
- - '>='
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: '0'
|
63
|
-
type: :runtime
|
64
|
-
prerelease: false
|
65
|
-
version_requirements: !ruby/object:Gem::Requirement
|
66
|
-
requirements:
|
67
|
-
- - '>='
|
53
|
+
- - ">="
|
68
54
|
- !ruby/object:Gem::Version
|
69
55
|
version: '0'
|
70
56
|
description: Fluentd plugin to parse the tai64n format log.
|
@@ -75,15 +61,22 @@ executables: []
|
|
75
61
|
extensions: []
|
76
62
|
extra_rdoc_files: []
|
77
63
|
files:
|
78
|
-
- .gitignore
|
79
|
-
- .travis.yml
|
64
|
+
- ".gitignore"
|
65
|
+
- ".travis.yml"
|
66
|
+
- CHANGELOG.md
|
80
67
|
- Gemfile
|
68
|
+
- Gemfile.fluentd.v0.10
|
69
|
+
- Gemfile.fluentd.v0.12
|
81
70
|
- LICENSE
|
82
71
|
- README.md
|
83
72
|
- Rakefile
|
84
73
|
- fluent-plugin-tai64n_parser.gemspec
|
74
|
+
- lib/fluent/plugin/filter_tai64n_parser.rb
|
85
75
|
- lib/fluent/plugin/out_tai64n_parser.rb
|
76
|
+
- lib/fluent/plugin/tai64n_parser_mixin.rb
|
77
|
+
- test/plugin/test_filter_tai64n_parser.rb
|
86
78
|
- test/plugin/test_out_tai64n_parser.rb
|
79
|
+
- test/plugin/test_tai64n_parser_mixin.rb
|
87
80
|
- test/test_helper.rb
|
88
81
|
homepage: https://github.com/glidenote/fluent-plugin-tai64n_parser
|
89
82
|
licenses: []
|
@@ -94,20 +87,22 @@ require_paths:
|
|
94
87
|
- lib
|
95
88
|
required_ruby_version: !ruby/object:Gem::Requirement
|
96
89
|
requirements:
|
97
|
-
- -
|
90
|
+
- - ">="
|
98
91
|
- !ruby/object:Gem::Version
|
99
92
|
version: '0'
|
100
93
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
94
|
requirements:
|
102
|
-
- -
|
95
|
+
- - ">="
|
103
96
|
- !ruby/object:Gem::Version
|
104
97
|
version: '0'
|
105
98
|
requirements: []
|
106
99
|
rubyforge_project:
|
107
|
-
rubygems_version: 2.
|
100
|
+
rubygems_version: 2.5.1
|
108
101
|
signing_key:
|
109
102
|
specification_version: 4
|
110
103
|
summary: Fluentd plugin to parse the tai64n format log.
|
111
104
|
test_files:
|
105
|
+
- test/plugin/test_filter_tai64n_parser.rb
|
112
106
|
- test/plugin/test_out_tai64n_parser.rb
|
107
|
+
- test/plugin/test_tai64n_parser_mixin.rb
|
113
108
|
- test/test_helper.rb
|