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 +4 -4
- data/fluent-plugin-kafka.gemspec +2 -2
- data/lib/fluent/plugin/out_kafka_buffered.rb +23 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2637f5d354feed7fd9a579446e40942b968541fe
|
4
|
+
data.tar.gz: cbe27f4f4510e3fe8da693eccddd71e6254520d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b72a8f89543e82dbe3048d740d11055870e6366283f16347098c074995437547746dfc5891a6f3a655a69d07bc660418489ce6ef54d0ef9e260c69bab68c6e9
|
7
|
+
data.tar.gz: 16c93a3a4b48a65a4ea58c40422f4e67a371f3e1d7d6309062ea585040af35716f414d9110d53fd5442c43ffdc94077e6b23cb981a2a24c0e132e86d0cd57c92
|
data/fluent-plugin-kafka.gemspec
CHANGED
@@ -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/
|
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.
|
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.
|
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-
|
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/
|
155
|
+
homepage: https://github.com/zhron4x/fluent-plugin-kafka-enchanced
|
156
156
|
licenses: []
|
157
157
|
metadata: {}
|
158
158
|
post_install_message:
|