Operations grimoire/RabbitMQ

From Nasqueron Agora

📕📁📜 Old technical information :: content warning

⌛ This Nasqueron Operations Grimoire page hasn't been updated for a long time.

☣ As our infrastructure evolves quickly, there is a good chance this information is outdated or now inaccurate. Be careful and consider update it.

➡️ To assert the information is still up-to-date or not, you can check the history of the relevant role in our Operations repository.

RabbitMQ is deployed through Docker.

Clusters

List of RabbitMQ production clusters
Cluster name Management interface Description
white-rabbit https://white-rabbit.nasqueron.org Main cluster, used for CI and CD purpose

Procedures

  • To redeploy containers, use salt-call --local state.apply roles/paas-docker/containers/rabbitmq
  • To enable a plugin, edit this Dockerfile and rebuild image
  • To enable a new port for a new protocol or metrics, edit relevant file under rOPS: pillar/paas/
  • To bind queue or check what happens, use web interface

Services using RabbitMQ

white-rabbit, dev vhost
  • Notifications center: intelligent bus to get notifications from GitHub, Phabricator, Jenkins, DockerHub, normalize them and publish them to RabbitMQ
  • Wearg: IRC bot, read wearg-notifications queue to get notifications to publish them on Libera Chat channels

Troubleshoot

Metrics

Grafana dashboard

If the ready messages is high, it means a queue is not read. As of August 2024, the only permanent queue is the one for notifications used by Wearg. If Wearg is offline or disconnected from RabbitMQ, it's expected to have those messages in the queue.

Metrics doesn't work anymore

Base image disable metrics. They renamed once the configuration file to do so.

If metrics disappears, check in the container the /etc/rabbitmq/conf.d/ directory and update edit this Dockerfile accordingly.

As of July 2024, Prometheus plugin is also needed to allow data scraping.