StackStorm / st2

StackStorm (aka "IFTTT for Ops") is event-driven automation for auto-remediation, incident responses, troubleshooting, deployments, and more for DevOps and SREs. Includes rules engine, workflow, 160 integration packs with 6000+ actions (see https://exchange.stackstorm.org) and ChatOps. Installer at https://docs.stackstorm.com/install/index.html
https://stackstorm.com/
Apache License 2.0
6.08k stars 747 forks source link

Support for alternative queues? #3601

Open johnarnold opened 7 years ago

johnarnold commented 7 years ago

Hi,

Since you're using kombu for communication with the queue, would it be possible to use other kombu-supported queues, other than RabbitMQ?

E.g. we use Redis with kombu for our celery service. Could we use Redis for stackstorm, too? Any special features that require RabbitMQ?

Redis is available as a SaaS on our cloud, so I'd like to take advantage of that if possible.

Thanks, John

johnarnold commented 7 years ago

Also would be happy to use Azure Service Bus :) Although not supported in kombu, it seems possible to make a virtual broker over it.

LindsayHill commented 7 years ago

I can't find a link to it now, but I recall from previous discussions with the team that the opinion was: "There's a fair chance it would work, but no-one's tested it, so can't say for sure."

Haven't heard of anyone planning on testing it, but you're welcome to try

johnarnold commented 7 years ago

@LindsayHill

I set up a dev instance for testing. So far, I found that:

2017-08-01 01:35:39,460 140109504094608 ERROR st2notifier [-] (PID=11807) Results tracker quit due to exception.
Traceback (most recent call last):
  File "/opt/stackstorm/st2/local/lib/python2.7/site-packages/st2actions/cmd/st2notifier.py", line 56, in main
    _setup()
  File "/opt/stackstorm/st2/local/lib/python2.7/site-packages/st2actions/cmd/st2notifier.py", line 27, in _setup
    register_signal_handlers=True)
  File "/opt/stackstorm/st2/local/lib/python2.7/site-packages/st2common/service_setup.py", line 117, in setup
    register_exchanges_with_retry()
  File "/opt/stackstorm/st2/local/lib/python2.7/site-packages/st2common/transport/bootstrap_utils.py", line 83, in register_exchanges_with_retry
    return retrying_obj.call(register_exchanges)
  File "/opt/stackstorm/st2/local/lib/python2.7/site-packages/retrying.py", line 205, in call
    if not self.should_reject(attempt):
  File "/opt/stackstorm/st2/local/lib/python2.7/site-packages/retrying.py", line 189, in should_reject
    reject |= self._retry_on_exception(attempt.value[1])
TypeError: unsupported operand type(s) for |=: 'bool' and 'error'
johnarnold commented 7 years ago

For historical reference, this error occurs when using a database number in the messaging url:

2017-08-01 01:03:33,829 140313745072848 ERROR connection_retry_wrapper [-] Connections to rabbitmq cannot be re-established: sequence item 0: expected string, list found
Traceback (most recent call last):
  File "/opt/stackstorm/st2/local/lib/python2.7/site-packages/st2common/transport/connection_retry_wrapper.py", line 115, in run
    channel = connection.channel()
  File "/opt/stackstorm/st2/local/lib/python2.7/site-packages/kombu/connection.py", line 255, in channel
    chan = self.transport.create_channel(self.connection)
  File "/opt/stackstorm/st2/local/lib/python2.7/site-packages/kombu/connection.py", line 756, in connection
    self._connection = self._establish_connection()
  File "/opt/stackstorm/st2/local/lib/python2.7/site-packages/kombu/connection.py", line 711, in _establish_connection
    conn = self.transport.establish_connection()
  File "/opt/stackstorm/st2/local/lib/python2.7/site-packages/kombu/transport/pyamqp.py", line 106, in establish_connection
    'host': conninfo.host,
  File "/opt/stackstorm/st2/local/lib/python2.7/site-packages/kombu/connection.py", line 779, in host
    return ':'.join([self.hostname, str(self.port)])
TypeError: sequence item 0: expected string, list found
stale[bot] commented 5 years ago

Thanks for contributing to this issue. As it has been 90 days since the last activity, we are automatically marking is as stale. If this issue is not relevant or applicable anymore (problem has been fixed in a new version or similar), please close the issue or let us know so we can close it. On the contrary, if the issue is still relevant, there is nothing you need to do, but if you have any additional details or context which would help us when working on this issue, please include it as a comment to this issue.