fluent-plugin-chatwork 1.0.1 → 2.0.0.beta1

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: a0b1215e734a23d143b14e4d47988ad4fde3d454
4
- data.tar.gz: 7090e822f3e23aeab9eadbd8c70cba96ebdf3f18
3
+ metadata.gz: 19df334b710b279bba1f7d0116f51de3dd3c494e
4
+ data.tar.gz: 7ce33435ce3ea73cac806992a5696c4e5f5aa23b
5
5
  SHA512:
6
- metadata.gz: 5be9c63dd379bc84bb0d2233113353ff9a87925086e06bc59aa8e24a57e9dae61b9a84e834f0b7a1ec0c76ad905debd1e170132a76affbd97c8c2c19ec3ae59e
7
- data.tar.gz: 15b4d0738fa0c8fb9017b9344341b81597e9db9574d3df1eca85a07356774eb8c413df73d3e325d92ea51621deae2123ec0e22e72b098ef0e1a8dee2a36c2af4
6
+ metadata.gz: ccd4c7ab415214e3d2f63cfaa1b9691ec27890d93fc04e78344439db0ae2ed570dd4d89ea97249300829d84bbefec396680fe8c00d1cdc124f5646016dd6e888
7
+ data.tar.gz: 879297e60af8b5b3ea5d0c90f24a58a9a4f3ad39339766fa755c1122f936d6ff5c482ef67fab268e8c2bddcea8c9094b6208bb09a92d29326203badca9a90a34
@@ -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-chatwork"
7
- spec.version = "1.0.1"
7
+ spec.version = "2.0.0.beta1"
8
8
  spec.authors = ["sue445"]
9
9
  spec.email = ["sue445@sue445.net"]
10
10
  spec.summary = %q{fluentd output plugin for post to chatwork}
@@ -17,7 +17,7 @@ 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.15", "< 2"]
21
21
  spec.add_dependency "chatwork", ">= 0.4.0"
22
22
 
23
23
  spec.add_development_dependency "bundler"
@@ -1,15 +1,27 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  require "chatwork"
3
+ require "fluent/plugin/output"
3
4
 
4
- module Fluent
5
- class ChatworkOutput < Fluent::Output
5
+ module Fluent::Plugin
6
+ class ChatworkOutput < Output
6
7
  # First, register the plugin. NAME is the name of this plugin
7
8
  # and identifies the plugin in the configuration file.
8
9
  Fluent::Plugin.register_output('chatwork', self)
9
10
 
11
+ helpers :compat_parameters
12
+
13
+ DEFAULT_BUFFER_TYPE = "memory"
14
+
10
15
  config_param :api_token, :string
11
16
  config_param :room_id , :string
12
17
  config_param :message , :string
18
+ # Switch non-buffered/buffered plugin
19
+ config_param :buffered, :bool, default: false
20
+
21
+ config_section :buffer do
22
+ config_set_default :@type, DEFAULT_BUFFER_TYPE
23
+ config_set_default :chunk_keys, ['tag']
24
+ end
13
25
 
14
26
  # This method is called before starting.
15
27
  def configure(conf)
@@ -26,18 +38,36 @@ module Fluent
26
38
  super
27
39
  end
28
40
 
41
+ def prefer_buffered_processing
42
+ @buffered
43
+ end
44
+
45
+ def formatted_to_msgpack_binary?
46
+ true
47
+ end
48
+
49
+ def format(tag, time, record)
50
+ [time, record].to_msgpack
51
+ end
52
+
29
53
  # This method is called when an event reaches Fluentd.
30
54
  # 'es' is a Fluent::EventStream object that includes multiple events.
31
55
  # You can use 'es.each {|time,record| ... }' to retrieve events.
32
56
  # 'chain' is an object that manages transactions. Call 'chain.next' at
33
57
  # appropriate points and rollback if it raises an exception.
34
- def emit(tag, es, chain)
35
- chain.next
58
+ def process(tag, es)
36
59
  es.each {|time,record|
37
60
  post_message(time: time, record: record, tag: tag)
38
61
  }
39
62
  end
40
63
 
64
+ def write(chunk)
65
+ tag = chunk.metadata.tag
66
+ chunk.msgpack_each {|time, record|
67
+ post_message(time: time, record: record, tag: tag)
68
+ }
69
+ end
70
+
41
71
  def post_message(args={})
42
72
  body = generate_message(args)
43
73
  ChatWork.api_key = @api_token
@@ -1,11 +1,11 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
- describe Fluent::ChatworkOutput do
3
+ describe Fluent::Plugin::ChatworkOutput do
4
4
  before do
5
5
  Fluent::Test.setup
6
6
  end
7
7
 
8
- let(:driver) { Fluent::Test::OutputTestDriver.new(Fluent::ChatworkOutput, 'test.metrics').configure(config) }
8
+ let(:driver) { Fluent::Test::Driver::Output.new(Fluent::Plugin::ChatworkOutput).configure(config) }
9
9
  let(:instance) { driver.instance }
10
10
 
11
11
  let(:config) do
@@ -28,6 +28,10 @@ describe Fluent::ChatworkOutput do
28
28
  it "should get message" do
29
29
  expect( instance.message ).to eq "some message"
30
30
  end
31
+
32
+ it "should get buffered" do
33
+ expect( instance.buffered ).to be_falsy
34
+ end
31
35
  end
32
36
 
33
37
  describe "#emit" do
@@ -38,8 +42,30 @@ describe Fluent::ChatworkOutput do
38
42
  end
39
43
 
40
44
  it "should be called" do
41
- driver.emit(record)
42
- expect(driver.run).not_to be_nil
45
+ driver.run(default_tag: "test.metrics") { driver.feed(record) }
46
+ expect(driver.events).not_to be_nil
47
+ end
48
+ end
49
+
50
+ describe "buffered #emit" do
51
+ let(:record){ {} }
52
+
53
+ let(:config) do
54
+ %[
55
+ api_token xxxxxxxxxxxxxxxxxxxx
56
+ room_id 1234567890
57
+ message some message
58
+ buffered true
59
+ ]
60
+ end
61
+
62
+ before do
63
+ allow(instance).to receive(:post_message)
64
+ end
65
+
66
+ it "should be called" do
67
+ driver.run(default_tag: "test.metrics") { driver.feed(record) }
68
+ expect(driver.events).not_to be_nil
43
69
  end
44
70
  end
45
71
 
@@ -26,6 +26,7 @@ end
26
26
 
27
27
  require 'fluent/load'
28
28
  require 'fluent/test'
29
+ require 'fluent/test/driver/output'
29
30
 
30
31
  require 'fluent/plugin/out_chatwork'
31
32
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-chatwork
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 2.0.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - sue445
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-31 00:00:00.000000000 Z
11
+ date: 2017-08-12 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.15
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.15
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '2'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: chatwork
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -172,12 +178,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
172
178
  version: '0'
173
179
  required_rubygems_version: !ruby/object:Gem::Requirement
174
180
  requirements:
175
- - - ">="
181
+ - - ">"
176
182
  - !ruby/object:Gem::Version
177
- version: '0'
183
+ version: 1.3.1
178
184
  requirements: []
179
185
  rubyforge_project:
180
- rubygems_version: 2.6.8
186
+ rubygems_version: 2.5.2
181
187
  signing_key:
182
188
  specification_version: 4
183
189
  summary: fluentd output plugin for post to chatwork