fluent-plugin-rewrite-tag-filter 1.3.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -24,7 +24,7 @@ gem install fluent-plugin-rewrite-tag-filter
24
24
  ### Syntax
25
25
 
26
26
  ```
27
- rewriterule<num:1-200> <attribute> <regex_pattern> <new_tag>
27
+ rewriterule<num> <attribute> <regex_pattern> <new_tag>
28
28
 
29
29
  # Optional: Capitalize every matched regex backreference. (ex: $1, $2)
30
30
  capitalize_regex_backreference <yes/no> (default no)
@@ -176,9 +176,16 @@ https://gist.github.com/matsumana/4078096
176
176
  - 稼働中のFluentdにflowcounter pluginを導入してみた
177
177
  http://dayafterneet.blogspot.jp/2012/12/fluentdflowcounter-plugin.html
178
178
 
179
- - fluent-plugin-rewrite-tag-filter v1.2.0 をリリースしました。新機能を紹介します。 #fluentd
179
+ - fluent-plugin-rewrite-tag-filter v1.2.0 をリリースしました。新機能であるremove_tag_prefix設定の使い方を解説します。 #fluentd
180
180
  http://y-ken.hatenablog.com/entry/fluent-plugin-rewrite-tag-filter-v1.2.0
181
181
 
182
+ - fluent-plugin-rewrite-tag-filter v1.2.1 をリリースしました。設定サンプルと共にプレースホルダ機能強化内容を紹介します。 #fluentd
183
+ http://y-ken.hatenablog.com/entry/fluent-plugin-rewrite-tag-filter-v1.2.1
184
+
185
+ - 待望の正規表現の否定パターンに対応した fluent-plugin-rewrite-tag-filter v1.3.0 をリリースしました #fluentd
186
+ http://y-ken.hatenablog.com/entry/fluent-plugin-rewrite-tag-filter-v1.3.0
187
+
188
+
182
189
  ## TODO
183
190
 
184
191
  Pull requests are very welcome!!
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "fluent-plugin-rewrite-tag-filter"
6
- s.version = "1.3.0"
6
+ s.version = "1.3.1"
7
7
  s.authors = ["Kentaro Yoshida"]
8
8
  s.email = ["y.ken.studio@gmail.com"]
9
9
  s.homepage = "https://github.com/y-ken/fluent-plugin-rewrite-tag-filter"
@@ -19,7 +19,7 @@ class Fluent::RewriteTagFilterOutput < Fluent::Output
19
19
  if regexp.nil? || rewritetag.nil?
20
20
  raise Fluent::ConfigError, "failed to parse rewriterules at #{key} #{conf[key]}"
21
21
  end
22
- @rewriterules.push([rewritekey, Regexp.new(trim_regex_quote(regexp)), get_match_operator(regexp), rewritetag])
22
+ @rewriterules.push([rewritekey, /#{trim_regex_quote(regexp)}/, get_match_operator(regexp), rewritetag])
23
23
  rewriterule_names.push(rewritekey + regexp)
24
24
  $log.info "adding rewrite_tag_filter rule: #{key} #{@rewriterules.last}"
25
25
  end
@@ -32,8 +32,8 @@ class Fluent::RewriteTagFilterOutput < Fluent::Output
32
32
  raise Fluent::ConfigError, "duplicated rewriterules found #{@rewriterules.inspect}"
33
33
  end
34
34
 
35
- unless conf['remove_tag_prefix'].nil?
36
- @remove_tag_prefix = Regexp.new("^#{Regexp.escape(remove_tag_prefix)}\.?")
35
+ unless @remove_tag_prefix.nil?
36
+ @remove_tag_prefix = /^#{Regexp.escape(@remove_tag_prefix)}\.?/
37
37
  end
38
38
  end
39
39
 
@@ -59,9 +59,9 @@ class Fluent::RewriteTagFilterOutput < Fluent::Output
59
59
  else
60
60
  next if !matched
61
61
  backreference_table = get_backreference_table($~.captures)
62
- rewritetag.gsub!(/\$\d+/, backreference_table)
62
+ rewritetag = rewritetag.gsub(/\$\d+/, backreference_table)
63
63
  end
64
- rewritetag.gsub!(/(\${[a-z]+}|__[A-Z]+__)/, placeholder)
64
+ rewritetag = rewritetag.gsub(/(\${[a-z]+}|__[A-Z]+__)/, placeholder)
65
65
  return rewritetag
66
66
  end
67
67
  return nil
@@ -78,14 +78,14 @@ class Fluent::RewriteTagFilterOutput < Fluent::Output
78
78
  $log.info "rewrite_tag_filter: [DEPRECATED] Use ^....$ pattern for partial word match instead of double-quote-delimiter. #{regexp}"
79
79
  regexp = regexp[1..-2]
80
80
  end
81
- if regexp.start_with?('!')
81
+ if regexp.start_with?(MATCH_OPERATOR_EXCLUDE)
82
82
  regexp = regexp[1, regexp.length]
83
83
  end
84
84
  return regexp
85
85
  end
86
86
 
87
87
  def get_match_operator(regexp)
88
- return '!' if regexp.start_with?('!')
88
+ return MATCH_OPERATOR_EXCLUDE if regexp.start_with?(MATCH_OPERATOR_EXCLUDE)
89
89
  return ''
90
90
  end
91
91
 
@@ -30,6 +30,12 @@ class RewriteTagFilterOutputTest < Test::Unit::TestCase
30
30
  remove_tag_prefix input
31
31
  ]
32
32
 
33
+ # remove_tag_prefix test2
34
+ CONFIG_REMOVE_TAG_PREFIX_WITH_DOT = %[
35
+ rewriterule1 domain ^www\.google\.com$ ${tag}
36
+ remove_tag_prefix input.
37
+ ]
38
+
33
39
  # hostname placeholder test
34
40
  CONFIG_SHORT_HOSTNAME = %[
35
41
  rewriterule1 domain ^www\.google\.com$ ${hostname}
@@ -129,7 +135,18 @@ class RewriteTagFilterOutputTest < Test::Unit::TestCase
129
135
  assert_equal 'access', emits[0][0] # tag
130
136
  end
131
137
 
132
- def test_emit4_short_hostname
138
+ def test_emit4_remove_tag_prefix_with_dot
139
+ d1 = create_driver(CONFIG_REMOVE_TAG_PREFIX_WITH_DOT, 'input.access')
140
+ d1.run do
141
+ d1.emit({'domain' => 'www.google.com', 'path' => '/foo/bar?key=value', 'agent' => 'Googlebot', 'response_time' => 1000000})
142
+ end
143
+ emits = d1.emits
144
+ assert_equal 1, emits.length
145
+ p emits[0]
146
+ assert_equal 'access', emits[0][0] # tag
147
+ end
148
+
149
+ def test_emit5_short_hostname
133
150
  d1 = create_driver(CONFIG_SHORT_HOSTNAME, 'input.access')
134
151
  d1.run do
135
152
  d1.emit({'domain' => 'www.google.com', 'path' => '/foo/bar?key=value', 'agent' => 'Googlebot', 'response_time' => 1000000})
@@ -140,7 +157,7 @@ class RewriteTagFilterOutputTest < Test::Unit::TestCase
140
157
  assert_equal `hostname -s`.chomp, emits[0][0] # tag
141
158
  end
142
159
 
143
- def test_emit5_non_matching
160
+ def test_emit6_non_matching
144
161
  d1 = create_driver(CONFIG_NON_MATCHING, 'input.access')
145
162
  d1.run do
146
163
  d1.emit({'domain' => 'www.google.com'})
@@ -157,7 +174,7 @@ class RewriteTagFilterOutputTest < Test::Unit::TestCase
157
174
  assert_equal 'not_start_with_www', emits[2][0] # tag
158
175
  end
159
176
 
160
- def test_emit6_jump_index
177
+ def test_emit7_jump_index
161
178
  d1 = create_driver(CONFIG_JUMP_INDEX, 'input.access')
162
179
  d1.run do
163
180
  d1.emit({'domain' => 'www.google.com', 'path' => '/', 'agent' => 'Googlebot', 'response_time' => 1000000})
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-rewrite-tag-filter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-07 00:00:00.000000000 Z
12
+ date: 2013-07-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake