fluent-plugin-kafka 0.6.6 → 0.7.0
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/ChangeLog +6 -0
- data/README.md +3 -3
- data/fluent-plugin-kafka.gemspec +1 -1
- data/lib/fluent/plugin/in_kafka.rb +5 -1
- data/lib/fluent/plugin/in_kafka_group.rb +5 -1
- data/lib/fluent/plugin/kafka_plugin_util.rb +6 -0
- data/lib/fluent/plugin/out_kafka.rb +14 -4
- data/lib/fluent/plugin/out_kafka2.rb +15 -5
- data/lib/fluent/plugin/out_kafka_buffered.rb +14 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 82c28fd4a4b133b7ad2685d4bd65b49ce4640b51
|
4
|
+
data.tar.gz: 9e215032a9f21a622abd34185e0d4137daa69fd6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2cabd4dd25b39d84cd1785d4f28b0733719504ceef7c8e39fe55c4179232869de53db740007f423c0825a316a324a52d9bf806795fc3581b6e0f9b59bbcd133b
|
7
|
+
data.tar.gz: 4ccf05ed9a4776a6380988b8ab9c603205cb111c39715c591baaf9473103d882e7535b4369a8189ad33779d6543bc6c01b97b5ac3682d38976ad9fbe179af4b2
|
data/ChangeLog
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
Release 0.7.0 - 2018/02/27
|
2
|
+
|
3
|
+
* output: SASL PLAIN/SCRAM support
|
4
|
+
* input: Fix TimeParser location bug in v1
|
5
|
+
* out_kafka2: Fix warning condition for tag chunk key
|
6
|
+
|
1
7
|
Release 0.6.6 - 2017/12/25
|
2
8
|
|
3
9
|
* output: Make topic/partition/partition_key/message_key configurable
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# fluent-plugin-kafka, a plugin for [Fluentd](http://fluentd.org)
|
2
2
|
|
3
|
-
[](https://travis-ci.org/fluent/fluent-plugin-kafka)
|
4
4
|
|
5
5
|
A fluentd plugin to both consume and produce data for Apache Kafka.
|
6
6
|
|
@@ -213,7 +213,7 @@ If key name `message_key` exists in a message, this plugin publishes the value o
|
|
213
213
|
|
214
214
|
### Output plugin
|
215
215
|
|
216
|
-
This plugin is for v1.0. This will be `out_kafka` plugin in the
|
216
|
+
This plugin is for v1.0. This will be `out_kafka` plugin in the future.
|
217
217
|
|
218
218
|
<match app.**>
|
219
219
|
@type kafka2
|
@@ -242,7 +242,7 @@ This plugin is for v1.0. This will be `out_kafka` plugin in the feature.
|
|
242
242
|
# See fluentd document for buffer related parameters: http://docs.fluentd.org/articles/buffer-plugin-overview
|
243
243
|
# Buffer chunk key should be same with topic_key. If value is not found in the record, default_topic is used.
|
244
244
|
<buffer topic>
|
245
|
-
|
245
|
+
flush_interval 10s
|
246
246
|
</buffer>
|
247
247
|
|
248
248
|
# ruby-kafka producer options
|
data/fluent-plugin-kafka.gemspec
CHANGED
@@ -13,7 +13,7 @@ Gem::Specification.new do |gem|
|
|
13
13
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
14
14
|
gem.name = "fluent-plugin-kafka"
|
15
15
|
gem.require_paths = ["lib"]
|
16
|
-
gem.version = '0.
|
16
|
+
gem.version = '0.7.0'
|
17
17
|
gem.required_ruby_version = ">= 2.1.0"
|
18
18
|
|
19
19
|
gem.add_dependency "fluentd", [">= 0.10.58", "< 2"]
|
@@ -108,7 +108,11 @@ class Fluent::KafkaInput < Fluent::Input
|
|
108
108
|
@parser_proc = setup_parser
|
109
109
|
|
110
110
|
if @use_record_time and @time_format
|
111
|
-
|
111
|
+
if defined?(Fluent::TimeParser)
|
112
|
+
@time_parser = Fluent::TimeParser.new(@time_format)
|
113
|
+
else
|
114
|
+
@time_parser = Fluent::TextParser::TimeParser.new(@time_format)
|
115
|
+
end
|
112
116
|
end
|
113
117
|
end
|
114
118
|
|
@@ -108,7 +108,11 @@ class Fluent::KafkaGroupInput < Fluent::Input
|
|
108
108
|
@fetch_opts[:min_bytes] = @min_bytes if @min_bytes
|
109
109
|
|
110
110
|
if @use_record_time and @time_format
|
111
|
-
|
111
|
+
if defined?(Fluent::TimeParser)
|
112
|
+
@time_parser = Fluent::TimeParser.new(@time_format)
|
113
|
+
else
|
114
|
+
@time_parser = Fluent::TextParser::TimeParser.new(@time_format)
|
115
|
+
end
|
112
116
|
end
|
113
117
|
end
|
114
118
|
|
@@ -31,6 +31,12 @@ module Fluent
|
|
31
31
|
:desc => "a Kerberos principal to use with SASL authentication (GSSAPI)."
|
32
32
|
config_param :keytab, :string, :default => nil,
|
33
33
|
:desc => "a filepath to Kerberos keytab. Must be used with principal."
|
34
|
+
config_param :username, :string, :default => nil,
|
35
|
+
:desc => "a username when using PLAIN/SCRAM SASL authentication"
|
36
|
+
config_param :password, :string, :default => nil,
|
37
|
+
:desc => "a password when using PLAIN/SCRAM SASL authentication"
|
38
|
+
config_param :scram_mechanism, :string, :default => nil,
|
39
|
+
:desc => "if set, use SCRAM authentication with specified mechanism. When unset, default to PLAIN authentication"
|
34
40
|
}
|
35
41
|
end
|
36
42
|
end
|
@@ -97,9 +97,19 @@ DESC
|
|
97
97
|
end
|
98
98
|
begin
|
99
99
|
if @seed_brokers.length > 0
|
100
|
-
@
|
101
|
-
|
102
|
-
|
100
|
+
if @scram_mechanism != nil && @username != nil && @password != nil
|
101
|
+
@kafka = Kafka.new(seed_brokers: @seed_brokers, client_id: @client_id, ssl_ca_cert: read_ssl_file(@ssl_ca_cert),
|
102
|
+
ssl_client_cert: read_ssl_file(@ssl_client_cert), ssl_client_cert_key: read_ssl_file(@ssl_client_cert_key),
|
103
|
+
sasl_scram_username: @username, sasl_scram_password: @password, sasl_scram_mechanism: @scram_mechanism)
|
104
|
+
elsif @username != nil && @password != nil
|
105
|
+
@kafka = Kafka.new(seed_brokers: @seed_brokers, client_id: @client_id, ssl_ca_cert: read_ssl_file(@ssl_ca_cert),
|
106
|
+
ssl_client_cert: read_ssl_file(@ssl_client_cert), ssl_client_cert_key: read_ssl_file(@ssl_client_cert_key),
|
107
|
+
sasl_plain_username: @username, sasl_plain_password: @password)
|
108
|
+
else
|
109
|
+
@kafka = Kafka.new(seed_brokers: @seed_brokers, client_id: @client_id, ssl_ca_cert: read_ssl_file(@ssl_ca_cert),
|
110
|
+
ssl_client_cert: read_ssl_file(@ssl_client_cert), ssl_client_cert_key: read_ssl_file(@ssl_client_cert_key),
|
111
|
+
sasl_gssapi_principal: @principal, sasl_gssapi_keytab: @keytab)
|
112
|
+
end
|
103
113
|
log.info "initialized kafka producer: #{@client_id}"
|
104
114
|
else
|
105
115
|
log.warn "No brokers found on Zookeeper"
|
@@ -115,7 +125,7 @@ DESC
|
|
115
125
|
if @zookeeper
|
116
126
|
require 'zookeeper'
|
117
127
|
else
|
118
|
-
@seed_brokers = @brokers.
|
128
|
+
@seed_brokers = @brokers.split(",")
|
119
129
|
log.info "brokers has been set directly: #{@seed_brokers}"
|
120
130
|
end
|
121
131
|
|
@@ -74,9 +74,19 @@ DESC
|
|
74
74
|
def refresh_client(raise_error = true)
|
75
75
|
begin
|
76
76
|
logger = @get_kafka_client_log ? log : nil
|
77
|
-
@
|
78
|
-
|
79
|
-
|
77
|
+
if @scram_mechanism != nil && @username != nil && @password != nil
|
78
|
+
@kafka = Kafka.new(seed_brokers: @seed_brokers, client_id: @client_id, ssl_ca_cert: read_ssl_file(@ssl_ca_cert),
|
79
|
+
ssl_client_cert: read_ssl_file(@ssl_client_cert), ssl_client_cert_key: read_ssl_file(@ssl_client_cert_key),
|
80
|
+
sasl_scram_username: @username, sasl_scram_password: @password, sasl_scram_mechanism: @scram_mechanism)
|
81
|
+
elsif @username != nil && @password != nil
|
82
|
+
@kafka = Kafka.new(seed_brokers: @seed_brokers, client_id: @client_id, ssl_ca_cert: read_ssl_file(@ssl_ca_cert),
|
83
|
+
ssl_client_cert: read_ssl_file(@ssl_client_cert), ssl_client_cert_key: read_ssl_file(@ssl_client_cert_key),
|
84
|
+
sasl_plain_username: @username, sasl_plain_password: @password)
|
85
|
+
else
|
86
|
+
@kafka = Kafka.new(seed_brokers: @seed_brokers, client_id: @client_id, ssl_ca_cert: read_ssl_file(@ssl_ca_cert),
|
87
|
+
ssl_client_cert: read_ssl_file(@ssl_client_cert), ssl_client_cert_key: read_ssl_file(@ssl_client_cert_key),
|
88
|
+
sasl_gssapi_principal: @principal, sasl_gssapi_keytab: @keytab)
|
89
|
+
end
|
80
90
|
log.info "initialized kafka producer: #{@client_id}"
|
81
91
|
rescue Exception => e
|
82
92
|
if raise_error # During startup, error should be reported to engine and stop its phase for safety.
|
@@ -106,11 +116,11 @@ DESC
|
|
106
116
|
@formatter_proc = setup_formatter(formatter_conf)
|
107
117
|
|
108
118
|
if @default_topic.nil?
|
109
|
-
if @chunk_keys.include?('topic') && !@
|
119
|
+
if @chunk_keys.include?('topic') && !@chunk_key_tag
|
110
120
|
log.warn "Use 'topic' field of event record for topic but no fallback. Recommend to set default_topic or set 'tag' in buffer chunk keys like <buffer topic,tag>"
|
111
121
|
end
|
112
122
|
else
|
113
|
-
if @
|
123
|
+
if @chunk_key_tag
|
114
124
|
log.warn "default_topic is set. Fluentd's event tag is not used for topic"
|
115
125
|
end
|
116
126
|
end
|
@@ -119,9 +119,19 @@ DESC
|
|
119
119
|
begin
|
120
120
|
if @seed_brokers.length > 0
|
121
121
|
logger = @get_kafka_client_log ? log : nil
|
122
|
-
@
|
123
|
-
|
124
|
-
|
122
|
+
if @scram_mechanism != nil && @username != nil && @password != nil
|
123
|
+
@kafka = Kafka.new(seed_brokers: @seed_brokers, client_id: @client_id, ssl_ca_cert: read_ssl_file(@ssl_ca_cert),
|
124
|
+
ssl_client_cert: read_ssl_file(@ssl_client_cert), ssl_client_cert_key: read_ssl_file(@ssl_client_cert_key),
|
125
|
+
sasl_scram_username: @username, sasl_scram_password: @password, sasl_scram_mechanism: @scram_mechanism)
|
126
|
+
elsif @username != nil && @password != nil
|
127
|
+
@kafka = Kafka.new(seed_brokers: @seed_brokers, client_id: @client_id, ssl_ca_cert: read_ssl_file(@ssl_ca_cert),
|
128
|
+
ssl_client_cert: read_ssl_file(@ssl_client_cert), ssl_client_cert_key: read_ssl_file(@ssl_client_cert_key),
|
129
|
+
sasl_plain_username: @username, sasl_plain_password: @password)
|
130
|
+
else
|
131
|
+
@kafka = Kafka.new(seed_brokers: @seed_brokers, client_id: @client_id, ssl_ca_cert: read_ssl_file(@ssl_ca_cert),
|
132
|
+
ssl_client_cert: read_ssl_file(@ssl_client_cert), ssl_client_cert_key: read_ssl_file(@ssl_client_cert_key),
|
133
|
+
sasl_gssapi_principal: @principal, sasl_gssapi_keytab: @keytab)
|
134
|
+
end
|
125
135
|
log.info "initialized kafka producer: #{@client_id}"
|
126
136
|
else
|
127
137
|
log.warn "No brokers found on Zookeeper"
|
@@ -141,7 +151,7 @@ DESC
|
|
141
151
|
if @zookeeper
|
142
152
|
require 'zookeeper'
|
143
153
|
else
|
144
|
-
@seed_brokers = @brokers.
|
154
|
+
@seed_brokers = @brokers.split(",")
|
145
155
|
log.info "brokers has been set directly: #{@seed_brokers}"
|
146
156
|
end
|
147
157
|
|
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.
|
4
|
+
version: 0.7.0
|
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:
|
12
|
+
date: 2018-02-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fluentd
|