fluent-plugin-notifier 0.2.3 → 0.2.4
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/fluent-plugin-notifier.gemspec +2 -1
- data/lib/fluent/plugin/out_notifier.rb +16 -2
- data/test/plugin/test_out_notifier.rb +14 -0
- metadata +18 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 51bbc47ed97c53bc01c97c23c0e207f34c25b082
|
4
|
+
data.tar.gz: 86e03386b945389577efdde8cddb313f0fddc741
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a61e5437151977331a9688057fe50bcbad4695584188bd7181550582108de45e2a03834355fb095a3aa04289bd6b6f8289fc2ce5021d4c6de95d0a008f5a24aa
|
7
|
+
data.tar.gz: 44cd882c4c4b9bca4ff6449c40d167be30695ac55cd5d4d7210376dcf198920dfd91cd73fc03881b7b314ad8fc4e3e88459b8a05182f2a1f5d8af65e7238c4be
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
Gem::Specification.new do |gem|
|
3
3
|
gem.name = "fluent-plugin-notifier"
|
4
|
-
gem.version = "0.2.
|
4
|
+
gem.version = "0.2.4"
|
5
5
|
gem.authors = ["TAGOMORI Satoshi"]
|
6
6
|
gem.email = ["tagomoris@gmail.com"]
|
7
7
|
gem.summary = %q{check matched messages and emit alert message}
|
@@ -14,6 +14,7 @@ Gem::Specification.new do |gem|
|
|
14
14
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
15
15
|
gem.require_paths = ["lib"]
|
16
16
|
|
17
|
+
gem.add_development_dependency "test-unit"
|
17
18
|
gem.add_development_dependency "rake"
|
18
19
|
gem.add_runtime_dependency "fluentd"
|
19
20
|
end
|
@@ -401,7 +401,7 @@ class Fluent::NotifierOutput < Fluent::Output
|
|
401
401
|
end
|
402
402
|
when :find
|
403
403
|
str = record[key].to_s
|
404
|
-
if @crit_regexp
|
404
|
+
if match(@crit_regexp, str)
|
405
405
|
{
|
406
406
|
:hashkey => @pattern + "\t" + tag + "\t" + key,
|
407
407
|
:match_def => self,
|
@@ -409,7 +409,7 @@ class Fluent::NotifierOutput < Fluent::Output
|
|
409
409
|
'pattern' => @pattern, 'target_tag' => tag, 'target_key' => key, 'check_type' => 'string_find', 'level' => 'crit',
|
410
410
|
'regexp' => @crit_regexp.inspect, 'value' => str, 'message_time' => Time.at(time).to_s
|
411
411
|
}
|
412
|
-
elsif @warn_regexp
|
412
|
+
elsif match(@warn_regexp, str)
|
413
413
|
{
|
414
414
|
:hashkey => @pattern + "\t" + tag + "\t" + key,
|
415
415
|
:match_def => self,
|
@@ -424,6 +424,20 @@ class Fluent::NotifierOutput < Fluent::Output
|
|
424
424
|
raise ArgumentError, "unknown check type (maybe bug): #{@check}"
|
425
425
|
end
|
426
426
|
end
|
427
|
+
|
428
|
+
def match(regexp,string)
|
429
|
+
regexp && regexp.match(string)
|
430
|
+
rescue ArgumentError => e
|
431
|
+
raise e unless e.message.index("invalid byte sequence in") == 0
|
432
|
+
replaced_string = replace_invalid_byte(string)
|
433
|
+
regexp.match(replaced_string)
|
434
|
+
end
|
435
|
+
|
436
|
+
def replace_invalid_byte(string)
|
437
|
+
replace_options = { invalid: :replace, undef: :replace, replace: '?' }
|
438
|
+
temporal_encoding = (string.encoding == Encoding::UTF_8 ? Encoding::UTF_16BE : Encoding::UTF_8)
|
439
|
+
string.encode(temporal_encoding, string.encoding, replace_options).encode(string.encoding)
|
440
|
+
end
|
427
441
|
end
|
428
442
|
|
429
443
|
class State
|
@@ -1,6 +1,10 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
3
|
class NotifierOutputTest < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
Fluent::Test.setup
|
6
|
+
end
|
7
|
+
|
4
8
|
CONFIG = %[
|
5
9
|
type notifier
|
6
10
|
input_tag_remove_prefix test
|
@@ -108,4 +112,14 @@ class NotifierOutputTest < Test::Unit::TestCase
|
|
108
112
|
end
|
109
113
|
assert_equal 0, d.emits.size
|
110
114
|
end
|
115
|
+
|
116
|
+
def test_emit_invalid_byte
|
117
|
+
invalid_utf8 = "\xff".force_encoding('UTF-8')
|
118
|
+
d = create_driver
|
119
|
+
assert_nothing_raised {
|
120
|
+
d.run do
|
121
|
+
d.emit({'num1' => 60, 'message' => "foo bar WARNING #{invalid_utf8}", 'numfield' => '30', 'textfield' => 'TargetX'})
|
122
|
+
end
|
123
|
+
}
|
124
|
+
end
|
111
125
|
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-notifier
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- TAGOMORI Satoshi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-11-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: test-unit
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: rake
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -78,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
78
92
|
version: '0'
|
79
93
|
requirements: []
|
80
94
|
rubyforge_project:
|
81
|
-
rubygems_version: 2.
|
95
|
+
rubygems_version: 2.4.5
|
82
96
|
signing_key:
|
83
97
|
specification_version: 4
|
84
98
|
summary: check matched messages and emit alert message
|
@@ -88,3 +102,4 @@ test_files:
|
|
88
102
|
- test/plugin/test_out_notifier.rb
|
89
103
|
- test/plugin/test_state.rb
|
90
104
|
- test/plugin/test_test.rb
|
105
|
+
has_rdoc:
|