RabbitMQΒΆ

By enabling this toolset, HolmesGPT will be able to detect RabbitMQ partitions, memory alerts and disk alerts and suggest mitigations.

This toolset follows a two step process to detect partition:

  1. The nodes and partitioning status is obtained by fetching information from the configured management_url.

  2. If some nodes are reported as not-running, the toolset will try to contact these nodes individually and deduct any partitioning state for any node that is actually running.

ConfigurationΒΆ

holmes:
  toolsets:
    rabbitmq/core:
      enabled: true
      config:
        clusters:
          - id: rabbitmq # must be unique across all configured clusters
            username: <user>
            password: <password>
            management_url: <http://rabbitmq.rabbitmq:15672>

Update your Helm values (generated_values.yaml) with the above configuration and run a Helm upgrade:

helm upgrade robusta robusta/robusta --values=generated_values.yaml --set clusterName=<YOUR_CLUSTER_NAME>

Add the following to ~/.holmes/config.yaml, creating the file if it doesn't exist:

toolsets:
  rabbitmq/core:
    enabled: true
    config:
      clusters:
        - id: rabbitmq # must be unique across all configured clusters
          username: <user>
          password: <password>
          management_url: <http://rabbitmq.rabbitmq:15672>

Advanced configuration

Below is the full list of options for this toolset:

rabbitmq/core:
  enabled: true
  config:
    clusters:
      - id: rabbitmq # must be unique across all configured clusters
        username: <user>
        password: <password>
        management_url: <http://rabbitmq.rabbitmq:15672>
        request_timeout_seconds: 30 # timeout for the API requests to RabbitMQ
        verify_certs: True # if the management API is https and the certificate is not valid
  • id A unique identifier for this cluster. Holmes uses it to figure out what cluster to check when answering a question or investigating an alert.

  • username A username to authenticate against the management API

  • password A pasword to authenticate against the management API

  • management_url The base URL for this RabbitMQ's cluster. Typically you would want to put the URL of the RabbitMQ service http://rabbitmq.rabbitmq:15672.

  • request_timeout_seconds The timeout in seconds for the API requests to RabbitMQ.

  • verify_certs Set to False if RabbitMQ exposes the API through self signed certificates.

CapabilitiesΒΆ

The table below describes the specific capabilities provided by this toolset. HolmesGPT can decide to invoke any of these capabilities when answering questions or investigating issues.

Tool Name

Description

list_configured_clusters

List all configured clusters. Useful to get the id of a configured cluster (cluster_id) and pass as argument to other rabbitmq tool calls.

get_rabbitmq_cluster_status

Fetches the overall status of the RabbitMQ cluster, including node information, listeners, and partition details. Crucial for detecting split-brain scenarios (network partitions).