fluent-plugin-kafka-enchanced 0.5.10 → 0.5.11

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: fccd71b5e7d89f156703d465fe21780d44b333ce
4
- data.tar.gz: 0cee930d56cf656c5c5c0826a8aced5ab14f92bc
3
+ metadata.gz: 2637f5d354feed7fd9a579446e40942b968541fe
4
+ data.tar.gz: cbe27f4f4510e3fe8da693eccddd71e6254520d3
5
5
  SHA512:
6
- metadata.gz: f88b27ee87ce61afcffb47528a974ba4f10dc864c56d3e7ef6561d5faf0a9155f85651a1bf3602a6a4fd76792b38908cb94da9b001cd0ef653f50831c0e5c0c6
7
- data.tar.gz: 76f4ada2526ef2e986ad89afdebe26a8721cd38407752abdba87f4406ecba4857515af1998d08fa42079eef80de1445dcdeadd1bc4daa009742f5c2ed5644a5f
6
+ metadata.gz: 0b72a8f89543e82dbe3048d740d11055870e6366283f16347098c074995437547746dfc5891a6f3a655a69d07bc660418489ce6ef54d0ef9e260c69bab68c6e9
7
+ data.tar.gz: 16c93a3a4b48a65a4ea58c40422f4e67a371f3e1d7d6309062ea585040af35716f414d9110d53fd5442c43ffdc94077e6b23cb981a2a24c0e132e86d0cd57c92
@@ -5,14 +5,14 @@ Gem::Specification.new do |gem|
5
5
  gem.email = ["zhr0n4x@gmail.com"]
6
6
  gem.description = %q{Fluentd plugin for Apache Kafka > 0.8}
7
7
  gem.summary = %q{Fluentd plugin for Apache Kafka > 0.8}
8
- gem.homepage = "https://github.com/fluent/fluent-plugin-kafka"
8
+ gem.homepage = "https://github.com/zhron4x/fluent-plugin-kafka-enchanced"
9
9
 
10
10
  gem.files = `git ls-files`.split($\)
11
11
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
12
12
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
13
13
  gem.name = "fluent-plugin-kafka-enchanced"
14
14
  gem.require_paths = ["lib"]
15
- gem.version = '0.5.10'
15
+ gem.version = '0.5.11'
16
16
  gem.required_ruby_version = ">= 2.1.0"
17
17
 
18
18
  gem.add_dependency "fluentd", [">= 0.10.58", "< 2"]
@@ -18,6 +18,8 @@ Set brokers via Zookeeper:
18
18
  DESC
19
19
  config_param :zookeeper_path, :string, :default => '/brokers/ids',
20
20
  :desc => "Path in path for Broker id. Default to /brokers/ids"
21
+ config_param :schema_registry, :string, :default => nil,
22
+ :desc => "Set Avro Schema Registry: <schema_registry_host>:<schema_registry_port>"
21
23
  config_param :default_topic, :string, :default => nil,
22
24
  :desc => "Output topic"
23
25
  config_param :default_message_key, :string, :default => nil
@@ -192,6 +194,25 @@ DESC
192
194
  elsif @output_data_type == 'msgpack'
193
195
  require 'msgpack'
194
196
  Proc.new { |tag, time, record| record.to_msgpack }
197
+ elsif @output_data_type == 'avro'
198
+ require "avro_turf"
199
+ require 'avro_turf/messaging'
200
+ require "avro/builder"
201
+ Proc.new do |tag, time, record|
202
+ record = record.select{|key, value| key.present?}
203
+ record['enchilada_timestamp'] = (Time.new).strftime('%s%3N')
204
+ fields = record.keys.map{|key| {'name' => key, 'type' => 'string'}}
205
+ schema_name = "#{tag.to_s.gsub('.', '_')}"
206
+ schema_json = {
207
+ "type": "record",
208
+ "name": schema_name,
209
+ "fields": fields
210
+ }.to_json
211
+ schema = Avro::Schema.parse(schema_json)
212
+
213
+ avro = AvroTurf::Messaging.new(registry_url: @schema_registry)
214
+ avro.encode(record.map{|key, value| [key, value.to_s]}.to_h, schema: schema, subject: "#{schema_name}-value")
215
+ end
195
216
  elsif @output_data_type =~ /^attr:(.*)$/
196
217
  @custom_attributes = $1.split(',').map(&:strip).reject(&:empty?)
197
218
  @custom_attributes.unshift('time') if @output_include_time
@@ -210,7 +231,7 @@ DESC
210
231
 
211
232
  def write(chunk)
212
233
  tag = chunk.key
213
- def_topic = @default_topic || tag
234
+ def_topic = @default_topic || tag.to_s.gsub('.', '_')
214
235
  producer = get_producer
215
236
 
216
237
  records_by_topic = {}
@@ -277,3 +298,4 @@ DESC
277
298
  raise e
278
299
  end
279
300
  end
301
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-kafka-enchanced
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.10
4
+ version: 0.5.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paschenko Konstantin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-24 00:00:00.000000000 Z
11
+ date: 2017-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd
@@ -152,7 +152,7 @@ files:
152
152
  - lib/fluent/plugin/out_kafka_buffered.rb
153
153
  - test/helper.rb
154
154
  - test/plugin/test_out_kafka.rb
155
- homepage: https://github.com/fluent/fluent-plugin-kafka
155
+ homepage: https://github.com/zhron4x/fluent-plugin-kafka-enchanced
156
156
  licenses: []
157
157
  metadata: {}
158
158
  post_install_message: