fluentd 0.10.23 → 0.10.24
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of fluentd might be problematic. Click here for more details.
- data/ChangeLog +7 -0
- data/VERSION +1 -1
- data/lib/fluent/parser.rb +60 -0
- data/lib/fluent/supervisor.rb +3 -0
- data/lib/fluent/version.rb +1 -1
- metadata +20 -20
data/ChangeLog
CHANGED
@@ -1,4 +1,11 @@
|
|
1
1
|
|
2
|
+
Release 0.10.24 - 2012/06/28
|
3
|
+
|
4
|
+
* TextParser/in_tail: supports 'tsv' and 'csv' preset formats
|
5
|
+
* supervisor set FD_CLOEXEC to @wait_daemonize_pipe_w in case the child
|
6
|
+
process forked during run_configure
|
7
|
+
|
8
|
+
|
2
9
|
Release 0.10.23 - 2012/06/25
|
3
10
|
|
4
11
|
* out_exec_filter: show more error messages when child process unexpectedly exited
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.10.
|
1
|
+
0.10.24
|
data/lib/fluent/parser.rb
CHANGED
@@ -90,6 +90,64 @@ class TextParser
|
|
90
90
|
end
|
91
91
|
end
|
92
92
|
|
93
|
+
class ValuesParser
|
94
|
+
include Configurable
|
95
|
+
|
96
|
+
config_param :keys, :string
|
97
|
+
config_param :time_key, :string, :default => nil
|
98
|
+
config_param :time_format, :string, :default => nil
|
99
|
+
|
100
|
+
def configure(conf)
|
101
|
+
super
|
102
|
+
|
103
|
+
@keys = @keys.split(",")
|
104
|
+
|
105
|
+
if @time_key && !@keys.include?(@time_key)
|
106
|
+
raise ConfigError, "time_key (#{@time_key.inspect}) is not included in keys (#{@keys.inspect})"
|
107
|
+
end
|
108
|
+
|
109
|
+
if @time_format && !@time_key
|
110
|
+
$log.warn "time_format parameter is ignored because time_key parameter is not set"
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
def values_map(values)
|
115
|
+
record = Hash[keys.zip(values)]
|
116
|
+
|
117
|
+
if @time_key
|
118
|
+
value = record[@time_key]
|
119
|
+
if @time_format
|
120
|
+
time = Time.strptime(value, @time_format).to_i
|
121
|
+
else
|
122
|
+
time = Time.parse(value).to_i
|
123
|
+
end
|
124
|
+
else
|
125
|
+
time = Engine.now
|
126
|
+
end
|
127
|
+
|
128
|
+
return time, record
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
class TSVParser < ValuesParser
|
133
|
+
config_param :delimiter, :string, :default => "\t"
|
134
|
+
|
135
|
+
def call(text)
|
136
|
+
return values_map(text.split(@delimiter))
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
class CSVParser < ValuesParser
|
141
|
+
def initialize
|
142
|
+
super
|
143
|
+
require 'csv'
|
144
|
+
end
|
145
|
+
|
146
|
+
def call(text)
|
147
|
+
return values_map(CSV.parse_line(text))
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
93
151
|
class ApacheParser
|
94
152
|
include Configurable
|
95
153
|
|
@@ -146,6 +204,8 @@ class TextParser
|
|
146
204
|
'apache2' => Proc.new { ApacheParser.new },
|
147
205
|
'syslog' => Proc.new { RegexpParser.new(/^(?<time>[^ ]*\s*[^ ]* [^ ]*) (?<host>[^ ]*) (?<ident>[a-zA-Z0-9_\/\.\-]*)(?:\[(?<pid>[0-9]+)\])?[^\:]*\: *(?<message>.*)$/, {'time_format'=>"%b %d %H:%M:%S"}) },
|
148
206
|
'json' => Proc.new { JSONParser.new },
|
207
|
+
'tsv' => Proc.new { TSVParser.new },
|
208
|
+
'csv' => Proc.new { CSVParser.new },
|
149
209
|
}
|
150
210
|
|
151
211
|
def self.register_template(name, regexp_or_proc, time_format=nil)
|
data/lib/fluent/supervisor.rb
CHANGED
@@ -109,6 +109,9 @@ class Supervisor
|
|
109
109
|
@wait_daemonize_pipe_r.close
|
110
110
|
@wait_daemonize_pipe_r = nil
|
111
111
|
|
112
|
+
# in case the child process forked during run_configure
|
113
|
+
@wait_daemonize_pipe_w.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC)
|
114
|
+
|
112
115
|
Process.setsid
|
113
116
|
exit!(0) if fork
|
114
117
|
File.umask(0)
|
data/lib/fluent/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluentd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.
|
4
|
+
version: 0.10.24
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-06-
|
12
|
+
date: 2012-06-29 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: msgpack
|
16
|
-
requirement: &
|
16
|
+
requirement: &70174825287820 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.4.4
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70174825287820
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: json
|
27
|
-
requirement: &
|
27
|
+
requirement: &70174825286900 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 1.4.3
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70174825286900
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: yajl-ruby
|
38
|
-
requirement: &
|
38
|
+
requirement: &70174825286020 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '1.0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70174825286020
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: cool.io
|
49
|
-
requirement: &
|
49
|
+
requirement: &70174825279360 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 1.1.0
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70174825279360
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: http_parser.rb
|
60
|
-
requirement: &
|
60
|
+
requirement: &70174825278760 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 0.5.1
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70174825278760
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rake
|
71
|
-
requirement: &
|
71
|
+
requirement: &70174825278280 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: 0.9.2
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70174825278280
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rr
|
82
|
-
requirement: &
|
82
|
+
requirement: &70174825277720 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: 1.0.0
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70174825277720
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: timecop
|
93
|
-
requirement: &
|
93
|
+
requirement: &70174825277040 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: 0.3.0
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *70174825277040
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: jeweler
|
104
|
-
requirement: &
|
104
|
+
requirement: &70174825276300 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
version: 1.0.0
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *70174825276300
|
113
113
|
description:
|
114
114
|
email: frsyuki@gmail.com
|
115
115
|
executables:
|