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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 12325a92dfaa36797e082e83812814298a74852e
4
- data.tar.gz: 84ea55bb9a4d8edf5a1cfdef9d8212a61d2f058b
3
+ metadata.gz: 89f6e5f8795784e82af0619ddaff8931f40895ec
4
+ data.tar.gz: 952f9b827d7b5612fa5729e0ccef00e6d93a5076
5
5
  SHA512:
6
- metadata.gz: 5112897974000d4fed166cd3e6f4238015dc4f9b7bd93fc7b98f6dd5b820b7301cb1f4a7e176ad0e3e0d1823b1d7e6c51d633b12105be5cb9887bd2ff89af748
7
- data.tar.gz: 3ee72b113e4b87cbbed11388e5c57a9b59403e0cef1a3a12ed3e575541a365b2b4cfa0c5aa642c30623c364ddd32e5d8f4b8bd03615e5e1ae46ede41517f379c
6
+ metadata.gz: cb144570bebf2736e084cbc29002e3edd971f9a3b1f930b3292d342b3f277e53c91b7ef29827e7c9424e84590cb9d8684b7c7d480ad80bbd9969a2991f133316
7
+ data.tar.gz: cd0aa6c48edb51096ac223028e8e9c6ebc6c17a10b94e921639596e4feb1a3e0460346787b55424887f37aa566088fe0589dfcadc0605ca4a1494d1bc07c055c
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ * 2.0.0
2
+ - Massive refactor
3
+ - Implement Logstash 2.x stop behavior
4
+ - Depend on rabbitmq_connection mixin for most connection functionality
1
5
  * 1.1.2
2
6
  - Bump march_hare to 2.12.0 to fix jar file permissions
3
7
  * 1.1.1
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
- # Logstash Plugin
1
+ # About this plugin
2
2
 
3
- This is a plugin for [Logstash](https://github.com/elastic/logstash).
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: utf-8
2
- require "logstash/outputs/base"
3
- require "logstash/namespace"
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
- class LogStash::Outputs::RabbitMQ < LogStash::Outputs::Base
15
- EXCHANGE_TYPES = ["fanout", "direct", "topic"]
16
-
17
- HareInfo = Struct.new(:connection, :channel, :exchange)
18
-
19
- config_name "rabbitmq"
20
-
21
- # RabbitMQ server address
22
- config :host, :validate => :string, :required => true
23
-
24
- # RabbitMQ port to connect on
25
- config :port, :validate => :number, :default => 5672
26
-
27
- # RabbitMQ username
28
- config :user, :validate => :string, :default => "guest"
29
-
30
- # RabbitMQ password
31
- config :password, :validate => :password, :default => "guest"
32
-
33
- # The vhost to use. If you don't know what this is, leave the default.
34
- config :vhost, :validate => :string, :default => "/"
35
-
36
- # Enable or disable SSL
37
- config :ssl, :validate => :boolean, :default => false
38
-
39
- # Validate SSL certificate
40
- config :verify_ssl, :validate => :boolean, :default => false
41
-
42
- # Enable or disable logging
43
- config :debug, :validate => :boolean, :default => false, :deprecated => "Use the logstash --debug flag for this instead."
44
-
45
- # Set this to automatically recover from a broken connection. You almost certainly don't want to override this!!!
46
- config :automatic_recovery, :validate => :boolean, :default => true
47
-
48
- # The exchange type (fanout, topic, direct)
49
- config :exchange_type, :validate => EXCHANGE_TYPES, :required => true
50
-
51
- # The name of the exchange
52
- config :exchange, :validate => :string, :required => true
53
-
54
- # Key to route to by default. Defaults to 'logstash'
55
- #
56
- # * Routing keys are ignored on fanout exchanges.
57
- config :key, :validate => :string, :default => "logstash"
58
-
59
- # Is this exchange durable? (aka; Should it survive a broker restart?)
60
- config :durable, :validate => :boolean, :default => true
61
-
62
- # Should RabbitMQ persist messages to disk?
63
- config :persistent, :validate => :boolean, :default => true
64
-
65
- # Time in seconds to wait before retrying a connection
66
- config :connect_retry_interval, :validate => :number, :default => 1
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 = '1.1.2'
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 = `git ls-files`.split($\)+::Dir.glob('vendor/*')
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", '>= 1.4.0', '< 2.0.0'
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(:settings) {
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(settings) }
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
- before do
139
- allow(subject).to receive(:sleep_for_retry)
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
- i = 0
143
- allow(subject).to receive(:connect) do
144
- i += 1
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
- subject.send(:connect!)
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 retry its connection when conn fails" do
156
- expect(subject).to have_received(:connect).twice
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
- it "should sleep between retries" do
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: 1.1.2
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-08-27 00:00:00.000000000 Z
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: march_hare
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.12.0
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: 2.12.0
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
- - .gitignore
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
@@ -1,4 +0,0 @@
1
- *.gem
2
- Gemfile.lock
3
- .bundle
4
- vendor
data/Rakefile DELETED
@@ -1,7 +0,0 @@
1
- @files=[]
2
-
3
- task :default do
4
- system("rake -T")
5
- end
6
-
7
- require "logstash/devutils/rake"
data/examples/sample.conf DELETED
@@ -1,11 +0,0 @@
1
- input {
2
- stdin {}
3
- }
4
-
5
- output {
6
- rabbitmq {
7
- host => "127.0.0.1"
8
- exchange => "foo"
9
- exchange_type => "topic"
10
- }
11
- }