fluent-plugin-record-reformer 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c7d6ae389089e590c847be0a6f9969cab1e56138
4
- data.tar.gz: 69a52f47a536d08d3d317ce8803d761cba44ea97
3
+ metadata.gz: c27a9bd39e4b37a91f5cfaa52afa8fe63b759cd4
4
+ data.tar.gz: f7847b8ad017df0871c32dc82ca5a87949080bc6
5
5
  SHA512:
6
- metadata.gz: f4bb261c67b3842003d83b54729a3b0e453b09f8d6a3efce0f741acebe0d8b569e644898bc634bb20ea3440fe815c456c48a0e0a495abe3109ce8523ce734830
7
- data.tar.gz: bb9f7cce04fc9ea24db7e25a6ed9d882824328433b1a99ce427a00b1c90260d1751dc4ca2661ecfbc73aebb7b4d89dbd7253a0c7c20013c3bbd53a887e073529
6
+ metadata.gz: 7ad34f1d7fa04e2393c5513bf1821c53572eb4d5de13635bdb00d0aea408996301c59e19ecdb48f0d1640c421d2c88c0b378ba997ce641f0d5feaced6e05cae6
7
+ data.tar.gz: 3ec3479c687ad1fadb9a0f08ac67225a2c4668440b8b647f3e60a6edb10d44b39a2e5f4a2bf85724a93cfc08642da798a5fe911ed7b10f384fa34460a99f4be2
data/.gitignore CHANGED
@@ -10,3 +10,4 @@ doc/*
10
10
  tmp/*
11
11
  coverage
12
12
  .yardoc
13
+ pkg/
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 0.0.2 (2013/08/07)
2
+
3
+ Enhancement:
4
+
5
+ * Increase possible placeholders more such as `method`.
6
+
1
7
  ## 0.0.1 (2013/05/02)
2
8
 
3
9
  First release
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
- # fluent-plugin-record-reformer [![Build Status](https://secure.travis-ci.org/sonots/fluent-plugin-record-reformer.png?branch=master)](http://travis-ci.org/sonots/fluent-plugin-record-reformer) [![Dependency Status](https://gemnasium.com/sonots/fluent-plugin-record-reformer.png)](https://gemnasium.com/sonots/fluent-plugin-record-reformer) [![Coverage Status](https://coveralls.io/repos/sonots/fluent-plugin-record-reformer/badge.png?branch=master)](https://coveralls.io/r/sonots/fluent-plugin-record-reformer)
1
+ # fluent-plugin-record-reformer
2
2
 
3
- Add or replace fields of a event record
3
+ [![Build Status](https://secure.travis-ci.org/sonots/fluent-plugin-record-reformer.png?branch=master)](http://travis-ci.org/sonots/fluent-plugin-record-reformer) [![Dependency Status](https://gemnasium.com/sonots/fluent-plugin-record-reformer.png)](https://gemnasium.com/sonots/fluent-plugin-record-reformer)
4
+
5
+ Fluentd pluging to add or replace fields of a event record
4
6
 
5
7
  ## Installation
6
8
 
@@ -10,6 +12,8 @@ Use RubyGems:
10
12
 
11
13
  ## Configuration
12
14
 
15
+ Example:
16
+
13
17
  <match foo.**>
14
18
  type record_reformer
15
19
  output_tag reformed
@@ -35,7 +39,7 @@ reformed {
35
39
  "time":"2013-05-01T01:13:14Z",
36
40
  "message":"your_hostname bar hello world!",
37
41
  "foo":"bar"
38
- }
42
+ }
39
43
  ```
40
44
 
41
45
  ### Placeholders
@@ -57,9 +61,13 @@ It is also possible to write a ruby code in placeholders, so you may write some
57
61
  * ${time.strftime('%Y-%m-%dT%H:%M:%S%z')}
58
62
  * ${tags.last}
59
63
 
64
+ ## Notice
65
+
66
+ Please note that this plugin enables to execute any ruby codes. Do not allow anyone to write fluentd configuration from outside of your system by security reasons.
67
+
60
68
  ## Relatives
61
69
 
62
- * [fluent-plugin-record-modifier](https://github.com/repeatedly/fluent-plugin-record-modifier)
70
+ * inspired by [fluent-plugin-record-modifier](https://github.com/repeatedly/fluent-plugin-record-modifier)
63
71
 
64
72
  ## ChangeLog
65
73
 
@@ -3,12 +3,13 @@ $:.push File.expand_path('../lib', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |gem|
5
5
  gem.name = "fluent-plugin-record-reformer"
6
- gem.version = "0.0.1"
6
+ gem.version = "0.0.2"
7
7
  gem.authors = ["Naotoshi Seo"]
8
8
  gem.email = "sonots@gmail.com"
9
9
  gem.homepage = "https://github.com/sonots/fluent-plugin-record-reformer"
10
10
  gem.description = "Output filter plugin for reforming each event record"
11
11
  gem.summary = gem.description
12
+ gem.licenses = ["MIT"]
12
13
  gem.has_rdoc = false
13
14
 
14
15
  gem.files = `git ls-files`.split("\n")
@@ -20,5 +21,4 @@ Gem::Specification.new do |gem|
20
21
  gem.add_development_dependency "rake"
21
22
  gem.add_development_dependency "rspec"
22
23
  gem.add_development_dependency "pry"
23
- gem.add_development_dependency 'coveralls'
24
24
  end
@@ -24,23 +24,32 @@ module Fluent
24
24
  def emit(tag, es, chain)
25
25
  tags = tag.split('.')
26
26
  es.each { |time, record|
27
- Engine.emit(@output_tag, time, expand_record(record, tag, tags, time))
27
+ Engine.emit(@output_tag, time, replace_record(record, tag, tags, Time.at(time)))
28
28
  }
29
29
  chain.next
30
+ rescue => e
31
+ $log.warn e.message
32
+ $log.warn e.backtrace.join(', ')
30
33
  end
31
34
 
32
35
  private
33
36
 
34
- def expand_record(record, tag, tags, time)
35
- time = Time.at(time)
37
+ def replace_record(record, tag, tags, time)
36
38
  @map.each_pair { |k, v|
37
- record[k] = expand(v, record, tag, tags, time)
39
+ record[k] = expand_placeholder(v, record, tag, tags, time)
38
40
  }
39
41
  record
40
42
  end
41
43
 
42
- def expand(str, record, tag, tags, time)
43
- struct = OpenStruct.new(record)
44
+ # Replace placeholders in a string
45
+ #
46
+ # @param [String] str the string to be replaced
47
+ # @param [Hash] record the record, one of information
48
+ # @param [String] tag one of information
49
+ # @param [Array] tags one of information
50
+ # @param [Time] time one of information
51
+ def expand_placeholder(str, record, tag, tags, time)
52
+ struct = UndefOpenStruct.new(record)
44
53
  struct.tag = tag
45
54
  struct.tags = tags
46
55
  struct.time = time
@@ -48,5 +57,11 @@ module Fluent
48
57
  str = str.gsub(/\$\{([^}]+)\}/, '#{\1}') # ${..} => #{..}
49
58
  eval "\"#{str}\"", struct.instance_eval { binding }
50
59
  end
60
+
61
+ class UndefOpenStruct < OpenStruct
62
+ (Object.instance_methods).each do |m|
63
+ undef_method m unless m.to_s =~ /^__|respond_to_missing\?|object_id|public_methods|instance_eval|method_missing|define_singleton_method|respond_to\?|new_ostruct_member/
64
+ end
65
+ end
51
66
  end
52
67
  end
data/spec/spec_helper.rb CHANGED
@@ -4,9 +4,6 @@ require 'bundler'
4
4
  Bundler.setup(:default, :test)
5
5
  Bundler.require(:default, :test)
6
6
 
7
- require 'coveralls'
8
- Coveralls.wear!
9
-
10
7
  require 'fluent/test'
11
8
  require 'rspec'
12
9
  require 'pry'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-record-reformer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Naotoshi Seo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-05-02 00:00:00.000000000 Z
11
+ date: 2013-08-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd
@@ -66,27 +66,12 @@ dependencies:
66
66
  - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: coveralls
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - '>='
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - '>='
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
69
  description: Output filter plugin for reforming each event record
84
70
  email: sonots@gmail.com
85
71
  executables: []
86
72
  extensions: []
87
73
  extra_rdoc_files: []
88
74
  files:
89
- - .coveralls.yml
90
75
  - .gitignore
91
76
  - .rspec
92
77
  - .travis.yml
@@ -100,7 +85,8 @@ files:
100
85
  - spec/out_record_expander_spec.rb
101
86
  - spec/spec_helper.rb
102
87
  homepage: https://github.com/sonots/fluent-plugin-record-reformer
103
- licenses: []
88
+ licenses:
89
+ - MIT
104
90
  metadata: {}
105
91
  post_install_message:
106
92
  rdoc_options: []
@@ -118,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
118
104
  version: '0'
119
105
  requirements: []
120
106
  rubyforge_project:
121
- rubygems_version: 2.0.0
107
+ rubygems_version: 2.0.2
122
108
  signing_key:
123
109
  specification_version: 4
124
110
  summary: Output filter plugin for reforming each event record
data/.coveralls.yml DELETED
@@ -1 +0,0 @@
1
- repo_token: i4DJCtdksuIwhBck1tukIjzKoMCxWIIvQ