diff --git a/beaver/config.py b/beaver/config.py index 13d4e8a5..00181a28 100644 --- a/beaver/config.py +++ b/beaver/config.py @@ -84,6 +84,7 @@ def __init__(self, args, logger=None): 'rabbitmq_ha_queue': os.environ.get('RABBITMQ_HA_QUEUE', '0'), 'rabbitmq_key': os.environ.get('RABBITMQ_KEY', 'logstash-key'), 'rabbitmq_exchange': os.environ.get('RABBITMQ_EXCHANGE', 'logstash-exchange'), + 'rabbitmq_timeout': '1', 'rabbitmq_delivery_mode': 1, 'redis_url': os.environ.get('REDIS_URL', 'redis://localhost:6379/0'), 'redis_namespace': os.environ.get('REDIS_NAMESPACE', 'logstash:beaver'), @@ -312,6 +313,7 @@ def _main_parser(config): 'max_queue_size', 'queue_timeout', 'rabbitmq_port', + 'rabbitmq_timeout', 'rabbitmq_delivery_mode', 'respawn_delay', 'subprocess_poll_sleep', diff --git a/beaver/transports/rabbitmq_transport.py b/beaver/transports/rabbitmq_transport.py index 20ff4af6..589b5ff6 100644 --- a/beaver/transports/rabbitmq_transport.py +++ b/beaver/transports/rabbitmq_transport.py @@ -18,7 +18,7 @@ def __init__(self, beaver_config, logger=None): config_to_store = [ 'key', 'exchange', 'username', 'password', 'host', 'port', 'vhost', 'queue', 'queue_durable', 'ha_queue', 'exchange_type', 'exchange_durable', - 'ssl', 'ssl_key', 'ssl_cert', 'ssl_cacert', 'delivery_mode' + 'ssl', 'ssl_key', 'ssl_cert', 'ssl_cacert', 'timeout', 'delivery_mode' ] for key in config_to_store: @@ -139,7 +139,8 @@ def _connect(self): port=self._rabbitmq_config['port'], ssl=self._rabbitmq_config['ssl'], ssl_options=ssl_options, - virtual_host=self._rabbitmq_config['vhost'] + virtual_host=self._rabbitmq_config['vhost'], + socket_timeout=self._rabbitmq_config['timeout'] ) Thread(target=self._connection_start).start() diff --git a/docs/user/usage.rst b/docs/user/usage.rst index 6603c869..c5e9768a 100644 --- a/docs/user/usage.rst +++ b/docs/user/usage.rst @@ -72,6 +72,7 @@ Beaver can optionally get data from a ``configfile`` using the ``-c`` flag. This * rabbitmq_exchange_durable: Default ``0``. * rabbitmq_key: Default ``logstash-key``. * rabbitmq_exchange: Default ``logstash-exchange``. +* rabbitmq_timeout: Default ``1``. The timeout in seconds for the connection to the RabbitMQ broker * rabbitmq_delivery_mode: Default ``1``. Message deliveryMode. 1: non persistent 2: persistent * redis_url: Default ``redis://localhost:6379/0``. Comma separated redis URLs * redis_namespace: Default ``logstash:beaver``. Redis key namespace