lib/fluent/plugin/out_hipchat.rb in fluent-plugin-hipchat-0.2.0 vs lib/fluent/plugin/out_hipchat.rb in fluent-plugin-hipchat-0.3.0
- old
+ new
@@ -1,12 +1,17 @@
+require 'hipchat-api'
+require 'fluent/plugin/output'
-module Fluent
- class HipchatOutput < BufferedOutput
+module Fluent::Plugin
+ class HipchatOutput < Output
COLORS = %w(yellow red green purple gray random)
FORMAT = %w(html text)
+ DEFAULT_BUFFER_TYPE = "memory"
Fluent::Plugin.register_output('hipchat', self)
+ helpers :compat_parameters
+
config_param :api_token, :string, :secret => true
config_param :default_room, :string, :default => nil
config_param :default_color, :string, :default => 'yellow'
config_param :default_from, :string, :default => 'fluentd'
config_param :default_notify, :bool, :default => false
@@ -17,18 +22,23 @@
config_param :http_proxy_port, :integer, :default => nil
config_param :http_proxy_user, :string, :default => nil
config_param :http_proxy_pass, :string, :default => nil
config_param :flush_interval, :time, :default => 1
+ config_section :buffer do
+ config_set_default :@type, DEFAULT_BUFFER_TYPE
+ config_set_default :chunk_keys, ['tag']
+ end
+
attr_reader :hipchat
def initialize
super
- require 'hipchat-api'
end
def configure(conf)
+ compat_parameters_convert(conf, :buffer)
super
@hipchat = HipChat::API.new(conf['api_token'])
@default_room = conf['default_room']
@default_notify = conf['default_notify'] || 0
@@ -38,22 +48,31 @@
conf['http_proxy_host'],
conf['http_proxy_port'],
conf['http_proxy_user'],
conf['http_proxy_pass'])
end
+ raise Fluent::ConfigError, "'tag' in chunk_keys is required." if not @chunk_key_tag
end
def format(tag, time, record)
- [tag, time, record].to_msgpack
+ [time, record].to_msgpack
end
+ def formatted_to_msgpack_binary
+ true
+ end
+
+ def multi_workers_ready?
+ true
+ end
+
def write(chunk)
- chunk.msgpack_each do |(tag,time,record)|
+ chunk.msgpack_each do |(time,record)|
begin
send_message(record) if record[@key_name]
set_topic(record) if record['topic']
rescue => e
- $log.error("HipChat Error:", :error_class => e.class, :error => e.message)
+ log.error("HipChat Error:", :error_class => e.class, :error => e.message)
end
end
end
def send_message(record)