Skip to content

Commit 949404c

Browse files
committed
docs: rabbitmq toolset
1 parent e635c25 commit 949404c

2 files changed

Lines changed: 100 additions & 0 deletions

File tree

docs/configuration/holmesgpt/builtin_toolsets.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ Builtin Toolsets
2020
toolsets/kubernetes
2121
toolsets/opensearch
2222
toolsets/prometheus
23+
toolsets/rabbitmq
2324
toolsets/robusta
2425
toolsets/slab
2526

@@ -108,6 +109,11 @@ by the user by providing credentials or API keys to external systems.
108109
:link: toolsets/prometheus
109110
:link-type: doc
110111

112+
.. grid-item-card:: :octicon:`cpu;1em;` RabbitMQ
113+
:class-card: sd-bg-light sd-bg-text-light
114+
:link: toolsets/rabbitmq
115+
:link-type: doc
116+
111117
.. grid-item-card:: :octicon:`cpu;1em;` Robusta
112118
:class-card: sd-bg-light sd-bg-text-light
113119
:link: toolsets/robusta
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
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

Comments
 (0)