logstash-output-kafka 2.0.4 → 2.0.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 +4 -4
- data/lib/logstash/outputs/kafka.rb +4 -1
- data/logstash-output-kafka.gemspec +2 -3
- data/spec/integration/outputs/kafka_spec.rb +4 -42
- metadata +21 -38
- data/vendor/jar-dependencies/runtime-jars/kafka-clients-0.9.0.1.jar +0 -0
- data/vendor/jar-dependencies/runtime-jars/slf4j-api-1.7.13.jar +0 -0
- data/vendor/jar-dependencies/runtime-jars/slf4j-noop-1.7.13.jar +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7b5b8efdd636a8bb4e471b679485d416f945db02
|
4
|
+
data.tar.gz: c01e2b497f395cbbcba1337f27b84bb018ad3aea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a856a0c4fe61dead3491d53fd10eaae3bd9582efbb77392f4649a01b88e08934e765cb7eb0dfb55486f3e832af7fc5c248770dfcaa5226bc47d4485fd1cca999
|
7
|
+
data.tar.gz: 261084bc6d8b42e46e202e50b7f419515be42206d57415d00b9f9e00ede642c238ec8154c6348a14d0313d1d82646d0d44ad5e9df63cdbadc5996931186f2178
|
@@ -38,7 +38,10 @@ class LogStash::Outputs::Kafka < LogStash::Outputs::Base
|
|
38
38
|
config :key_serializer, :validate => :string, :default => 'org.apache.kafka.common.serialization.StringSerializer'
|
39
39
|
# Serializer class for the value of the message
|
40
40
|
config :value_serializer, :validate => :string, :default => 'org.apache.kafka.common.serialization.StringSerializer'
|
41
|
-
# The key
|
41
|
+
# The key that will be included with the record
|
42
|
+
#
|
43
|
+
# If a `message_key` is present, a partition will be chosen using a hash of the key.
|
44
|
+
# If not present, a partition for the message will be assigned in a round-robin fashion.
|
42
45
|
config :message_key, :validate => :string
|
43
46
|
# The number of acknowledgments the producer requires the leader to have received
|
44
47
|
# before considering a request complete.
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
|
3
3
|
s.name = 'logstash-output-kafka'
|
4
|
-
s.version = '2.0.
|
4
|
+
s.version = '2.0.5'
|
5
5
|
s.licenses = ['Apache License (2.0)']
|
6
6
|
s.summary = 'Output events to a Kafka topic. This uses the Kafka Producer API to write messages to a topic on the broker'
|
7
7
|
s.description = "This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not a stand-alone program"
|
@@ -24,9 +24,8 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.add_runtime_dependency 'logstash-codec-plain'
|
25
25
|
s.add_runtime_dependency 'logstash-codec-json'
|
26
26
|
|
27
|
-
s.add_runtime_dependency 'jruby-kafka', '1.
|
27
|
+
s.add_runtime_dependency 'jruby-kafka', '1.5.0'
|
28
28
|
|
29
29
|
s.add_development_dependency 'logstash-devutils'
|
30
30
|
s.add_development_dependency 'poseidon'
|
31
|
-
s.add_development_dependency 'longshoreman'
|
32
31
|
end
|
@@ -2,55 +2,20 @@
|
|
2
2
|
|
3
3
|
require "logstash/devutils/rspec/spec_helper"
|
4
4
|
require 'logstash/outputs/kafka'
|
5
|
-
require 'longshoreman'
|
6
5
|
require 'jruby-kafka'
|
7
6
|
require 'json'
|
8
7
|
require 'poseidon'
|
9
8
|
|
10
|
-
CONTAINER_NAME = "kafka-#{rand(999).to_s}"
|
11
|
-
IMAGE_NAME = 'spotify/kafka'
|
12
|
-
IMAGE_TAG = 'latest'
|
13
|
-
KAFKA_PORT = 9092
|
14
|
-
KAFKA_VERSION = "0.8.2.1"
|
15
|
-
KAFKA_SCALA_VERSION = "2.11"
|
16
|
-
|
17
|
-
RSpec.configure do |config|
|
18
|
-
config.before(:all, :integration => true) do
|
19
|
-
@ls = begin
|
20
|
-
ls = Longshoreman.new
|
21
|
-
ls.container.get(CONTAINER_NAME)
|
22
|
-
ls
|
23
|
-
rescue Docker::Error::NotFoundError
|
24
|
-
Longshoreman.pull_image(IMAGE_NAME, IMAGE_TAG)
|
25
|
-
Longshoreman.new("#{IMAGE_NAME}:#{IMAGE_TAG}", CONTAINER_NAME,
|
26
|
-
{ "ENV" => [ "ADVERTISED_HOST=#{Longshoreman.new.get_host_ip}", "ADVERTISED_PORT=#{KAFKA_PORT}"],
|
27
|
-
"PortBindings" => { "#{KAFKA_PORT}/tcp" => [{ "HostPort" => "#{KAFKA_PORT}" }]}})
|
28
|
-
end
|
29
|
-
@kafka_host = @ls.get_host_ip
|
30
|
-
@kafka_port = @ls.container.rport(9092)
|
31
|
-
@zk_port = @ls.container.rport(2181)
|
32
|
-
end
|
33
|
-
|
34
|
-
config.after(:suite) do
|
35
|
-
begin
|
36
|
-
ls = Longshoreman::new
|
37
|
-
ls.container.get(CONTAINER_NAME)
|
38
|
-
ls.cleanup
|
39
|
-
rescue Docker::Error::NotFoundError, Excon::Errors::SocketError
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
9
|
describe "outputs/kafka", :integration => true do
|
45
10
|
let(:test_topic) { 'test' }
|
46
|
-
let(:base_config) { {'client_id' => 'spectest'
|
11
|
+
let(:base_config) { {'client_id' => 'spectest' } }
|
47
12
|
let(:event) { LogStash::Event.new({'message' => 'hello', '@timestamp' => LogStash::Timestamp.at(0) }) }
|
48
13
|
|
49
14
|
|
50
15
|
context 'when outputting messages' do
|
51
16
|
let(:num_events) { 3 }
|
52
17
|
let(:consumer) do
|
53
|
-
Poseidon::PartitionConsumer.new("my_test_consumer",
|
18
|
+
Poseidon::PartitionConsumer.new("my_test_consumer", "localhost", 9092,
|
54
19
|
test_topic, 0, :earliest_offset)
|
55
20
|
end
|
56
21
|
subject do
|
@@ -77,18 +42,15 @@ describe "outputs/kafka", :integration => true do
|
|
77
42
|
let(:num_events) { 10 }
|
78
43
|
let(:test_topic) { 'test2' }
|
79
44
|
let!(:consumer0) do
|
80
|
-
Poseidon::PartitionConsumer.new("
|
45
|
+
Poseidon::PartitionConsumer.new("my_test_consumer2", "localhost", 9092,
|
81
46
|
test_topic, 0, :earliest_offset)
|
82
47
|
end
|
83
48
|
let!(:consumer1) do
|
84
|
-
Poseidon::PartitionConsumer.new("
|
49
|
+
Poseidon::PartitionConsumer.new("my_test_consumer2", "localhost", 9092,
|
85
50
|
test_topic, 1, :earliest_offset)
|
86
51
|
end
|
87
52
|
|
88
53
|
before :each do
|
89
|
-
command = ["/opt/kafka_#{KAFKA_SCALA_VERSION}-#{KAFKA_VERSION}/bin/kafka-topics.sh", "--create", "--topic", "#{test_topic}", "--partitions", "2", "--zookeeper", "#{@kafka_host}:#{@zk_port}", "--replication-factor", "1"]
|
90
|
-
@ls.container.raw.exec(command)
|
91
|
-
|
92
54
|
config = base_config.merge({"topic_id" => test_topic, "message_key" => "static_key"})
|
93
55
|
kafka = LogStash::Outputs::Kafka.new(config)
|
94
56
|
kafka.register
|
metadata
CHANGED
@@ -1,113 +1,99 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-output-kafka
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elasticsearch
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-04-
|
11
|
+
date: 2016-04-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
requirement: !ruby/object:Gem::Requirement
|
15
|
-
requirements:
|
16
|
-
- - ~>
|
17
|
-
- !ruby/object:Gem::Version
|
18
|
-
version: '1.0'
|
19
14
|
name: logstash-core-plugin-api
|
20
|
-
prerelease: false
|
21
|
-
type: :runtime
|
22
15
|
version_requirements: !ruby/object:Gem::Requirement
|
23
16
|
requirements:
|
24
17
|
- - ~>
|
25
18
|
- !ruby/object:Gem::Version
|
26
19
|
version: '1.0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
20
|
requirement: !ruby/object:Gem::Requirement
|
29
21
|
requirements:
|
30
|
-
- -
|
22
|
+
- - ~>
|
31
23
|
- !ruby/object:Gem::Version
|
32
|
-
version: '0'
|
33
|
-
name: logstash-codec-plain
|
24
|
+
version: '1.0'
|
34
25
|
prerelease: false
|
35
26
|
type: :runtime
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: logstash-codec-plain
|
36
29
|
version_requirements: !ruby/object:Gem::Requirement
|
37
30
|
requirements:
|
38
31
|
- - '>='
|
39
32
|
- !ruby/object:Gem::Version
|
40
33
|
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
34
|
requirement: !ruby/object:Gem::Requirement
|
43
35
|
requirements:
|
44
36
|
- - '>='
|
45
37
|
- !ruby/object:Gem::Version
|
46
38
|
version: '0'
|
47
|
-
name: logstash-codec-json
|
48
39
|
prerelease: false
|
49
40
|
type: :runtime
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: logstash-codec-json
|
50
43
|
version_requirements: !ruby/object:Gem::Requirement
|
51
44
|
requirements:
|
52
45
|
- - '>='
|
53
46
|
- !ruby/object:Gem::Version
|
54
47
|
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
48
|
requirement: !ruby/object:Gem::Requirement
|
57
49
|
requirements:
|
58
|
-
- - '
|
50
|
+
- - '>='
|
59
51
|
- !ruby/object:Gem::Version
|
60
|
-
version:
|
61
|
-
name: jruby-kafka
|
52
|
+
version: '0'
|
62
53
|
prerelease: false
|
63
54
|
type: :runtime
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: jruby-kafka
|
64
57
|
version_requirements: !ruby/object:Gem::Requirement
|
65
58
|
requirements:
|
66
59
|
- - '='
|
67
60
|
- !ruby/object:Gem::Version
|
68
|
-
version: 1.
|
69
|
-
- !ruby/object:Gem::Dependency
|
61
|
+
version: 1.5.0
|
70
62
|
requirement: !ruby/object:Gem::Requirement
|
71
63
|
requirements:
|
72
|
-
- - '
|
64
|
+
- - '='
|
73
65
|
- !ruby/object:Gem::Version
|
74
|
-
version:
|
75
|
-
name: logstash-devutils
|
66
|
+
version: 1.5.0
|
76
67
|
prerelease: false
|
77
|
-
type: :
|
68
|
+
type: :runtime
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: logstash-devutils
|
78
71
|
version_requirements: !ruby/object:Gem::Requirement
|
79
72
|
requirements:
|
80
73
|
- - '>='
|
81
74
|
- !ruby/object:Gem::Version
|
82
75
|
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
76
|
requirement: !ruby/object:Gem::Requirement
|
85
77
|
requirements:
|
86
78
|
- - '>='
|
87
79
|
- !ruby/object:Gem::Version
|
88
80
|
version: '0'
|
89
|
-
name: poseidon
|
90
81
|
prerelease: false
|
91
82
|
type: :development
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: poseidon
|
92
85
|
version_requirements: !ruby/object:Gem::Requirement
|
93
86
|
requirements:
|
94
87
|
- - '>='
|
95
88
|
- !ruby/object:Gem::Version
|
96
89
|
version: '0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
90
|
requirement: !ruby/object:Gem::Requirement
|
99
91
|
requirements:
|
100
92
|
- - '>='
|
101
93
|
- !ruby/object:Gem::Version
|
102
94
|
version: '0'
|
103
|
-
name: longshoreman
|
104
95
|
prerelease: false
|
105
96
|
type: :development
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - '>='
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
111
97
|
description: This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not a stand-alone program
|
112
98
|
email: info@elastic.co
|
113
99
|
executables: []
|
@@ -125,9 +111,6 @@ files:
|
|
125
111
|
- logstash-output-kafka.gemspec
|
126
112
|
- spec/integration/outputs/kafka_spec.rb
|
127
113
|
- spec/unit/outputs/kafka_spec.rb
|
128
|
-
- vendor/jar-dependencies/runtime-jars/kafka-clients-0.9.0.1.jar
|
129
|
-
- vendor/jar-dependencies/runtime-jars/slf4j-api-1.7.13.jar
|
130
|
-
- vendor/jar-dependencies/runtime-jars/slf4j-noop-1.7.13.jar
|
131
114
|
homepage: http://www.elastic.co/guide/en/logstash/current/index.html
|
132
115
|
licenses:
|
133
116
|
- Apache License (2.0)
|
@@ -150,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
150
133
|
version: '0'
|
151
134
|
requirements: []
|
152
135
|
rubyforge_project:
|
153
|
-
rubygems_version: 2.4.
|
136
|
+
rubygems_version: 2.4.8
|
154
137
|
signing_key:
|
155
138
|
specification_version: 4
|
156
139
|
summary: Output events to a Kafka topic. This uses the Kafka Producer API to write messages to a topic on the broker
|
Binary file
|
Binary file
|
Binary file
|