fluent-plugin-better-timestamp 0.1.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 +7 -0
- data/.gitignore +1 -0
- data/ChangeLog +3 -0
- data/Gemfile +3 -0
- data/Rakefile +14 -0
- data/VERSION +1 -0
- data/fluent-plugin-better-timestamp.gemspec +23 -0
- data/lib/fluent/plugin/out_better_timestamp.rb +48 -0
- data/test/out_better_timestamp.rb +42 -0
- metadata +95 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 5a3ed2811c5fbb61a6761a97d15008a31ec64e64
|
|
4
|
+
data.tar.gz: d9c7548d76e537d436d3ffcc41e38b54cbd239e1
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 28374fe3f76dc46b853cd98d31c15e5ff5dbec0749b759dbb3c9e4c130fa28e8e786fc780dcd3d2f770e0aa5111c962b414fcc4660767dd200adb00893926ec2
|
|
7
|
+
data.tar.gz: c691b8a0515c582481d47d8d56fa85e30c25a2ad9eb4ef0efc058d5f6a6c1e74bf90b4600d1030aa52db0477a6ccb85851de5544873a2ad0643001979af98934
|
data/.gitignore
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
pkg
|
data/ChangeLog
ADDED
data/Gemfile
ADDED
data/Rakefile
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
|
|
2
|
+
require 'bundler'
|
|
3
|
+
Bundler::GemHelper.install_tasks
|
|
4
|
+
|
|
5
|
+
require 'rake/testtask'
|
|
6
|
+
|
|
7
|
+
Rake::TestTask.new(:test) do |test|
|
|
8
|
+
test.libs << 'lib' << 'test'
|
|
9
|
+
test.test_files = FileList['test/*.rb']
|
|
10
|
+
test.verbose = true
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
task :default => [:build]
|
|
14
|
+
|
data/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.1.0
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
$:.push File.expand_path('../lib', __FILE__)
|
|
3
|
+
|
|
4
|
+
Gem::Specification.new do |gem|
|
|
5
|
+
gem.name = "fluent-plugin-better-timestamp"
|
|
6
|
+
gem.description = "Output filter plugin which put timestamp"
|
|
7
|
+
gem.homepage = "https://github.com/shivaken/fluent-plugin-better-timestamp"
|
|
8
|
+
gem.summary = gem.description
|
|
9
|
+
gem.version = File.read("VERSION").strip
|
|
10
|
+
gem.authors = ["Kenichi Otsuka"]
|
|
11
|
+
gem.email = "shivaken@gmail.com"
|
|
12
|
+
gem.has_rdoc = false
|
|
13
|
+
#gem.platform = Gem::Platform::RUBY
|
|
14
|
+
gem.license = 'MIT'
|
|
15
|
+
gem.files = `git ls-files`.split("\n")
|
|
16
|
+
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
17
|
+
gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
|
18
|
+
gem.require_paths = ['lib']
|
|
19
|
+
|
|
20
|
+
gem.add_dependency "fluentd", "~> 0.10.17"
|
|
21
|
+
gem.add_dependency "fluent-mixin-config-placeholders", ">= 0.3.0"
|
|
22
|
+
gem.add_development_dependency "rake", ">= 0.9.2"
|
|
23
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
require 'fluent/mixin/config_placeholders'
|
|
2
|
+
|
|
3
|
+
module Fluent
|
|
4
|
+
class BetterTimestampOutput < Output
|
|
5
|
+
Fluent::Plugin.register_output('better_timestamp', self)
|
|
6
|
+
|
|
7
|
+
config_param :tag, :string
|
|
8
|
+
config_param :msec_key, :string, :default => 'msec'
|
|
9
|
+
config_param :timestamp_key, :string, :default => '@timestamp'
|
|
10
|
+
|
|
11
|
+
include SetTagKeyMixin
|
|
12
|
+
include Fluent::Mixin::ConfigPlaceholders
|
|
13
|
+
|
|
14
|
+
BUILTIN_CONFIGURATIONS = %W(type tag timestamp_key msec_key)
|
|
15
|
+
|
|
16
|
+
def configure(conf)
|
|
17
|
+
super
|
|
18
|
+
|
|
19
|
+
@map = {}
|
|
20
|
+
conf.each_pair { |k, v|
|
|
21
|
+
unless BUILTIN_CONFIGURATIONS.include?(k)
|
|
22
|
+
conf.has_key?(k)
|
|
23
|
+
@map[k] = v
|
|
24
|
+
end
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def emit(tag, es, chain)
|
|
30
|
+
es.each { |time, record|
|
|
31
|
+
filter_record(tag, time, record)
|
|
32
|
+
Engine.emit(@tag, time, modify_record(time, record))
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
chain.next
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
private
|
|
39
|
+
|
|
40
|
+
def modify_record(time, record)
|
|
41
|
+
if record[@msec_key] then
|
|
42
|
+
record[@timestamp_key] = Time.at(time, record[@msec_key].to_i * 1000).strftime("%Y-%m-%dT%H:%M:%S.%L%z")
|
|
43
|
+
record.delete(@msec_key)
|
|
44
|
+
end
|
|
45
|
+
record
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
require 'fluent/test'
|
|
2
|
+
require 'fluent/plugin/out_better_timestamp'
|
|
3
|
+
|
|
4
|
+
class BetterTimestampOutputTest < Test::Unit::TestCase
|
|
5
|
+
def setup
|
|
6
|
+
Fluent::Test.setup
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
CONFIG = %[
|
|
10
|
+
type better_timestamp
|
|
11
|
+
tag foo.filtered
|
|
12
|
+
msec_key msec
|
|
13
|
+
timestamp_key
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
def create_driver(conf = CONFIG)
|
|
17
|
+
Fluent::Test::OutputTestDriver.new(Fluent::BetterTimestampOutput, tag='test_tag').configure(conf)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def test_configure
|
|
21
|
+
d = create_driver
|
|
22
|
+
map = d.instance.instance_variable_get(:@map)
|
|
23
|
+
|
|
24
|
+
#assert_equal 'msec', map['msec_key']
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def test_remove_one_key
|
|
28
|
+
d = create_driver %[
|
|
29
|
+
type record_modifier
|
|
30
|
+
tag foo.filtered
|
|
31
|
+
msec_key msec
|
|
32
|
+
]
|
|
33
|
+
|
|
34
|
+
mapped = {}
|
|
35
|
+
|
|
36
|
+
d.run do
|
|
37
|
+
d.emit("msec" => '1', "k1" => 'v')
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
assert d.records[0]['@timestamp']
|
|
41
|
+
end
|
|
42
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: fluent-plugin-better-timestamp
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Kenichi Otsuka
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2014-11-16 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: fluentd
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: 0.10.17
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: 0.10.17
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: fluent-mixin-config-placeholders
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ">="
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: 0.3.0
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ">="
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: 0.3.0
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: rake
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - ">="
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: 0.9.2
|
|
48
|
+
type: :development
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - ">="
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: 0.9.2
|
|
55
|
+
description: Output filter plugin which put timestamp
|
|
56
|
+
email: shivaken@gmail.com
|
|
57
|
+
executables: []
|
|
58
|
+
extensions: []
|
|
59
|
+
extra_rdoc_files: []
|
|
60
|
+
files:
|
|
61
|
+
- ".gitignore"
|
|
62
|
+
- ChangeLog
|
|
63
|
+
- Gemfile
|
|
64
|
+
- Rakefile
|
|
65
|
+
- VERSION
|
|
66
|
+
- fluent-plugin-better-timestamp.gemspec
|
|
67
|
+
- lib/fluent/plugin/out_better_timestamp.rb
|
|
68
|
+
- pkg/fluent-plugin-better-timestamp-0.1.0.gem
|
|
69
|
+
- test/out_better_timestamp.rb
|
|
70
|
+
homepage: https://github.com/shivaken/fluent-plugin-better-timestamp
|
|
71
|
+
licenses:
|
|
72
|
+
- MIT
|
|
73
|
+
metadata: {}
|
|
74
|
+
post_install_message:
|
|
75
|
+
rdoc_options: []
|
|
76
|
+
require_paths:
|
|
77
|
+
- lib
|
|
78
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - ">="
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: '0'
|
|
83
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
84
|
+
requirements:
|
|
85
|
+
- - ">="
|
|
86
|
+
- !ruby/object:Gem::Version
|
|
87
|
+
version: '0'
|
|
88
|
+
requirements: []
|
|
89
|
+
rubyforge_project:
|
|
90
|
+
rubygems_version: 2.0.14
|
|
91
|
+
signing_key:
|
|
92
|
+
specification_version: 4
|
|
93
|
+
summary: Output filter plugin which put timestamp
|
|
94
|
+
test_files:
|
|
95
|
+
- test/out_better_timestamp.rb
|