fluent-plugin-stdout-pp 0.1.0 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b61c7757d5d658aa171a9026b8102f5b4a2b8d23
4
- data.tar.gz: f16d7c86c25ac86659c629260bd64d18a3df38cf
3
+ metadata.gz: 22d8905b6b920b7ad4d927cce2012bb4b0424e1d
4
+ data.tar.gz: ee54f2fa1d41a358e5888eee66390155e2777fb2
5
5
  SHA512:
6
- metadata.gz: 357e69f7a0adcbe3c83b5a3d71b96dede94d2f05406ac276f884ec6339aeae38494f578abe5f5a23806ef4524e1f2e5286bef180dbbf42c3836a408ff83b5343
7
- data.tar.gz: cb1980091799ed9712942829c7d778612a4ca7d4fb1073c5f9ab741fcc8bd5714b8b17a39d51ea05e4156eb1c968efec665d43e447465c7c1e023ff3009ea585
6
+ metadata.gz: f4c95e90597115f1df35ce05bf047a2b0b1a326c36730f900d9bd90395d335a8425a31bfbe61e7d1cb47bc532e19a8ef2a8d95a144edd0a98724ccf5f91ff261
7
+ data.tar.gz: a088f56d35d9548e95eb413e57f30c1605759108d0777d4a89fc78f34e14dc164f2ae7479dcdf26048120f14aacdb51749f89b7eb6db7424095bccb4fa8ff234
data/README.md CHANGED
@@ -1,9 +1,16 @@
1
- # fluent-plugin-stdout-pp
1
+ # fluent-plugin-stdout-pp, a plugin for [Fluentd](https://www.fluentd.org)
2
2
 
3
3
  [![Build Status](https://travis-ci.org/sabottenda/fluent-plugin-stdout-pp.svg)](https://travis-ci.org/sabottenda/fluent-plugin-stdout-pp)
4
4
 
5
5
  A fluentd plugin to pretty print json with color to stdout
6
6
 
7
+ ## Requirements
8
+
9
+ | fluent-plugin-stdout-pp | fluentd | ruby |
10
+ |-------------------------|------------|--------|
11
+ | >= 0.2.0 | >= v0.14.0 | >= 2.1 |
12
+ | < 0.2.0 | >= v0.12.0 | >= 1.9 |
13
+
7
14
  ## Installation
8
15
 
9
16
  Add this line to your application's Gemfile:
@@ -22,7 +29,7 @@ Or install it yourself as:
22
29
 
23
30
  ```
24
31
  <match **>
25
- type stdout_pp
32
+ @type stdout_pp
26
33
  time_color blue
27
34
  tag_color yellow
28
35
  </match>
@@ -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-stdout-pp"
7
- spec.version = "0.1.0"
7
+ spec.version = "0.2.0"
8
8
  spec.authors = ["Masahiro Sano"]
9
9
  spec.email = ["sabottenda@gmail.com"]
10
10
  spec.description = %q{A fluentd plugin to pretty print json with color to stdout}
@@ -17,7 +17,8 @@ Gem::Specification.new do |spec|
17
17
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
18
  spec.require_paths = ["lib"]
19
19
 
20
- spec.add_dependency "fluentd"
20
+ spec.add_dependency "fluentd", ">= 0.14.12", "< 2"
21
21
  spec.add_dependency "coderay"
22
22
  spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "test-unit", "> 3"
23
24
  end
@@ -1,13 +1,13 @@
1
1
  require 'coderay'
2
2
 
3
- module Fluent
4
- class StdoutPPOutput < Output
3
+ module Fluent::Plugin
4
+ class StdoutPPOutput < Fluent::Plugin::Output
5
5
  Fluent::Plugin.register_output('stdout_pp', self)
6
6
 
7
- config_param :pp, :bool, :default => true
8
- config_param :time_color, :string, :default => 'blue'
9
- config_param :tag_color, :string, :default => 'yellow'
10
- config_param :record_colored, :bool, :default => true
7
+ config_param :pp, :bool, default: true
8
+ config_param :time_color, :string, default: 'blue'
9
+ config_param :tag_color, :string, default: 'yellow'
10
+ config_param :record_colored, :bool, default: true
11
11
 
12
12
  TTY_COLOR = {
13
13
  normal: "\033[0;39m",
@@ -20,10 +20,6 @@ module Fluent
20
20
  white: "\033[1;37m",
21
21
  }
22
22
 
23
- def initialize
24
- super
25
- end
26
-
27
23
  def configure(conf)
28
24
  super
29
25
 
@@ -38,7 +34,7 @@ module Fluent
38
34
  end
39
35
  end
40
36
 
41
- def emit(tag, es, chain)
37
+ def process(tag, es)
42
38
  tag_colored = TTY_COLOR[@tag_color] + tag + TTY_COLOR[:normal]
43
39
  es.each do |time, record|
44
40
  time_colored = TTY_COLOR[@time_color] + Time.at(time).localtime.to_s + TTY_COLOR[:normal]
@@ -48,10 +44,13 @@ module Fluent
48
44
  json = Yajl.dump(record)
49
45
  end
50
46
  json = CodeRay.scan(json, :json).terminal if @record_colored
51
- $log.write "#{time_colored} #{tag_colored}: #{json}\n"
47
+ log.write "#{time_colored} #{tag_colored}: #{json}\n"
52
48
  end
53
- $log.flush
54
- chain.next
49
+ log.flush
50
+ end
51
+
52
+ def multi_workers_ready?
53
+ true
55
54
  end
56
55
  end
57
56
  end
@@ -1,23 +1,9 @@
1
1
  require 'test/unit'
2
2
 
3
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
- $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ $LOAD_PATH.unshift(File.join(__dir__, '..', 'lib'))
4
+ $LOAD_PATH.unshift(__dir__)
5
5
  require 'fluent/test'
6
+ require 'fluent/test/driver/output'
7
+ require 'fluent/test/helpers'
6
8
 
7
- def capture(&block)
8
- old = $log
9
- $log = StringIO.new
10
- yield
11
- return $log.string
12
- ensure
13
- $log = old
14
- end
15
-
16
- # def capture
17
- # old = $stdout
18
- # $stdout = StringIO.new('','w')
19
- # yield
20
- # $stdout.string
21
- # ensure
22
- # $stdout = old
23
- # end
9
+ Test::Unit::TestCase.include(Fluent::Test::Helpers)
@@ -10,7 +10,7 @@ class StdoutOutputPPTest < Test::Unit::TestCase
10
10
  ]
11
11
 
12
12
  def create_driver(conf = CONFIG)
13
- Fluent::Test::OutputTestDriver.new(Fluent::StdoutPPOutput).configure(conf)
13
+ Fluent::Test::Driver::Output.new(Fluent::Plugin::StdoutPPOutput).configure(conf)
14
14
  end
15
15
 
16
16
  def test_configure
@@ -19,28 +19,37 @@ class StdoutOutputPPTest < Test::Unit::TestCase
19
19
  assert_equal Symbol, d.instance.tag_color.class
20
20
  end
21
21
 
22
- def test_emit
22
+ def test_process
23
23
  d = create_driver
24
- time = Time.now
25
- out = capture { d.emit({'test' => 'test'}, time) }
26
- assert_equal "\e[1;34m#{time.localtime}\e[0;39m \e[1;33mtest\e[0;39m: {\n \e[35m\e[1;35m\"\e[0m\e[35mtest\e[1;35m\"\e[0m\e[35m\e[0m: \e[31m\e[1;31m\"\e[0m\e[31mtest\e[1;31m\"\e[0m\e[31m\e[0m\n}\n", out
24
+ time = event_time
25
+ localtime = time2str(time, localtime: true, format: '%Y-%m-%d %H:%M:%S %z')
26
+ d.run(default_tag: 'test') do
27
+ d.feed(time, {'test' => 'test'})
28
+ end
29
+ assert_equal "\e[1;34m#{localtime}\e[0;39m \e[1;33mtest\e[0;39m: {\n \e[35m\e[1;35m\"\e[0m\e[35mtest\e[1;35m\"\e[0m\e[35m\e[0m: \e[31m\e[1;31m\"\e[0m\e[31mtest\e[1;31m\"\e[0m\e[31m\e[0m\n}\n", d.logs.first
27
30
  end
28
31
 
29
- def test_emit_no_color
32
+ def test_process_no_color
30
33
  d = create_driver(CONFIG + "record_colored false\n")
31
- time = Time.now
34
+ time = event_time
35
+ localtime = time2str(time, localtime: true, format: '%Y-%m-%d %H:%M:%S %z')
32
36
  record = {'test' => 'test'}
33
- out = capture { d.emit(record, time) }
34
- assert_equal "\e[1;34m#{time.localtime}\e[0;39m \e[1;33mtest\e[0;39m: #{JSON.pretty_generate(record)}\n", out
37
+ d.run(default_tag: 'test') do
38
+ d.feed(time, record)
39
+ end
40
+ assert_equal "\e[1;34m#{localtime}\e[0;39m \e[1;33mtest\e[0;39m: #{JSON.pretty_generate(record)}\n", d.logs.first
35
41
  end
36
42
 
37
- def test_emit_without_pp
43
+ def test_process_without_pp
38
44
  d = create_driver(CONFIG + "pp false\n")
39
- time = Time.now
45
+ time = event_time
46
+ localtime = time2str(time, localtime: true, format: '%Y-%m-%d %H:%M:%S %z')
40
47
  record = {'test' => 'test'}
41
- out = capture { d.emit(record, time) }
48
+ d.run(default_tag: 'test') do
49
+ d.feed(time, record)
50
+ end
42
51
 
43
- assert_equal "\e[1;34m#{time.localtime}\e[0;39m \e[1;33mtest\e[0;39m: {\e[35m\e[1;35m\"\e[0m\e[35mtest\e[1;35m\"\e[0m\e[35m\e[0m:\e[31m\e[1;31m\"\e[0m\e[31mtest\e[1;31m\"\e[0m\e[31m\e[0m}\n", out
52
+ assert_equal "\e[1;34m#{localtime}\e[0;39m \e[1;33mtest\e[0;39m: {\e[35m\e[1;35m\"\e[0m\e[35mtest\e[1;35m\"\e[0m\e[35m\e[0m:\e[31m\e[1;31m\"\e[0m\e[31mtest\e[1;31m\"\e[0m\e[31m\e[0m}\n", d.logs.first
44
53
  end
45
54
  end
46
55
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-stdout-pp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masahiro Sano
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-10 00:00:00.000000000 Z
11
+ date: 2017-10-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd
@@ -16,14 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 0.14.12
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '2'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
27
  - - ">="
25
28
  - !ruby/object:Gem::Version
26
- version: '0'
29
+ version: 0.14.12
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '2'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: coderay
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +58,20 @@ dependencies:
52
58
  - - ">="
53
59
  - !ruby/object:Gem::Version
54
60
  version: '0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: test-unit
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">"
66
+ - !ruby/object:Gem::Version
67
+ version: '3'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">"
73
+ - !ruby/object:Gem::Version
74
+ version: '3'
55
75
  description: A fluentd plugin to pretty print json with color to stdout
56
76
  email:
57
77
  - sabottenda@gmail.com
@@ -88,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
88
108
  version: '0'
89
109
  requirements: []
90
110
  rubyforge_project:
91
- rubygems_version: 2.2.2
111
+ rubygems_version: 2.6.13
92
112
  signing_key:
93
113
  specification_version: 4
94
114
  summary: A fluentd plugin to pretty print json with color to stdout