|
| 1 | +.. _toolset_prometheus: |
| 2 | + |
| 3 | +RabbitMQ |
| 4 | +======== |
| 5 | + |
| 6 | +By enabling this toolset, HolmesGPT will be able to detect RabbitMQ partitions, memory alerts and disk alerts and suggest mitigations. |
| 7 | + |
| 8 | +This toolset follows a two step process to detect partition: |
| 9 | + |
| 10 | +1. The nodes and partitioning status is obtained by fetching information from the configured ``management_url``. |
| 11 | +2. If some nodes are reported as not-running, the toolset will try to contact these nodes individually and deduct any partitioning |
| 12 | + state for any node that is actually running. |
| 13 | + |
| 14 | + |
| 15 | +Configuration |
| 16 | +------------- |
| 17 | + |
| 18 | +.. md-tab-set:: |
| 19 | + |
| 20 | + .. md-tab-item:: Robusta Helm Chat |
| 21 | + |
| 22 | + .. code-block:: yaml |
| 23 | +
|
| 24 | + holmes: |
| 25 | + toolsets: |
| 26 | + rabbitmq/core: |
| 27 | + enabled: true |
| 28 | + config: |
| 29 | + clusters: |
| 30 | + - id: rabbitmq # must be unique across all configured clusters |
| 31 | + username: <user> |
| 32 | + password: <password> |
| 33 | + management_url: <http://rabbitmq.rabbitmq:15672> |
| 34 | +
|
| 35 | +
|
| 36 | + .. include:: ./_toolset_configuration.inc.rst |
| 37 | + |
| 38 | + .. md-tab-item:: Holmes CLI |
| 39 | + |
| 40 | + Add the following to **~/.holmes/config.yaml**, creating the file if it doesn't exist: |
| 41 | + |
| 42 | + .. code-block:: yaml |
| 43 | +
|
| 44 | + toolsets: |
| 45 | + rabbitmq/core: |
| 46 | + enabled: true |
| 47 | + config: |
| 48 | + clusters: |
| 49 | + - id: rabbitmq # must be unique across all configured clusters |
| 50 | + username: <user> |
| 51 | + password: <password> |
| 52 | + management_url: <http://rabbitmq.rabbitmq:15672> |
| 53 | +
|
| 54 | +
|
| 55 | +**Advanced configuration** |
| 56 | + |
| 57 | +Below is the full list of options for this toolset: |
| 58 | + |
| 59 | +.. code-block:: yaml |
| 60 | +
|
| 61 | + rabbitmq/core: |
| 62 | + enabled: true |
| 63 | + config: |
| 64 | + clusters: |
| 65 | + - id: rabbitmq # must be unique across all configured clusters |
| 66 | + username: <user> |
| 67 | + password: <password> |
| 68 | + management_url: <http://rabbitmq.rabbitmq:15672> |
| 69 | + request_timeout_seconds: 30 # timeout for the API requests to RabbitMQ |
| 70 | + verify_certs: True # if the management API is https and the certificate is not valid |
| 71 | +
|
| 72 | +
|
| 73 | +- **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. |
| 74 | +- **username** A username to authenticate against the management API |
| 75 | +- **password** A pasword to authenticate against the management API |
| 76 | +- **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``. |
| 77 | +- **request_timeout_seconds** The timeout in seconds for the API requests to RabbitMQ. |
| 78 | +- **verify_certs** Set to False if RabbitMQ exposes the API through self signed certificates. |
| 79 | + |
| 80 | + |
| 81 | +Capabilities |
| 82 | +------------ |
| 83 | +.. include:: ./_toolset_capabilities.inc.rst |
| 84 | + |
| 85 | +.. list-table:: |
| 86 | + :header-rows: 1 |
| 87 | + :widths: 30 70 |
| 88 | + |
| 89 | + * - Tool Name |
| 90 | + - Description |
| 91 | + * - list_configured_clusters |
| 92 | + - List all configured clusters. Useful to get the id of a configured cluster (cluster_id) and pass as argument to other rabbitmq tool calls. |
| 93 | + * - get_rabbitmq_cluster_status |
| 94 | + - Fetches the overall status of the RabbitMQ cluster, including node information, listeners, and partition details. Crucial for detecting split-brain scenarios (network partitions). |
0 commit comments