fluent-plugin-kafka 0.3.4 → 0.3.5

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: e2d81baf9816d05b5cc5f5c982aafe722781d978
4
- data.tar.gz: cfb1477ba8cd4961424881c173cf0d4dffab999d
3
+ metadata.gz: c58f69838db9786bbbe80d9fdf6a0c055f11bddd
4
+ data.tar.gz: 7cafa5f21b85071af41c44570c27fe11518c3f09
5
5
  SHA512:
6
- metadata.gz: 15b62cb6289281bebf2938172b41fe0a8f7080d6afebfebf672e45a10a1c31779db3ed9b739a28db57300ed5323abd814ae69720e0afc0d3a301ffebfce66e8b
7
- data.tar.gz: 70deeef4310ef4ad2674ba21fb2f981147bc0784810d88c14ab32efe837f7b1f7fc41f6bb540223d65bc1df0cae599440ae05eaaae7ded3185c6865a727fedbb
6
+ metadata.gz: 8b2ec6b3299fcf850de52ad759e88528a493428e4a16d1404c9618bd59ef15aec53e5bd58ff4205c085f16a5ee6c3d6408caa74d5a9dee6bb0979e3129113985
7
+ data.tar.gz: 0684e0e9659879d7e84d2342637e7d0b0e079783351de7ad7188e0783e63ee439fac20a6d1731903e4fab58c864843379c930d3c9ccc9472a72f53df6a481c52
data/README.md CHANGED
@@ -113,6 +113,7 @@ This plugin uses ruby-kafka producer for writing data. For performance and relia
113
113
 
114
114
  default_topic (string) :default => nil
115
115
  default_partition_key (string) :default => nil
116
+ default_message_key (string) :default => nil
116
117
  output_data_type (json|ltsv|msgpack|attr:<record name>|<formatter name>) :default => json
117
118
  output_include_tag (bool) :default => false
118
119
  output_include_time (bool) :default => false
@@ -158,6 +159,9 @@ If key name `partition_key` exists in a message, this plugin set its value of pa
158
159
  |Set| Exists | Messages which have partition_key record are assigned to the specific partition with parition_key, others are assigned to the specific partition with default_parition_key |
159
160
 
160
161
 
162
+ If key name `message_key` exists in a message, this plugin publishes the value of message_key to kafka and can be read by consumers. Same message key will be assigned to all messages by setting `default_message_key` in config file. If message_key exists and if partition_key is not set explicitly, messsage_key will be used for partitioning.
163
+
164
+
161
165
  ### Buffered output plugin
162
166
 
163
167
  This plugin uses ruby-kafka producer for writing data. This plugin works with recent kafka versions.
@@ -172,6 +176,7 @@ This plugin uses ruby-kafka producer for writing data. This plugin works with re
172
176
 
173
177
  default_topic (string) :default => nil
174
178
  default_partition_key (string) :default => nil
179
+ default_message_key (string) :default => nil
175
180
  output_data_type (json|ltsv|msgpack|attr:<record name>|<formatter name>) :default => json
176
181
  output_include_tag (bool) :default => false
177
182
  output_include_time (bool) :default => false
@@ -12,7 +12,7 @@ Gem::Specification.new do |gem|
12
12
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
13
13
  gem.name = "fluent-plugin-kafka"
14
14
  gem.require_paths = ["lib"]
15
- gem.version = '0.3.4'
15
+ gem.version = '0.3.5'
16
16
  gem.required_ruby_version = ">= 2.1.0"
17
17
 
18
18
  gem.add_dependency "fluentd", [">= 0.10.58", "< 2"]
@@ -16,6 +16,7 @@ DESC
16
16
  :desc => "Path in path for Broker id. Default to /brokers/ids"
17
17
  config_param :default_topic, :string, :default => nil,
18
18
  :desc => "Output topic."
19
+ config_param :default_message_key, :string, :default => nil
19
20
  config_param :default_partition_key, :string, :default => nil
20
21
  config_param :client_id, :string, :default => 'kafka'
21
22
  config_param :output_data_type, :string, :default => 'json',
@@ -25,6 +26,10 @@ DESC
25
26
  config_param :exclude_partition_key, :bool, :default => false,
26
27
  :desc => <<-DESC
27
28
  Set true to remove partition key from data
29
+ DESC
30
+ config_param :exclude_message_key, :bool, :default => false,
31
+ :desc => <<-DESC
32
+ Set true to remove message key from data
28
33
  DESC
29
34
  config_param :exclude_topic_key, :bool, :default => false,
30
35
  :desc => <<-DESC
@@ -167,11 +172,12 @@ DESC
167
172
  record['tag'] = tag if @output_include_tag
168
173
  topic = (@exclude_topic_key ? record.delete('topic') : record['topic']) || @default_topic || tag
169
174
  partition_key = (@exclude_partition_key ? record.delete('partition_key') : record['partition_key']) || @default_partition_key
175
+ message_key = (@exclude_message_key ? record.delete('message_key') : record['message_key']) || @default_message_key
170
176
 
171
177
  value = @formatter_proc.call(tag, time, record)
172
178
 
173
- log.on_trace { log.trace("message send to #{topic} with key: #{partition_key} and value: #{value}.") }
174
- producer.produce(value, topic: topic, partition_key: partition_key)
179
+ log.on_trace { log.trace("message send to #{topic} with partition_key: #{partition_key}, message_key: #{message_key} and value: #{value}.") }
180
+ producer.produce(value, topic: topic, key: message_key, partition_key: partition_key)
175
181
  end
176
182
 
177
183
  producer.deliver_messages
@@ -20,6 +20,7 @@ DESC
20
20
  :desc => "Path in path for Broker id. Default to /brokers/ids"
21
21
  config_param :default_topic, :string, :default => nil,
22
22
  :desc => "Output topic"
23
+ config_param :default_message_key, :string, :default => nil
23
24
  config_param :default_partition_key, :string, :default => nil
24
25
  config_param :client_id, :string, :default => 'kafka'
25
26
  config_param :output_data_type, :string, :default => 'json',
@@ -31,6 +32,10 @@ DESC
31
32
  config_param :exclude_partition_key, :bool, :default => false,
32
33
  :desc => <<-DESC
33
34
  Set true to remove partition key from data
35
+ DESC
36
+ config_param :exclude_message_key, :bool, :default => false,
37
+ :desc => <<-DESC
38
+ Set true to remove partition key from data
34
39
  DESC
35
40
  config_param :exclude_topic_key, :bool, :default => false,
36
41
  :desc => <<-DESC
@@ -224,6 +229,7 @@ DESC
224
229
  record['tag'] = tag if @output_include_tag
225
230
  topic = (@exclude_topic_key ? record.delete('topic'.freeze) : record['topic'.freeze]) || def_topic
226
231
  partition_key = (@exclude_partition_key ? record.delete('partition_key'.freeze) : record['partition_key'.freeze]) || @default_partition_key
232
+ message_key = (@exclude_message_key ? record.delete('message_key'.freeze) : record['message_key'.freeze]) || @default_message_key
227
233
 
228
234
  records_by_topic[topic] ||= 0
229
235
  bytes_by_topic[topic] ||= 0
@@ -241,9 +247,9 @@ DESC
241
247
  messages = 0
242
248
  messages_bytes = 0
243
249
  end
244
- log.on_trace { log.trace("message will send to #{topic} with key: #{partition_key} and value: #{record_buf}.") }
250
+ log.on_trace { log.trace("message will send to #{topic} with partition_key: #{partition_key}, message_key: #{message_key} and value: #{record_buf}.") }
245
251
  messages += 1
246
- producer.produce2(record_buf, topic: topic, partition_key: partition_key)
252
+ producer.produce2(record_buf, topic: topic, key: message_key, partition_key: partition_key)
247
253
  messages_bytes += record_buf_bytes
248
254
 
249
255
  records_by_topic[topic] += 1
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-kafka
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hidemasa Togashi
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-10-20 00:00:00.000000000 Z
12
+ date: 2016-10-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fluentd