fluent-plugin-genhashvalue 0.01 → 0.02
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/README.md +14 -1
- data/fluent-plugin-genhashvalue.gemspec +7 -7
- data/lib/fluent/plugin/filter_genhashvalue.rb +76 -0
- metadata +2 -2
- data/lib/fluent/plugin/out_genhashvalue.rb +0 -68
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 39b054050c539c94a3af3c8a6e0a4c9d2911aa17
|
4
|
+
data.tar.gz: 150593ad625bab83c2ed32acfa18a410d3784e7e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4308fe366ffc3dfb085565ebfd6e0d93e488c6f455283c16a49ad675c1e240f9d0fc54ed1e973097a324db90daa3eeafbca0185478c074da98ca614ae47e9396
|
7
|
+
data.tar.gz: de42f82045376c92d6710055b826ee945bcff6a889efb80bf6f8ae6641b4ea925d7de1ba8de6b35782e7c0a5d9eac4f03af1244b92f1e61f73c1915077f4beac
|
data/README.md
CHANGED
@@ -29,7 +29,7 @@ Example:
|
|
29
29
|
type genhashvalue
|
30
30
|
|
31
31
|
keys type,descr
|
32
|
-
hash_type md5
|
32
|
+
hash_type md5 # md5/sha1/sha256/sha512
|
33
33
|
base64_enc true
|
34
34
|
set_key _hash
|
35
35
|
separator _
|
@@ -38,6 +38,19 @@ Example:
|
|
38
38
|
</filter>
|
39
39
|
|
40
40
|
|
41
|
+
Input:
|
42
|
+
|
43
|
+
root@112133c12ee3:~/fluentd# echo '{"type":"log","descr":"description..."}' | ./bin/fluent-cat foo.test
|
44
|
+
root@112133c12ee3:~/fluentd# echo '{"type":"log","descr":"description..."}' | ./bin/fluent-cat foo.test
|
45
|
+
root@112133c12ee3:~/fluentd# echo '{"type":"log","descr":"description..."}' | ./bin/fluent-cat foo.test
|
46
|
+
|
47
|
+
Filterd:
|
48
|
+
|
49
|
+
2016-10-23 15:06:05 +0000 foo.test: {"type":"log","descr":"description...","_hash":"/B3pc4NBk6Z9Ph89k+ZL4Q=="}
|
50
|
+
2016-10-23 15:06:22 +0000 foo.test: {"type":"log","descr":"description...","_hash":"IgB25wc3M0QJfk0KteYygQ=="}
|
51
|
+
2016-10-23 15:06:37 +0000 foo.test: {"type":"log","descr":"description...","_hash":"vvDF6eWyX5Sc01AVw8P6Cw=="}
|
52
|
+
|
53
|
+
|
41
54
|
## Development
|
42
55
|
|
43
56
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "fluent-plugin-genhashvalue"
|
7
|
-
spec.version = "0.
|
7
|
+
spec.version = "0.02"
|
8
8
|
spec.authors = ["m.takemi"]
|
9
9
|
spec.email = ["m.takemi@gmail.com"]
|
10
10
|
|
@@ -15,12 +15,12 @@ Gem::Specification.new do |spec|
|
|
15
15
|
|
16
16
|
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
17
17
|
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
18
|
+
# if spec.respond_to?(:metadata)
|
19
|
+
# spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
|
20
|
+
# else
|
21
|
+
# raise "RubyGems 2.0 or newer is required to protect against " \
|
22
|
+
# "public gem pushes."
|
23
|
+
# end
|
24
24
|
|
25
25
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
26
26
|
f.match(%r{^(test|spec|features)/})
|
@@ -0,0 +1,76 @@
|
|
1
|
+
require 'fluent/filter'
|
2
|
+
|
3
|
+
module Fluent
|
4
|
+
class GenHashValueFilter < Filter
|
5
|
+
Fluent::Plugin.register_filter('genhashvalue', self)
|
6
|
+
|
7
|
+
config_param :keys, :array
|
8
|
+
config_param :set_key, :string, :default => '_hash'
|
9
|
+
config_param :inc_time_as_key, :bool, :default => true
|
10
|
+
config_param :inc_tag_as_key, :bool, :default => true
|
11
|
+
config_param :separator, :string, :default => '_'
|
12
|
+
config_param :hash_type, :string, :default => 'sha256'
|
13
|
+
config_param :base64_enc, :bool, :default => false
|
14
|
+
|
15
|
+
def initialize
|
16
|
+
super
|
17
|
+
require 'base64'
|
18
|
+
end
|
19
|
+
|
20
|
+
def configure(conf)
|
21
|
+
#$log.trace "configure #{conf}"
|
22
|
+
super
|
23
|
+
end
|
24
|
+
|
25
|
+
def start
|
26
|
+
super
|
27
|
+
# init
|
28
|
+
end
|
29
|
+
|
30
|
+
def shutdown
|
31
|
+
super
|
32
|
+
# destroy
|
33
|
+
end
|
34
|
+
|
35
|
+
def filter(tag, time, record)
|
36
|
+
s = ""
|
37
|
+
s += tag + separator if inc_tag_as_key
|
38
|
+
s += time.to_s + separator if inc_time_as_key
|
39
|
+
|
40
|
+
s += keys.map {|k| record[k]}.join(separator)
|
41
|
+
if base64_enc then
|
42
|
+
record[set_key] = hash_b64(hash_type, s)
|
43
|
+
else
|
44
|
+
record[set_key] = hash_hex(hash_type, s)
|
45
|
+
end
|
46
|
+
record
|
47
|
+
end
|
48
|
+
|
49
|
+
def hash_hex(type, str)
|
50
|
+
case type
|
51
|
+
when 'md5'
|
52
|
+
h = Digest::MD5.hexdigest(str)
|
53
|
+
when 'sha1'
|
54
|
+
h = Digest::SHA1.hexdigest(str)
|
55
|
+
when 'sha256'
|
56
|
+
h = Digest::SHA256.hexdigest(str)
|
57
|
+
when 'sha512'
|
58
|
+
h = Digest::SHA512.hexdigest(str)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def hash_b64(type, str)
|
63
|
+
case type
|
64
|
+
when 'md5'
|
65
|
+
h = Digest::MD5.digest(str)
|
66
|
+
when 'sha1'
|
67
|
+
h = Digest::SHA1.digest(str)
|
68
|
+
when 'sha256'
|
69
|
+
h = Digest::SHA256.digest(str)
|
70
|
+
when 'sha512'
|
71
|
+
h = Digest::SHA512.digest(str)
|
72
|
+
end
|
73
|
+
h = Base64::strict_encode64(h)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-genhashvalue
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.02'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- m.takemi
|
@@ -82,7 +82,7 @@ files:
|
|
82
82
|
- README.md
|
83
83
|
- Rakefile
|
84
84
|
- fluent-plugin-genhashvalue.gemspec
|
85
|
-
- lib/fluent/plugin/
|
85
|
+
- lib/fluent/plugin/filter_genhashvalue.rb
|
86
86
|
homepage: https://qos.dev7.net/~masafumi.
|
87
87
|
licenses:
|
88
88
|
- MIT
|
@@ -1,68 +0,0 @@
|
|
1
|
-
class Fluent::GenHashValueFilter < Fluent::Plugin::Filter
|
2
|
-
Fluent::Plugin.register_filter('genhashvalue', self)
|
3
|
-
|
4
|
-
config_param :keys, :array
|
5
|
-
config_param :set_key, :string, :default => '_hash'
|
6
|
-
config_param :separator, :string, :default => '_'
|
7
|
-
config_param :hash_type, :string, :default => 'sha256'
|
8
|
-
config_param :base64_enc, :bool, :default => true
|
9
|
-
|
10
|
-
def initialize
|
11
|
-
super
|
12
|
-
require 'base64'
|
13
|
-
end
|
14
|
-
|
15
|
-
def configure(conf)
|
16
|
-
#$log.trace "configure #{conf}"
|
17
|
-
super
|
18
|
-
p @keys
|
19
|
-
end
|
20
|
-
|
21
|
-
def start
|
22
|
-
super
|
23
|
-
# init
|
24
|
-
end
|
25
|
-
|
26
|
-
def shutdown
|
27
|
-
super
|
28
|
-
# destroy
|
29
|
-
end
|
30
|
-
|
31
|
-
def filter(tag, time, record)
|
32
|
-
s = keys.map {|k| record[k]}.join(separator)
|
33
|
-
if base64_enc then
|
34
|
-
record[set_key] = hash_b64(hash_type, s)
|
35
|
-
else
|
36
|
-
record[set_key] = hash_hex(hash_type, s)
|
37
|
-
end
|
38
|
-
record
|
39
|
-
end
|
40
|
-
|
41
|
-
def hash_hex(type, str)
|
42
|
-
case type
|
43
|
-
when 'md5'
|
44
|
-
h = Digest::MD5.hexdigest(str)
|
45
|
-
when 'sha1'
|
46
|
-
h = Digest::SHA1.hexdigest(str)
|
47
|
-
when 'sha256'
|
48
|
-
h = Digest::SHA256.hexdigest(str)
|
49
|
-
when 'sha512'
|
50
|
-
h = Digest::SHA512.hexdigest(str)
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
def hash_b64(type, str)
|
55
|
-
case type
|
56
|
-
when 'md5'
|
57
|
-
h = Digest::MD5.digest(str)
|
58
|
-
when 'sha1'
|
59
|
-
h = Digest::SHA1.digest(str)
|
60
|
-
when 'sha256'
|
61
|
-
h = Digest::SHA256.digest(str)
|
62
|
-
when 'sha512'
|
63
|
-
h = Digest::SHA512.digest(str)
|
64
|
-
end
|
65
|
-
h = Base64::strict_encode64(h)
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|