logstash-output-rabbitmq 1.1.2-java → 3.0.1-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/Gemfile +1 -1
- data/README.md +3 -85
- data/lib/logstash/outputs/rabbitmq.rb +56 -178
- data/logstash-output-rabbitmq.gemspec +4 -4
- data/spec/outputs/rabbitmq_spec.rb +74 -48
- metadata +21 -24
- data/.gitignore +0 -4
- data/Rakefile +0 -7
- data/examples/sample.conf +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 89f6e5f8795784e82af0619ddaff8931f40895ec
|
4
|
+
data.tar.gz: 952f9b827d7b5612fa5729e0ccef00e6d93a5076
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cb144570bebf2736e084cbc29002e3edd971f9a3b1f930b3292d342b3f277e53c91b7ef29827e7c9424e84590cb9d8684b7c7d480ad80bbd9969a2991f133316
|
7
|
+
data.tar.gz: cd0aa6c48edb51096ac223028e8e9c6ebc6c17a10b94e921639596e4feb1a3e0460346787b55424887f37aa566088fe0589dfcadc0605ca4a1494d1bc07c055c
|
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
|
-
gemspec
|
2
|
+
gemspec
|
data/README.md
CHANGED
@@ -1,86 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# About this plugin
|
2
2
|
|
3
|
-
This is a
|
4
|
-
|
5
|
-
It is fully free and fully open source. The license is Apache 2.0, meaning you are pretty much free to use it however you want in whatever way.
|
6
|
-
|
7
|
-
## Documentation
|
8
|
-
|
9
|
-
Logstash provides infrastructure to automatically generate documentation for this plugin. We use the asciidoc format to write documentation so any comments in the source code will be first converted into asciidoc and then into html. All plugin documentation are placed under one [central location](http://www.elastic.co/guide/en/logstash/current/).
|
10
|
-
|
11
|
-
- For formatting code or config example, you can use the asciidoc `[source,ruby]` directive
|
12
|
-
- For more asciidoc formatting tips, see the excellent reference here https://github.com/elastic/docs#asciidoc-guide
|
13
|
-
|
14
|
-
## Need Help?
|
15
|
-
|
16
|
-
Need help? Try #logstash on freenode IRC or the https://discuss.elastic.co/c/logstash discussion forum.
|
17
|
-
|
18
|
-
## Developing
|
19
|
-
|
20
|
-
### 1. Plugin Developement and Testing
|
21
|
-
|
22
|
-
#### Code
|
23
|
-
- To get started, you'll need JRuby with the Bundler gem installed.
|
24
|
-
|
25
|
-
- Create a new plugin or clone and existing from the GitHub [logstash-plugins](https://github.com/logstash-plugins) organization. We also provide [example plugins](https://github.com/logstash-plugins?query=example).
|
26
|
-
|
27
|
-
- Install dependencies
|
28
|
-
```sh
|
29
|
-
bundle install
|
30
|
-
```
|
31
|
-
|
32
|
-
#### Test
|
33
|
-
|
34
|
-
- Update your dependencies
|
35
|
-
|
36
|
-
```sh
|
37
|
-
bundle install
|
38
|
-
```
|
39
|
-
|
40
|
-
- Run tests
|
41
|
-
|
42
|
-
```sh
|
43
|
-
bundle exec rspec
|
44
|
-
```
|
45
|
-
|
46
|
-
### 2. Running your unpublished Plugin in Logstash
|
47
|
-
|
48
|
-
#### 2.1 Run in a local Logstash clone
|
49
|
-
|
50
|
-
- Edit Logstash `Gemfile` and add the local plugin path, for example:
|
51
|
-
```ruby
|
52
|
-
gem "logstash-filter-awesome", :path => "/your/local/logstash-filter-awesome"
|
53
|
-
```
|
54
|
-
- Install plugin
|
55
|
-
```sh
|
56
|
-
bin/plugin install --no-verify
|
57
|
-
```
|
58
|
-
- Run Logstash with your plugin
|
59
|
-
```sh
|
60
|
-
bin/logstash -e 'filter {awesome {}}'
|
61
|
-
```
|
62
|
-
At this point any modifications to the plugin code will be applied to this local Logstash setup. After modifying the plugin, simply rerun Logstash.
|
63
|
-
|
64
|
-
#### 2.2 Run in an installed Logstash
|
65
|
-
|
66
|
-
You can use the same **2.1** method to run your plugin in an installed Logstash by editing its `Gemfile` and pointing the `:path` to your local plugin development directory or you can build the gem and install it using:
|
67
|
-
|
68
|
-
- Build your plugin gem
|
69
|
-
```sh
|
70
|
-
gem build logstash-filter-awesome.gemspec
|
71
|
-
```
|
72
|
-
- Install the plugin from the Logstash home
|
73
|
-
```sh
|
74
|
-
bin/plugin install /your/local/plugin/logstash-filter-awesome.gem
|
75
|
-
```
|
76
|
-
- Start Logstash and proceed to test the plugin
|
77
|
-
|
78
|
-
## Contributing
|
79
|
-
|
80
|
-
All contributions are welcome: ideas, patches, documentation, bug reports, complaints, and even something you drew up on a napkin.
|
81
|
-
|
82
|
-
Programming is not a required skill. Whatever you've seen about open source and maintainers or community members saying "send patches or die" - you will not see that here.
|
83
|
-
|
84
|
-
It is more important to the community that you are able to contribute.
|
85
|
-
|
86
|
-
For more information about contributing, see the [CONTRIBUTING](https://github.com/elastic/logstash/blob/master/CONTRIBUTING.md) file.
|
3
|
+
This is a mixin supporting the logstash rabbitmq inputs and outputs. If you plan on writing a logstash plugin using
|
4
|
+
rabbitmq this may be useful.
|
@@ -1,8 +1,6 @@
|
|
1
|
-
# encoding:
|
2
|
-
require "logstash/
|
3
|
-
require "logstash/
|
4
|
-
require "march_hare"
|
5
|
-
require "java"
|
1
|
+
# encoding: UTF-8
|
2
|
+
require "logstash/pipeline"
|
3
|
+
require "logstash/plugin_mixins/rabbitmq_connection"
|
6
4
|
|
7
5
|
# Push events to a RabbitMQ exchange. Requires RabbitMQ 2.x
|
8
6
|
# or later version (3.x is recommended).
|
@@ -11,178 +9,58 @@ require "java"
|
|
11
9
|
#
|
12
10
|
# * http://www.rabbitmq.com/[RabbitMQ]
|
13
11
|
# * http://rubymarchhare.info[March Hare]
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
def initialize(params)
|
69
|
-
params["codec"] = "json" if !params["codec"]
|
70
|
-
|
71
|
-
super
|
72
|
-
end
|
73
|
-
|
74
|
-
public
|
75
|
-
def register
|
76
|
-
connect!
|
77
|
-
@codec.on_event(&method(:publish))
|
78
|
-
end
|
79
|
-
|
80
|
-
public
|
81
|
-
def receive(event)
|
82
|
-
return unless output?(event)
|
83
|
-
|
84
|
-
@codec.encode(event)
|
85
|
-
rescue StandardError => e
|
86
|
-
@logger.warn("Error encoding event", :exception => e, :event => event)
|
87
|
-
end
|
88
|
-
|
89
|
-
private
|
90
|
-
def publish(event, message)
|
91
|
-
@hare_info.exchange.publish(message, :routing_key => event.sprintf(@key), :properties => { :persistent => @persistent })
|
92
|
-
rescue MarchHare::Exception, IOError, com.rabbitmq.client.AlreadyClosedException => e
|
93
|
-
return if terminating?
|
94
|
-
|
95
|
-
@logger.error("Error while publishing. Will retry.",
|
96
|
-
:message => e.message,
|
97
|
-
:exception => e.class,
|
98
|
-
:backtrace => e.backtrace)
|
99
|
-
|
100
|
-
sleep_for_retry
|
101
|
-
retry
|
102
|
-
end
|
103
|
-
|
104
|
-
public
|
105
|
-
def to_s
|
106
|
-
return "<LogStash::RabbitMQ::Output: amqp://#{@user}@#{@host}:#{@port}#{@vhost}/#{@exchange_type}/#{@exchange}\##{@key}>"
|
107
|
-
end
|
108
|
-
|
109
|
-
public
|
110
|
-
def teardown
|
111
|
-
@hare_info.connection.close if connection_open?
|
112
|
-
|
113
|
-
finished
|
114
|
-
end
|
115
|
-
|
116
|
-
private
|
117
|
-
def settings
|
118
|
-
return @settings if @settings
|
119
|
-
|
120
|
-
s = {
|
121
|
-
:vhost => @vhost,
|
122
|
-
:host => @host,
|
123
|
-
:port => @port,
|
124
|
-
:user => @user,
|
125
|
-
:automatic_recovery => @automatic_recovery,
|
126
|
-
:pass => @password ? @password.value : "guest",
|
127
|
-
}
|
128
|
-
s[:tls] = @ssl if @ssl
|
129
|
-
@settings = s
|
130
|
-
end
|
131
|
-
|
132
|
-
private
|
133
|
-
def connect
|
134
|
-
@logger.debug("Connecting to RabbitMQ. Settings: #{settings.inspect}, queue: #{@queue.inspect}")
|
135
|
-
|
136
|
-
|
137
|
-
connection = MarchHare.connect(settings)
|
138
|
-
connection.on_blocked { @logger.warn("RabbitMQ output blocked! Check your RabbitMQ instance!") }
|
139
|
-
connection.on_unblocked { @logger.warn("RabbitMQ output unblocked!") }
|
140
|
-
|
141
|
-
channel = connection.create_channel
|
142
|
-
@logger.info("Connected to RabbitMQ at #{settings[:host]}")
|
143
|
-
|
144
|
-
exchange = declare_exchange!(channel)
|
145
|
-
|
146
|
-
HareInfo.new(connection, channel, exchange)
|
147
|
-
end
|
148
|
-
|
149
|
-
private
|
150
|
-
def declare_exchange!(channel)
|
151
|
-
@logger.debug("Declaring an exchange", :name => @exchange,
|
152
|
-
:type => @exchange_type, :durable => @durable)
|
153
|
-
exchange = channel.exchange(@exchange, :type => @exchange_type.to_sym, :durable => @durable)
|
154
|
-
@logger.debug("Exchange declared")
|
155
|
-
exchange
|
156
|
-
rescue StandardError => e
|
157
|
-
@logger.error("Could not declare exchange!",
|
158
|
-
:exchange => @exchange, :type => @exchange_type,
|
159
|
-
:durable => @durable, :error_class => e.class.name,
|
160
|
-
:error_message => e.message, :backtrace => e.backtrace)
|
161
|
-
raise e
|
162
|
-
end
|
163
|
-
|
164
|
-
private
|
165
|
-
def connect!
|
166
|
-
@hare_info = connect()
|
167
|
-
rescue MarchHare::Exception => e
|
168
|
-
return if terminating?
|
169
|
-
|
170
|
-
@logger.error("RabbitMQ connection error, will retry.",
|
171
|
-
:message => e.message,
|
172
|
-
:exception => e.class.name,
|
173
|
-
:backtrace => e.backtrace)
|
174
|
-
|
175
|
-
sleep_for_retry
|
176
|
-
retry
|
177
|
-
end
|
178
|
-
|
179
|
-
private
|
180
|
-
def connection_open?
|
181
|
-
@hare_info && @hare_info.connection && @hare_info.connection.open?
|
182
|
-
end
|
183
|
-
|
184
|
-
private
|
185
|
-
def sleep_for_retry
|
186
|
-
sleep @connect_retry_interval
|
12
|
+
module LogStash
|
13
|
+
module Outputs
|
14
|
+
class RabbitMQ < LogStash::Outputs::Base
|
15
|
+
include LogStash::PluginMixins::RabbitMQConnection
|
16
|
+
|
17
|
+
# Key to route to by default. Defaults to 'logstash'
|
18
|
+
#
|
19
|
+
# * Routing keys are ignored on fanout exchanges.
|
20
|
+
config :key, :validate => :string, :default => "logstash"
|
21
|
+
|
22
|
+
# The name of the exchange
|
23
|
+
config :exchange, :validate => :string, :required => true
|
24
|
+
|
25
|
+
# The exchange type (fanout, topic, direct)
|
26
|
+
config :exchange_type, :validate => EXCHANGE_TYPES, :required => true
|
27
|
+
|
28
|
+
# Is this exchange durable? (aka; Should it survive a broker restart?)
|
29
|
+
config :durable, :validate => :boolean, :default => true
|
30
|
+
|
31
|
+
# Should RabbitMQ persist messages to disk?
|
32
|
+
config :persistent, :validate => :boolean, :default => true
|
33
|
+
|
34
|
+
def register
|
35
|
+
connect!
|
36
|
+
@hare_info.exchange = declare_exchange!(@hare_info.channel, @exchange, @exchange_type, @durable)
|
37
|
+
@codec.on_event(&method(:publish))
|
38
|
+
end
|
39
|
+
|
40
|
+
def receive(event)
|
41
|
+
return unless output?(event)
|
42
|
+
|
43
|
+
@codec.encode(event)
|
44
|
+
rescue StandardError => e
|
45
|
+
@logger.warn("Error encoding event", :exception => e, :event => event)
|
46
|
+
end
|
47
|
+
|
48
|
+
def publish(event, message)
|
49
|
+
raise ArgumentError, "No exchange set in HareInfo!!!" unless @hare_info.exchange
|
50
|
+
@hare_info.exchange.publish(message, :routing_key => event.sprintf(@key), :properties => { :persistent => @persistent })
|
51
|
+
rescue MarchHare::Exception, IOError, com.rabbitmq.client.AlreadyClosedException => e
|
52
|
+
@logger.error("Error while publishing. Will retry.",
|
53
|
+
:message => e.message,
|
54
|
+
:exception => e.class,
|
55
|
+
:backtrace => e.backtrace)
|
56
|
+
|
57
|
+
sleep_for_retry
|
58
|
+
retry
|
59
|
+
end
|
60
|
+
|
61
|
+
def close
|
62
|
+
close_connection
|
63
|
+
end
|
64
|
+
end
|
187
65
|
end
|
188
66
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
|
3
3
|
s.name = 'logstash-output-rabbitmq'
|
4
|
-
s.version = '
|
4
|
+
s.version = '3.0.1'
|
5
5
|
s.licenses = ['Apache License (2.0)']
|
6
6
|
s.summary = "Push events to a RabbitMQ exchange"
|
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"
|
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.require_paths = ["lib"]
|
12
12
|
|
13
13
|
# Files
|
14
|
-
s.files =
|
14
|
+
s.files = Dir['lib/**/*','spec/**/*','vendor/**/*','*.gemspec','*.md','CONTRIBUTORS','Gemfile','LICENSE','NOTICE.TXT']
|
15
15
|
|
16
16
|
# Tests
|
17
17
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
@@ -20,10 +20,10 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.metadata = { "logstash_plugin" => "true", "logstash_group" => "output" }
|
21
21
|
|
22
22
|
# Gem dependencies
|
23
|
-
s.add_runtime_dependency "logstash-core",
|
23
|
+
s.add_runtime_dependency "logstash-core", "~> 2.0.0.snapshot"
|
24
|
+
s.add_runtime_dependency "logstash-mixin-rabbitmq_connection", '>= 1.0.0', '< 2.0.0'
|
24
25
|
|
25
26
|
s.platform = RUBY_PLATFORM
|
26
|
-
s.add_runtime_dependency 'march_hare', ['~> 2.12.0'] #(MIT license)
|
27
27
|
|
28
28
|
s.add_development_dependency 'logstash-devutils'
|
29
29
|
s.add_development_dependency 'logstash-input-generator'
|
@@ -1,5 +1,5 @@
|
|
1
|
+
# encoding: UTF-8
|
1
2
|
require "logstash/devutils/rspec/spec_helper"
|
2
|
-
|
3
3
|
require "logstash/pipeline"
|
4
4
|
require "logstash/outputs/rabbitmq"
|
5
5
|
|
@@ -11,7 +11,7 @@ describe LogStash::Outputs::RabbitMQ do
|
|
11
11
|
let(:exchange) { "myexchange" }
|
12
12
|
let(:key) { "mykey" }
|
13
13
|
let(:persistent) { true }
|
14
|
-
let(:
|
14
|
+
let(:rabbitmq_settings) {
|
15
15
|
{
|
16
16
|
"host" => host,
|
17
17
|
"port" => port,
|
@@ -21,7 +21,7 @@ describe LogStash::Outputs::RabbitMQ do
|
|
21
21
|
"persistent" => persistent
|
22
22
|
}
|
23
23
|
}
|
24
|
-
let(:instance) { klass.new(
|
24
|
+
let(:instance) { klass.new(rabbitmq_settings) }
|
25
25
|
let(:hare_info) { instance.instance_variable_get(:@hare_info) }
|
26
26
|
|
27
27
|
context "when connected" do
|
@@ -40,33 +40,9 @@ describe LogStash::Outputs::RabbitMQ do
|
|
40
40
|
instance.register
|
41
41
|
end
|
42
42
|
|
43
|
-
describe "#register" do
|
44
|
-
subject { instance }
|
45
|
-
|
46
|
-
it "should create cleanly" do
|
47
|
-
expect(subject).to be_a(klass)
|
48
|
-
end
|
49
|
-
|
50
|
-
it "should connect" do
|
51
|
-
expect(subject).to have_received(:connect!).once
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
43
|
describe "#connect!" do
|
56
44
|
subject { hare_info }
|
57
45
|
|
58
|
-
it "should set @hare_info correctly" do
|
59
|
-
expect(subject).to be_a(LogStash::Outputs::RabbitMQ::HareInfo)
|
60
|
-
end
|
61
|
-
|
62
|
-
it "should set @connection correctly" do
|
63
|
-
expect(subject.connection).to eql(connection)
|
64
|
-
end
|
65
|
-
|
66
|
-
it "should set the channel correctly" do
|
67
|
-
expect(subject.channel).to eql(channel)
|
68
|
-
end
|
69
|
-
|
70
46
|
it "should set the exchange correctly" do
|
71
47
|
expect(subject.exchange).to eql(exchange)
|
72
48
|
end
|
@@ -128,36 +104,86 @@ describe LogStash::Outputs::RabbitMQ do
|
|
128
104
|
end
|
129
105
|
end
|
130
106
|
end
|
107
|
+
end
|
131
108
|
|
132
|
-
# If the connection encounters an exception during its initial
|
133
|
-
# connection attempt we must handle that. Subsequent errors should be
|
134
|
-
# handled by the automatic retry mechanism built-in to MarchHare
|
135
|
-
describe "initial connection exceptions" do
|
136
|
-
subject { instance }
|
137
109
|
|
138
|
-
|
139
|
-
|
110
|
+
describe "with a live server", :integration => true do
|
111
|
+
let(:klass) { LogStash::Outputs::RabbitMQ }
|
112
|
+
let(:exchange) { "myexchange" }
|
113
|
+
let(:exchange_type) { "topic" }
|
114
|
+
let(:default_plugin_config) {
|
115
|
+
{
|
116
|
+
"host" => "127.0.0.1",
|
117
|
+
"exchange" => exchange,
|
118
|
+
"exchange_type" => exchange_type,
|
119
|
+
"key" => "foo"
|
120
|
+
}
|
121
|
+
}
|
122
|
+
let(:config) { default_plugin_config }
|
123
|
+
let(:instance) { klass.new(config) }
|
124
|
+
let(:hare_info) { instance.instance_variable_get(:@hare_info) }
|
140
125
|
|
126
|
+
# Spawn a connection in the bg and wait up (n) seconds
|
127
|
+
def spawn_and_wait(instance)
|
128
|
+
instance.register
|
141
129
|
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
if i == 1
|
146
|
-
raise(MarchHare::ConnectionRefused, "Error!")
|
147
|
-
else
|
148
|
-
double("connection")
|
149
|
-
end
|
150
|
-
end
|
130
|
+
20.times do
|
131
|
+
instance.connected? ? break : sleep(0.1)
|
132
|
+
end
|
151
133
|
|
152
|
-
|
134
|
+
# Extra time to make sure the output can attach
|
135
|
+
sleep 1
|
136
|
+
end
|
137
|
+
|
138
|
+
let(:test_connection) { MarchHare.connect(instance.send(:rabbitmq_settings)) }
|
139
|
+
let(:test_channel) { test_connection.create_channel }
|
140
|
+
let(:test_queue) {
|
141
|
+
test_channel.queue("testq", :auto_delete => true).bind(exchange, :key => config["key"])
|
142
|
+
}
|
143
|
+
|
144
|
+
before do
|
145
|
+
# Materialize the instance in the current thread to prevent dupes
|
146
|
+
# If you use multiple threads with lazy evaluation weird stuff happens
|
147
|
+
instance
|
148
|
+
spawn_and_wait(instance)
|
149
|
+
|
150
|
+
test_channel # Start up the test client as well
|
151
|
+
test_queue
|
152
|
+
end
|
153
|
+
|
154
|
+
after do
|
155
|
+
instance.close()
|
156
|
+
test_channel.close
|
157
|
+
test_connection.close
|
158
|
+
end
|
159
|
+
|
160
|
+
context "using defaults" do
|
161
|
+
it "should start, connect, and stop cleanly" do
|
162
|
+
expect(instance.connected?).to be_truthy
|
153
163
|
end
|
154
164
|
|
155
|
-
it "should
|
156
|
-
|
165
|
+
it "should close cleanly" do
|
166
|
+
instance.close
|
167
|
+
expect(instance.connected?).to be_falsey
|
157
168
|
end
|
169
|
+
end
|
170
|
+
|
171
|
+
describe "sending a message with an exchange specified" do
|
172
|
+
let(:message) { LogStash::Event.new(:message => "Foo Message") }
|
173
|
+
|
174
|
+
it "should process the message" do
|
175
|
+
@received = nil
|
176
|
+
test_queue.subscribe do |metadata,payload|
|
177
|
+
@received = payload
|
178
|
+
end
|
179
|
+
|
180
|
+
instance.receive(message)
|
181
|
+
|
182
|
+
until @received
|
183
|
+
sleep 1
|
184
|
+
end
|
158
185
|
|
159
|
-
|
160
|
-
expect(subject).to have_received(:sleep_for_retry).once
|
186
|
+
expect(@received).to eql(message.to_s)
|
161
187
|
end
|
162
188
|
end
|
163
189
|
end
|
metadata
CHANGED
@@ -1,47 +1,47 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-output-rabbitmq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.1
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-09-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: logstash-core
|
15
15
|
version_requirements: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 1.4.0
|
20
|
-
- - <
|
17
|
+
- - ~>
|
21
18
|
- !ruby/object:Gem::Version
|
22
|
-
version: 2.0.0
|
19
|
+
version: 2.0.0.snapshot
|
23
20
|
requirement: !ruby/object:Gem::Requirement
|
24
21
|
requirements:
|
25
|
-
- -
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
version: 1.4.0
|
28
|
-
- - <
|
22
|
+
- - ~>
|
29
23
|
- !ruby/object:Gem::Version
|
30
|
-
version: 2.0.0
|
24
|
+
version: 2.0.0.snapshot
|
31
25
|
prerelease: false
|
32
26
|
type: :runtime
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
|
-
name:
|
28
|
+
name: logstash-mixin-rabbitmq_connection
|
35
29
|
version_requirements: !ruby/object:Gem::Requirement
|
36
30
|
requirements:
|
37
|
-
- -
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.0.0
|
34
|
+
- - <
|
38
35
|
- !ruby/object:Gem::Version
|
39
|
-
version: 2.
|
36
|
+
version: 2.0.0
|
40
37
|
requirement: !ruby/object:Gem::Requirement
|
41
38
|
requirements:
|
42
|
-
- -
|
39
|
+
- - '>='
|
43
40
|
- !ruby/object:Gem::Version
|
44
|
-
version:
|
41
|
+
version: 1.0.0
|
42
|
+
- - <
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: 2.0.0
|
45
45
|
prerelease: false
|
46
46
|
type: :runtime
|
47
47
|
- !ruby/object:Gem::Dependency
|
@@ -92,18 +92,15 @@ executables: []
|
|
92
92
|
extensions: []
|
93
93
|
extra_rdoc_files: []
|
94
94
|
files:
|
95
|
-
- .
|
95
|
+
- lib/logstash/outputs/rabbitmq.rb
|
96
|
+
- spec/outputs/rabbitmq_spec.rb
|
97
|
+
- logstash-output-rabbitmq.gemspec
|
96
98
|
- CHANGELOG.md
|
99
|
+
- README.md
|
97
100
|
- CONTRIBUTORS
|
98
101
|
- Gemfile
|
99
102
|
- LICENSE
|
100
103
|
- NOTICE.TXT
|
101
|
-
- README.md
|
102
|
-
- Rakefile
|
103
|
-
- examples/sample.conf
|
104
|
-
- lib/logstash/outputs/rabbitmq.rb
|
105
|
-
- logstash-output-rabbitmq.gemspec
|
106
|
-
- spec/outputs/rabbitmq_spec.rb
|
107
104
|
homepage: http://www.elastic.co/guide/en/logstash/current/index.html
|
108
105
|
licenses:
|
109
106
|
- Apache License (2.0)
|
data/.gitignore
DELETED
data/Rakefile
DELETED