AW: [RabbitMQ][cinder] Listen to messages

Blom, Merlin, NMU-OI merlin.blom at bertelsmann.de
Tue Nov 19 09:15:56 UTC 2019


Thank you for your answer!

 

“Are you sure cinder use a dedicated vhost? I'm notconviced, if I'm right they all use the default vhost '/'.”

 

Indeed it does, when deployed with openstack-ansible.

 

But I found a way to find the exchange with RMQ Tracing:

 <https://www.rabbitmq.com/firehose.html> https://www.rabbitmq.com/firehose.html

 

Using the GUI plugin I’ve got all the messages flowing through the cinder vhost and found:

 

The exchange for the notification.* queues is “openstack” not cinder.

Sometimes I ask myself if there are any kind of standards for RMQ Communication. :P

 

This may be interesting for someone else to use in their projects.

 

Cheers,

Merlin

 

Von: Herve Beraud <hberaud at redhat.com> 
Gesendet: Freitag, 15. November 2019 11:14
An: Blom, Merlin, NMU-OI <merlin.blom at bertelsmann.de>
Cc: openstack-discuss at lists.openstack.org
Betreff: Re: [RabbitMQ][cinder] Listen to messages

 

 

 

Le ven. 15 nov. 2019 à 10:17, Blom, Merlin, NMU-OI <merlin.blom at bertelsmann.de <mailto:merlin.blom at bertelsmann.de> > a écrit :

Hey there,

it seems to me as if ask.openstack.org <https://urldefense.proofpoint.com/v2/url?u=http-3A__ask.openstack.org&d=DwMFaQ&c=vo2ie5TPcLdcgWuLVH4y8lsbGPqIayH3XbK3gK82Oco&r=hTUN4-Trlb-8Fh11dR6m5VD1uYA15z7v9WL8kYigkr8&m=I57N0pNdOBJT0zInKg9x19EIcAusOh6tWEYae4pqZec&s=BtHoBhYTWHgOaqVzcSWPazamCNRt3zKyin254OCHTv0&e=>  is down, so I ask my question here:

 

I’d like to listen to oslo messages from cinder as I do for neutron and octavia to know what is going on.

For me the following code worked for neutron:

 

EXCHANGE_NAME = os.getenv('EXCHANGE_NAME', 'neutron')

ROUTING_KEY = os.getenv('ROUTING_KEY', 'notifications.info <https://urldefense.proofpoint.com/v2/url?u=http-3A__notifications.info&d=DwMFaQ&c=vo2ie5TPcLdcgWuLVH4y8lsbGPqIayH3XbK3gK82Oco&r=hTUN4-Trlb-8Fh11dR6m5VD1uYA15z7v9WL8kYigkr8&m=I57N0pNdOBJT0zInKg9x19EIcAusOh6tWEYae4pqZec&s=88zOXIjCk6Wj0OZJoyQ3zn7HKlGt_vUabkgC5UbLy8I&e=> ')

QUEUE_NAME = os.getenv('QUEUE_NAME', 'messaging_queue')

BROKER_URI = os.getenv('BROKER_URI', 'UNDEFINED')

BROKER_PASSWORD = os.getenv('BROKER_PASSWORD', '')

 

class Messages(ConsumerMixin):

    def __init__(self, connection):

        self.connection = connection

        return

 

def get_consumers(self, consumer, channel):

        exchange = Exchange(EXCHANGE_NAME, type="topic", durable=False)

        queue = Queue(QUEUE_NAME, exchange, routing_key=ROUTING_KEY, durable=False, auto_delete=True, no_ack=True)

        return [consumer(queues=[queue], callbacks=[self.on_message])]

 

    def on_message(self, body, message):

        try:

            print(message)

        except Exception as e:

            log.info <https://urldefense.proofpoint.com/v2/url?u=http-3A__log.info&d=DwMFaQ&c=vo2ie5TPcLdcgWuLVH4y8lsbGPqIayH3XbK3gK82Oco&r=hTUN4-Trlb-8Fh11dR6m5VD1uYA15z7v9WL8kYigkr8&m=I57N0pNdOBJT0zInKg9x19EIcAusOh6tWEYae4pqZec&s=eBcN-xWc8Px2a6Np6bf9UZ4Um_ODRGrU9YXh6MfJNpg&e=> (repr(e))

 

if __name__ == "__main__":

    log.info <https://urldefense.proofpoint.com/v2/url?u=http-3A__log.info&d=DwMFaQ&c=vo2ie5TPcLdcgWuLVH4y8lsbGPqIayH3XbK3gK82Oco&r=hTUN4-Trlb-8Fh11dR6m5VD1uYA15z7v9WL8kYigkr8&m=I57N0pNdOBJT0zInKg9x19EIcAusOh6tWEYae4pqZec&s=eBcN-xWc8Px2a6Np6bf9UZ4Um_ODRGrU9YXh6MfJNpg&e=> ("Connecting to broker {}".format(BROKER_URI))

    with BrokerConnection(hostname=BROKER_URI, userid='messaging', password=BROKER_PASSWORD,

                          virtual_host='/'+EXCHANGE_NAME,

                          heartbeat=4, failover_strategy='round-robin') as connection:

        Messaging(connection).run()

        BrokerConnection.connection.close()

 

But on the cinder vhost (/cinder)

 

Are you sure cinder use a dedicated vhost? I'm notconviced, if I'm right they all use the default vhost '/'.

 

 

I can’t find an exchange that the code is working on. (cinder, cinder-backup, …)

I tried using the rabbitmq tracer:  <https://urldefense.proofpoint.com/v2/url?u=https-3A__www.rabbitmq.com_firehose.html&d=DwMFaQ&c=vo2ie5TPcLdcgWuLVH4y8lsbGPqIayH3XbK3gK82Oco&r=hTUN4-Trlb-8Fh11dR6m5VD1uYA15z7v9WL8kYigkr8&m=I57N0pNdOBJT0zInKg9x19EIcAusOh6tWEYae4pqZec&s=GH8hzzf_x1wZWdtzgEt_LzG7EyhuIYk6z0ReemFPjag&e=> https://www.rabbitmq.com/firehose.html

And got all the cinder messages but I don’t want to use it in production because of performance issues.

 

Does anyone have an idea how to find the correct exchange for the notification info queue in cinder?

 

Cheers,

Merlin



-- 

Hervé Beraud

Senior Software Engineer

Red Hat - Openstack Oslo

irc: hberaud

-----BEGIN PGP SIGNATURE-----

wsFcBAABCAAQBQJb4AwCCRAHwXRBNkGNegAALSkQAHrotwCiL3VMwDR0vcja10Q+
Kf31yCutl5bAlS7tOKpPQ9XN4oC0ZSThyNNFVrg8ail0SczHXsC4rOrsPblgGRN+
RQLoCm2eO1AkB0ubCYLaq0XqSaO+Uk81QxAPkyPCEGT6SRxXr2lhADK0T86kBnMP
F8RvGolu3EFjlqCVgeOZaR51PqwUlEhZXZuuNKrWZXg/oRiY4811GmnvzmUhgK5G
5+f8mUg74hfjDbR2VhjTeaLKp0PhskjOIKY3vqHXofLuaqFDD+WrAy/NgDGvN22g
glGfj472T3xyHnUzM8ILgAGSghfzZF5Skj2qEeci9cB6K3Hm3osj+PbvfsXE/7Kw
m/xtm+FjnaywZEv54uCmVIzQsRIm1qJscu20Qw6Q0UiPpDFqD7O6tWSRKdX11UTZ
hwVQTMh9AKQDBEh2W9nnFi9kzSSNu4OQ1dRMcYHWfd9BEkccezxHwUM4Xyov5Fe0
qnbfzTB1tYkjU78loMWFaLa00ftSxP/DtQ//iYVyfVNfcCwfDszXLOqlkvGmY1/Y
F1ON0ONekDZkGJsDoS6QdiUSn8RZ2mHArGEWMV00EV5DCIbCXRvywXV43ckx8Z+3
B8qUJhBqJ8RS2F+vTs3DTaXqcktgJ4UkhYC2c1gImcPRyGrK9VY0sCT+1iA+wp/O
v6rDpkeNksZ9fFSyoY2o
=ECSj
-----END PGP SIGNATURE-----

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-discuss/attachments/20191119/1b74df8a/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5195 bytes
Desc: not available
URL: <http://lists.openstack.org/pipermail/openstack-discuss/attachments/20191119/1b74df8a/attachment-0001.bin>


More information about the openstack-discuss mailing list