Skip to content

Commit

Permalink
Merge pull request #1280 from Graylog2/amqp-inputs
Browse files Browse the repository at this point in the history
Add Raw and Syslog AMQP inputs
  • Loading branch information
bernd committed Jul 6, 2015
2 parents 0ac8fe8 + df1833b commit 0126f5e
Show file tree
Hide file tree
Showing 3 changed files with 150 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
/**
* This file is part of Graylog.
*
* Graylog is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Graylog is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Graylog. If not, see <http://www.gnu.org/licenses/>.
*/

package org.graylog2.inputs.raw.amqp;

import com.codahale.metrics.MetricRegistry;
import com.google.inject.assistedinject.Assisted;
import com.google.inject.assistedinject.AssistedInject;
import org.graylog2.inputs.codecs.RawCodec;
import org.graylog2.inputs.transports.AmqpTransport;
import org.graylog2.plugin.LocalMetricRegistry;
import org.graylog2.plugin.ServerStatus;
import org.graylog2.plugin.configuration.Configuration;
import org.graylog2.plugin.inputs.MessageInput;

import javax.inject.Inject;

public class RawAMQPInput extends MessageInput {

private static final String NAME = "Raw/Plaintext AMQP";

@AssistedInject
public RawAMQPInput(final MetricRegistry metricRegistry,
final @Assisted Configuration configuration,
final AmqpTransport.Factory amqpFactory,
final RawCodec.Factory codecFactory,
final LocalMetricRegistry localRegistry,
final Config config,
final Descriptor descriptor,
final ServerStatus serverStatus) {
super(metricRegistry, configuration, amqpFactory.create(configuration), localRegistry,
codecFactory.create(configuration), config, descriptor, serverStatus);
}

public interface Factory extends MessageInput.Factory<RawAMQPInput> {
@Override
RawAMQPInput create(Configuration configuration);

@Override
Config getConfig();

@Override
Descriptor getDescriptor();
}

public static class Descriptor extends MessageInput.Descriptor {
@Inject
public Descriptor() {
super(NAME, false, "");
}
}

public static class Config extends MessageInput.Config {
@Inject
public Config(AmqpTransport.Factory transport, RawCodec.Factory codec) {
super(transport.getConfig(), codec.getConfig());
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
/**
* This file is part of Graylog.
*
* Graylog is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Graylog is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Graylog. If not, see <http://www.gnu.org/licenses/>.
*/

package org.graylog2.inputs.syslog.amqp;

import com.codahale.metrics.MetricRegistry;
import com.google.inject.assistedinject.Assisted;
import com.google.inject.assistedinject.AssistedInject;
import org.graylog2.inputs.codecs.SyslogCodec;
import org.graylog2.inputs.transports.AmqpTransport;
import org.graylog2.plugin.LocalMetricRegistry;
import org.graylog2.plugin.ServerStatus;
import org.graylog2.plugin.configuration.Configuration;
import org.graylog2.plugin.inputs.MessageInput;

import javax.inject.Inject;

public class SyslogAMQPInput extends MessageInput {

private static final String NAME = "Syslog AMQP";

@AssistedInject
public SyslogAMQPInput(final MetricRegistry metricRegistry,
final @Assisted Configuration configuration,
final AmqpTransport.Factory amqpFactory,
final SyslogCodec.Factory codecFactory,
final LocalMetricRegistry localRegistry,
final Config config,
final Descriptor descriptor,
final ServerStatus serverStatus) {
super(metricRegistry, configuration, amqpFactory.create(configuration), localRegistry,
codecFactory.create(configuration), config, descriptor, serverStatus);
}

public interface Factory extends MessageInput.Factory<SyslogAMQPInput> {
@Override
SyslogAMQPInput create(Configuration configuration);

@Override
Config getConfig();

@Override
Descriptor getDescriptor();
}

public static class Descriptor extends MessageInput.Descriptor {
@Inject
public Descriptor() {
super(NAME, false, "");
}
}

public static class Config extends MessageInput.Config {
@Inject
public Config(AmqpTransport.Factory transport, SyslogCodec.Factory codec) {
super(transport.getConfig(), codec.getConfig());
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,11 @@
import org.graylog2.inputs.misc.jsonpath.JsonPathInput;
import org.graylog2.inputs.misc.metrics.LocalMetricsInput;
import org.graylog2.inputs.random.FakeHttpMessageInput;
import org.graylog2.inputs.raw.amqp.RawAMQPInput;
import org.graylog2.inputs.raw.kafka.RawKafkaInput;
import org.graylog2.inputs.raw.tcp.RawTCPInput;
import org.graylog2.inputs.raw.udp.RawUDPInput;
import org.graylog2.inputs.syslog.amqp.SyslogAMQPInput;
import org.graylog2.inputs.syslog.kafka.SyslogKafkaInput;
import org.graylog2.inputs.syslog.tcp.SyslogTCPInput;
import org.graylog2.inputs.syslog.udp.SyslogUDPInput;
Expand All @@ -47,9 +49,11 @@ protected void configure() {
// new style inputs, using transports and codecs
installInput(inputMapBinder, RawTCPInput.class, RawTCPInput.Factory.class);
installInput(inputMapBinder, RawUDPInput.class, RawUDPInput.Factory.class);
installInput(inputMapBinder, RawAMQPInput.class, RawAMQPInput.Factory.class);
installInput(inputMapBinder, RawKafkaInput.class, RawKafkaInput.Factory.class);
installInput(inputMapBinder, SyslogTCPInput.class, SyslogTCPInput.Factory.class);
installInput(inputMapBinder, SyslogUDPInput.class, SyslogUDPInput.Factory.class);
installInput(inputMapBinder, SyslogAMQPInput.class, SyslogAMQPInput.Factory.class);
installInput(inputMapBinder, SyslogKafkaInput.class, SyslogKafkaInput.Factory.class);
installInput(inputMapBinder, FakeHttpMessageInput.class, FakeHttpMessageInput.Factory.class);
installInput(inputMapBinder, GELFTCPInput.class, GELFTCPInput.Factory.class);
Expand Down

0 comments on commit 0126f5e

Please sign in to comment.