fluent-plugin-mqtt-io 0.3.0 → 0.3.1
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 +4 -4
- data/fluent-plugin-mqtt-io.gemspec +1 -1
- data/lib/fluent/plugin/in_mqtt.rb +25 -25
- data/lib/fluent/plugin/out_mqtt.rb +22 -22
- data/test/helper.rb +3 -23
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 97803d6c5941eb7ff068d9d8e7205c9a78cc629b
|
4
|
+
data.tar.gz: 8f492394371c32718ad1f97181597efe2192bf08
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a022d9dd82ed38ced4b9cfc89e7d01da5cca628dd6030bc36687df3594409dc25953a027ab9a5a2390f3aa7ef12081114b46c81311d8904a52e342f71f14cd3c
|
7
|
+
data.tar.gz: 00e999e1448d738401eca559d54670c2dff6586f534342af9d09c9caf3f9f745b4bcbbc3704e55210b55485f7bf210e8cce54c21358ce96c00b8be3a0728802b
|
@@ -12,48 +12,48 @@ module Fluent::Plugin
|
|
12
12
|
MQTT_PORT = 1883
|
13
13
|
|
14
14
|
desc 'The address to connect to.'
|
15
|
-
config_param :host, :string, :
|
15
|
+
config_param :host, :string, default: '127.0.0.1'
|
16
16
|
desc 'The port to connect to.'
|
17
|
-
config_param :port, :integer, :
|
17
|
+
config_param :port, :integer, default: MQTT_PORT
|
18
18
|
desc 'The topic to subscribe.'
|
19
|
-
config_param :topic, :string, :
|
19
|
+
config_param :topic, :string, default: '#'
|
20
20
|
desc 'The format to receive.'
|
21
|
-
config_param :format, :string, :
|
21
|
+
config_param :format, :string, default: 'json'
|
22
22
|
desc 'Specify keep alive interval.'
|
23
|
-
config_param :keep_alive, :integer, :
|
23
|
+
config_param :keep_alive, :integer, default: 15
|
24
24
|
desc 'Specify initial interval for reconnection.'
|
25
|
-
config_param :initial_interval, :integer, :
|
25
|
+
config_param :initial_interval, :integer, default: 1
|
26
26
|
desc 'Specify increasing ratio of reconnection interval.'
|
27
|
-
config_param :retry_inc_ratio, :integer, :
|
27
|
+
config_param :retry_inc_ratio, :integer, default: 2
|
28
28
|
|
29
29
|
# bulk_trans is deprecated
|
30
30
|
# multiple entries must be inputted as an Array
|
31
|
-
#config_param :bulk_trans, :bool, :
|
32
|
-
#config_param :bulk_trans_sep, :string, :
|
31
|
+
#config_param :bulk_trans, :bool, default: true
|
32
|
+
#config_param :bulk_trans_sep, :string, default: "\t"
|
33
33
|
|
34
34
|
config_section :security, required: false, multi: false do
|
35
35
|
### User based authentication
|
36
36
|
desc 'The username for authentication'
|
37
|
-
config_param :username, :string, :
|
37
|
+
config_param :username, :string, default: nil
|
38
38
|
desc 'The password for authentication'
|
39
|
-
config_param :password, :string, :
|
39
|
+
config_param :password, :string, default: nil
|
40
40
|
desc 'Use TLS or not.'
|
41
|
-
config_param :use_tls, :bool, :
|
41
|
+
config_param :use_tls, :bool, default: nil
|
42
42
|
config_section :tls, required: false, multi: true do
|
43
43
|
desc 'Specify TLS ca file.'
|
44
|
-
config_param :ca_file, :string, :
|
44
|
+
config_param :ca_file, :string, default: nil
|
45
45
|
desc 'Specify TLS key file.'
|
46
|
-
config_param :key_file, :string, :
|
46
|
+
config_param :key_file, :string, default: nil
|
47
47
|
desc 'Specify TLS cert file.'
|
48
|
-
config_param :cert_file, :string, :
|
48
|
+
config_param :cert_file, :string, default: nil
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
52
|
config_section :monitor, required: false, multi: false do
|
53
53
|
desc 'Record received time into message or not.'
|
54
|
-
config_param :recv_time, :bool, :
|
54
|
+
config_param :recv_time, :bool, default: false
|
55
55
|
desc 'Specify the attribute name of received time.'
|
56
|
-
config_param :recv_time_key, :string, :
|
56
|
+
config_param :recv_time_key, :string, default: "recv_time"
|
57
57
|
end
|
58
58
|
|
59
59
|
def configure(conf)
|
@@ -77,14 +77,14 @@ module Fluent::Plugin
|
|
77
77
|
end
|
78
78
|
|
79
79
|
def sleep_retry_interval(e, message)
|
80
|
-
|
81
|
-
|
80
|
+
log.error "#{message},#{e.class},#{e.message}"
|
81
|
+
log.error "Retry in #{@retry_interval} sec"
|
82
82
|
sleep @retry_interval
|
83
83
|
increment_retry_interval
|
84
84
|
end
|
85
85
|
|
86
86
|
def start
|
87
|
-
|
87
|
+
log.debug "start mqtt #{@host}"
|
88
88
|
opts = {
|
89
89
|
host: @host,
|
90
90
|
port: @port,
|
@@ -140,7 +140,7 @@ module Fluent::Plugin
|
|
140
140
|
def add_recv_time(record)
|
141
141
|
if @recv_time
|
142
142
|
# recv_time is recorded in ms
|
143
|
-
record.merge({@recv_time_key
|
143
|
+
record.merge({"#{@recv_time_key}": Fluent::EventTime.now})
|
144
144
|
else
|
145
145
|
record
|
146
146
|
end
|
@@ -149,10 +149,10 @@ module Fluent::Plugin
|
|
149
149
|
def parse(message)
|
150
150
|
@parser.parse(message) do |time, record|
|
151
151
|
if time.nil?
|
152
|
-
|
152
|
+
log.debug "Since time_key field is nil, Fluent::EventTime.now is used."
|
153
153
|
time = Fluent::EventTime.now
|
154
154
|
end
|
155
|
-
|
155
|
+
log.debug "#{topic}, #{time}, #{add_recv_time(record)}"
|
156
156
|
return [time, add_recv_time(record)]
|
157
157
|
end
|
158
158
|
end
|
@@ -171,8 +171,8 @@ module Fluent::Plugin
|
|
171
171
|
router.emit(tag, time, record)
|
172
172
|
end
|
173
173
|
rescue Exception => e
|
174
|
-
|
175
|
-
|
174
|
+
log.error error: e.to_s
|
175
|
+
log.debug_backtrace(e.backtrace)
|
176
176
|
end
|
177
177
|
end
|
178
178
|
|
@@ -12,43 +12,43 @@ module Fluent::Plugin
|
|
12
12
|
MQTT_PORT = 1883
|
13
13
|
|
14
14
|
desc 'The address to connect to.'
|
15
|
-
config_param :host, :string, :
|
15
|
+
config_param :host, :string, default: '127.0.0.1'
|
16
16
|
desc 'The port to connect to.'
|
17
|
-
config_param :port, :integer, :
|
17
|
+
config_param :port, :integer, default: MQTT_PORT
|
18
18
|
desc 'MQTT keep alive interval.'
|
19
|
-
config_param :keep_alive, :integer, :
|
19
|
+
config_param :keep_alive, :integer, default: 15
|
20
20
|
desc 'Topic rewrite matching pattern.'
|
21
|
-
config_param :topic_rewrite_pattern, :string, :
|
21
|
+
config_param :topic_rewrite_pattern, :string, default: nil
|
22
22
|
desc 'Topic rewrite replacement string.'
|
23
|
-
config_param :topic_rewrite_replacement, :string, :
|
23
|
+
config_param :topic_rewrite_replacement, :string, default: nil
|
24
24
|
desc 'Initial retry interval.'
|
25
|
-
config_param :initial_interval, :integer, :
|
25
|
+
config_param :initial_interval, :integer, default: 1
|
26
26
|
desc 'Increasing ratio of retry interval.'
|
27
|
-
config_param :retry_inc_ratio, :integer, :
|
27
|
+
config_param :retry_inc_ratio, :integer, default: 2
|
28
28
|
|
29
29
|
config_section :security, required: false, multi: false do
|
30
30
|
### User based authentication
|
31
31
|
desc 'The username for authentication'
|
32
|
-
config_param :username, :string, :
|
32
|
+
config_param :username, :string, default: nil
|
33
33
|
desc 'The password for authentication'
|
34
|
-
config_param :password, :string, :
|
34
|
+
config_param :password, :string, default: nil
|
35
35
|
desc 'Use TLS or not.'
|
36
|
-
config_param :use_tls, :bool, :
|
36
|
+
config_param :use_tls, :bool, default: nil
|
37
37
|
config_section :tls, required: false, multi: true do
|
38
38
|
desc 'TLS ca file.'
|
39
|
-
config_param :ca_file, :string, :
|
39
|
+
config_param :ca_file, :string, default: nil
|
40
40
|
desc 'TLS key file.'
|
41
|
-
config_param :key_file, :string, :
|
41
|
+
config_param :key_file, :string, default: nil
|
42
42
|
desc 'TLS cert file.'
|
43
|
-
config_param :cert_file, :string, :
|
43
|
+
config_param :cert_file, :string, default: nil
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
47
|
config_section :monitor, required: false, multi: false do
|
48
48
|
desc 'Recording send time for monitoring.'
|
49
|
-
config_param :send_time, :bool, :
|
49
|
+
config_param :send_time, :bool, default: false
|
50
50
|
desc 'Recording key name of send time for monitoring.'
|
51
|
-
config_param :send_time_key, :string, :
|
51
|
+
config_param :send_time_key, :string, default: "send_time"
|
52
52
|
end
|
53
53
|
|
54
54
|
# This method is called before starting.
|
@@ -72,8 +72,8 @@ module Fluent::Plugin
|
|
72
72
|
end
|
73
73
|
|
74
74
|
def sleep_retry_interval(e, message)
|
75
|
-
|
76
|
-
|
75
|
+
log.error "#{message},#{e.class},#{e.message}"
|
76
|
+
log.error "Retry in #{@retry_interval} sec"
|
77
77
|
sleep @retry_interval
|
78
78
|
increment_retry_interval
|
79
79
|
end
|
@@ -95,7 +95,7 @@ module Fluent::Plugin
|
|
95
95
|
def start
|
96
96
|
super
|
97
97
|
|
98
|
-
|
98
|
+
log.debug "start to connect mqtt broker #{@host}:#{@port}"
|
99
99
|
opts = {
|
100
100
|
host: @host,
|
101
101
|
port: @port,
|
@@ -182,7 +182,7 @@ module Fluent::Plugin
|
|
182
182
|
def add_send_time(record)
|
183
183
|
if @send_time
|
184
184
|
# send_time is recorded in ms
|
185
|
-
record.merge({@send_time_key
|
185
|
+
record.merge({"#{@send_time_key}": Fluent::EventTime.now})
|
186
186
|
else
|
187
187
|
record
|
188
188
|
end
|
@@ -192,7 +192,7 @@ module Fluent::Plugin
|
|
192
192
|
if es.class == Fluent::OneEventStream
|
193
193
|
es = inject_values_to_event_stream(tag, es)
|
194
194
|
es.each do |time, record|
|
195
|
-
|
195
|
+
log.debug "#{rewrite_tag(tag)}, #{add_send_time(record)}"
|
196
196
|
publish_error_handler do
|
197
197
|
@client.publish(rewrite_tag(tag), @formatter.format(tag, time, add_send_time(record)))
|
198
198
|
end
|
@@ -201,14 +201,14 @@ module Fluent::Plugin
|
|
201
201
|
es = inject_values_to_event_stream(tag, es)
|
202
202
|
array = []
|
203
203
|
es.each do |time, record|
|
204
|
-
|
204
|
+
log.debug "#{rewrite_tag(tag)}, #{add_send_time(record)}"
|
205
205
|
array << add_send_time(record)
|
206
206
|
end
|
207
207
|
publish_error_handler do
|
208
208
|
@client.publish(rewrite_tag(tag), @formatter.format(tag, Fluent::EventTime.now, array))
|
209
209
|
end
|
210
210
|
end
|
211
|
-
|
211
|
+
log.flush
|
212
212
|
end
|
213
213
|
|
214
214
|
def process(tag, es)
|
data/test/helper.rb
CHANGED
@@ -1,26 +1,6 @@
|
|
1
|
-
require '
|
2
|
-
require 'bundler'
|
3
|
-
begin
|
4
|
-
Bundler.setup(:default, :development)
|
5
|
-
rescue Bundler::BundlerError => e
|
6
|
-
$stderr.puts e.message
|
7
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
-
exit e.status_code
|
9
|
-
end
|
1
|
+
require 'bundler/setup'
|
10
2
|
require 'test/unit'
|
11
3
|
|
12
|
-
$LOAD_PATH.unshift(File.join(
|
13
|
-
$LOAD_PATH.unshift(
|
4
|
+
$LOAD_PATH.unshift(File.join(__dir__, '..', 'lib'))
|
5
|
+
$LOAD_PATH.unshift(__dir__)
|
14
6
|
require 'fluent/test'
|
15
|
-
unless ENV.has_key?('VERBOSE')
|
16
|
-
nulllogger = Object.new
|
17
|
-
nulllogger.instance_eval {|obj|
|
18
|
-
def method_missing(method, *args)
|
19
|
-
# pass
|
20
|
-
end
|
21
|
-
}
|
22
|
-
$log = nulllogger
|
23
|
-
end
|
24
|
-
|
25
|
-
class Test::Unit::TestCase
|
26
|
-
end
|