Skip to content

Commit 052d6f4

Browse files
authored
Merge branch 'master' into claude-slack
2 parents 24d32c7 + fd44578 commit 052d6f4

16 files changed

Lines changed: 334 additions & 93 deletions

docs/configuration/holmesgpt/builtin_toolsets.rst

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ Builtin Toolsets
1818
toolsets/internet
1919
toolsets/kafka
2020
toolsets/kubernetes
21-
toolsets/opensearch
21+
toolsets/notion
22+
toolsets/opensearch_logs
23+
toolsets/opensearch_status
2224
toolsets/prometheus
2325
toolsets/rabbitmq
2426
toolsets/robusta
@@ -98,10 +100,20 @@ by the user by providing credentials or API keys to external systems.
98100
:class-card: sd-bg-light sd-bg-text-light
99101
:link: toolsets/kubernetes
100102
:link-type: doc
103+
104+
.. grid-item-card:: :octicon:`cpu;1em;` Notion
105+
:class-card: sd-bg-light sd-bg-text-light
106+
:link: toolsets/notion
107+
:link-type: doc
108+
109+
.. grid-item-card:: :octicon:`cpu;1em;` OpenSearch logs
110+
:class-card: sd-bg-light sd-bg-text-light
111+
:link: toolsets/opensearch_logs
112+
:link-type: doc
101113

102-
.. grid-item-card:: :octicon:`cpu;1em;` OpenSearch
114+
.. grid-item-card:: :octicon:`cpu;1em;` OpenSearch status
103115
:class-card: sd-bg-light sd-bg-text-light
104-
:link: toolsets/opensearch
116+
:link: toolsets/opensearch_status
105117
:link-type: doc
106118

107119
.. grid-item-card:: :octicon:`cpu;1em;` Prometheus

docs/configuration/holmesgpt/index.rst

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,15 @@ AI Analysis
1010
builtin_toolsets
1111
permissions
1212
custom_toolsets
13+
remote_mcp_servers
1314

1415
Why use HolmesGPT?
1516
^^^^^^^^^^^^^^^^^^^
1617

1718
Robusta can integrate with `Holmes GPT <https://github.com/robusta-dev/holmesgpt>`_ to analyze health issues on your cluster, and to run AI based root cause analysis for alerts.
1819

20+
This requires a Robusta SaaS account, and for the Robusta UI sink to be enabled. (We have plans to support HolmesGPT in a pure OSS mode in the near future. Stay tuned!)
21+
1922
When available, AI based investigations can be launched in one of two ways:
2023

2124
1. Click the ``Ask HolmesGPT`` button in Slack. The AI investigation will be sent back as a new message.
@@ -35,7 +38,7 @@ Add ``enableHolmesGPT: true`` to the Robusta Helm values, and then follow these
3538

3639
1. Choose an AI model - we highly recommend using GPT-4o to get the most accurate results! Other models may work, but are not officially supported.
3740
2. :ref:`Configure your AI provider with the chosen model <Choosing and configuring an AI provider>`.
38-
3. :ref:`Optional: Configure HolmesGPT Access to SaaS Data <Configuring HolmesGPT Access to SaaS Data>`.
41+
3. :ref:`Configure HolmesGPT Access to SaaS Data <Configuring HolmesGPT Access to SaaS Data>`.
3942

4043
Choosing and configuring an AI provider
4144
----------------------------------------
@@ -362,7 +365,7 @@ Builtin toolsets
362365

363366
Built-in toolsets cover essential areas like pod status inspection, node health analysis,
364367
application diagnostics, and resource utilization monitoring. These toolsets include access to
365-
Kubernetes events and logs, AWS, Grafana, Opensearch, etc. See the full list :doc:`here <builtin_toolsets>`.
368+
Kubernetes events and logs, AWS, Grafana, OpenSearch, etc. See the full list :doc:`here <builtin_toolsets>`.
366369

367370
Custom toolsets
368371
----------------
@@ -371,3 +374,14 @@ Custom toolsets
371374

372375
Custom toolsets are created through your Helm values file and you can find instructions
373376
to :doc:`write your own toolsets here <builtin_toolsets>`.
377+
378+
Remote MCP servers
379+
---------------------
380+
381+
.. warning::
382+
383+
Remote MCP servers are in **Tech Preview** stage.
384+
385+
Remote MCP server connections are configured through your Helm values file.
386+
For detailed instructions, refer to the :doc:`Connecting to Remote MCP Servers <remote_mcp_servers>` guide.
387+
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
Remote MCP Servers
2+
====================
3+
4+
.. warning::
5+
6+
Remote MCP servers are in **Tech Preview** stage.
7+
8+
9+
HolmesGPT can integrate with remote MCP servers using SSE mode.
10+
This capability enables HolmesGPT to access external data sources and tools in real time.
11+
This guide provides step-by-step instructions for configuring HolmesGPT to connect with remote MCP servers over SSE.
12+
13+
Example : MCP server configuration
14+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
15+
16+
.. md-tab-set::
17+
18+
.. md-tab-item:: Robusta Helm Chart
19+
20+
**Helm Values:**
21+
22+
.. code-block:: yaml
23+
24+
holmes:
25+
mcp_servers:
26+
mcp_server_1:
27+
# human-readable description of the mcp server (this is not seen by the AI model - its just for users)
28+
description: "Remote mcp server"
29+
url: "http://example.com:8000/sse"
30+
31+
mcp_server_2:
32+
description: "MCP server that runs in my cluster"
33+
url: "http://<service-name>.<namespace>.svc.cluster.local:<service-port>"
34+
config:
35+
headers:
36+
key: "{{ env.my_mcp_server_key }}" # You can use holmes environment variables as headers for the MCP server requests.
37+
38+
Update your Helm values with the provided YAML configuration, then apply the changes with Helm upgrade:
39+
40+
.. code-block:: bash
41+
42+
helm upgrade robusta robusta/robusta --values=generated_values.yaml --set clusterName=<YOUR_CLUSTER_NAME>
43+
44+
45+
46+
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
2+
Disabling the Default Logging Toolset
3+
*****************************************
4+
5+
The default HolmesGPT logging tool **must** be disabled if you use a different datasource for logs.
6+
HolmesGPT may still use kubectl to fetch logs and never call your datasource if ``kubernetes/logs`` is not disabled.
7+
To disable the default logging toolset, add the following to your holmes configuration:
8+
9+
.. md-tab-set::
10+
11+
.. md-tab-item:: Robusta Helm Chart
12+
13+
.. code-block:: yaml
14+
15+
holmes:
16+
toolsets:
17+
kubernetes/logs:
18+
enabled: false
19+
20+
21+
.. include:: ./_toolset_configuration.inc.rst
22+
23+
.. md-tab-item:: Holmes CLI
24+
25+
Add the following to **~/.holmes/config.yaml**, creating the file if it doesn't exist:
26+
27+
.. code-block:: yaml
28+
29+
toolsets:
30+
kubernetes/logs:
31+
enabled: false
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
HolmesGPT provides several out-of-the-box alternatives for log access. You can select from these options:
22

3-
* :ref:`kubernetes/logs <toolset_kubernetes_logs>`: Access logs with ``kubectl logs`` commands. **This is the default toolset.**
3+
* :ref:`kubernetes/logs <toolset_kubernetes_logs>`: Access logs directly through Kubernetes. **This is the default toolset.**
44
* :ref:`coralogix/logs <toolset_coralogix_logs>`: Access logs through Coralogix.
55
* :ref:`grafana/loki <toolset_grafana_loki>`: Access Loki logs by proxying through a Grafana instance.
6+
* :ref:`opensearch/logs <toolset_opensearch_logs>`: Access logs through OpenSearch.

docs/configuration/holmesgpt/toolsets/coralogix_logs.rst

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
Coralogix logs
44
==============
55

6-
By enabling this toolset, HolmesGPT will fetch node and pods logs from `Coralogix <https://coralogix.com/>`_.
6+
By enabling this toolset, HolmesGPT will fetch pod logs from `Coralogix <https://coralogix.com/>`_.
77

88
You **should** enable this toolset to replace the default :ref:`kubernetes/logs <toolset_kubernetes_logs>`
9-
toolset if all your kubernetes/pod logs are consolidated inside Coralogix. It will make it easier for HolmesGPT
9+
toolset if all your kubernetes pod logs are consolidated inside Coralogix. It will make it easier for HolmesGPT
1010
to fetch incident logs, including the ability to precisely consult past logs.
1111

1212

@@ -43,7 +43,7 @@ Configuration
4343
team_hostname: my-team # Your team's hostname in coralogix, without the domain part
4444
4545
kubernetes/logs:
46-
enabled: false # Disable HolmesGPT's default logging mechanism
46+
enabled: false # HolmesGPT's default logging mechanism MUST be disabled
4747
4848
4949
.. include:: ./_toolset_configuration.inc.rst
@@ -63,13 +63,13 @@ Configuration
6363
team_hostname: my-team # Your team's hostname in coralogix
6464
6565
kubernetes/logs:
66-
enabled: false # Disable HolmesGPT's default logging mechanism
66+
enabled: false # HolmesGPT's default logging mechanism MUST be disabled
6767
6868
Advanced Configuration
6969
^^^^^^^^^^^^^^^^^^^^^^
7070

7171
Frequent logs and archive
72-
****************************
72+
*************************
7373

7474
By default, holmes fetched the logs from the `Frequent search <https://coralogix.com/docs/user-guides/account-management/tco-optimizer/logs/#frequent-search-data-high-priority>`_
7575
tier and only fetch logs from the `Archive` tier if the frequent search returned no result.
@@ -100,10 +100,10 @@ Here is a description of each possible log retrieval methodology:
100100
- **BOTH_FREQUENT_SEARCH_AND_ARCHIVE** Always use both the frequent search and the archive to fetch logs. The result contains merged data which is deduplicated and sorted by timestamp.
101101

102102
Search labels
103-
***************
103+
*************
104104

105105
You can tweak the labels used by the toolset to identify kubernetes resources. This is **optional** and only needed if your
106-
logs settings for ``pod``, ``namespace``, ``application`` and ``subsystem`` differ from the defaults in the example below.
106+
logs settings for ``pod`` and ``namespace`` differ from the defaults in the example below.
107107

108108
.. code-block:: yaml
109109
@@ -114,8 +114,6 @@ logs settings for ``pod``, ``namespace``, ``application`` and ``subsystem`` diff
114114
labels: # OPTIONAL: tweak the filters used by HolmesGPT if your coralogix configuration is non standard
115115
namespace: "kubernetes.namespace_name"
116116
pod: "kubernetes.pod_name"
117-
application: "coralogix.metadata.applicationName"
118-
subsystem: "coralogix.metadata.subsystemName"
119117
...
120118
121119
@@ -126,19 +124,8 @@ You can verify what labels to use by attempting to run a query in the coralogix
126124
:align: center
127125

128126

129-
Disabling the default toolset
130-
*********************************
131127

132-
If Coralogix is your primary datasource for logs, it is **advised** to disable the default HolmesGPT logging
133-
tool by disabling the ``kubernetes/logs`` toolset. Without this. HolmesGPT may still use kubectl to
134-
fetch logs instead of Coralogix.
135-
136-
.. code-block:: yaml
137-
138-
holmes:
139-
toolsets:
140-
kubernetes/logs:
141-
enabled: false
128+
.. include:: ./_disable_default_logging_toolset.inc.rst
142129

143130

144131
Capabilities
@@ -152,5 +139,5 @@ Capabilities
152139

153140
* - Tool Name
154141
- Description
155-
* - fetch_coralogix_logs_for_resource
142+
* - fetch_pod_logs
156143
- Retrieve logs using coralogix

docs/configuration/holmesgpt/toolsets/grafanaloki.rst

Lines changed: 13 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
Loki
44
====
55

6-
By enabling this toolset, HolmesGPT will fetch node and pods logs from `Loki <https://grafana.com/oss/loki/>`_.
6+
By enabling this toolset, HolmesGPT will fetch pod logs from `Loki <https://grafana.com/oss/loki/>`_.
77
Loki can be accessed directly or by proxying through a `Grafana <https://grafana.com/oss/grafana/>`_ instance.
88

99
You **should** enable this toolset to replace the default :ref:`kubernetes/logs <toolset_kubernetes_logs>`
@@ -20,7 +20,7 @@ Proxying through Grafana
2020
This is the recommended approach because we intend to add more capabilities to the toolset that are only available with Grafana.
2121

2222
Prerequisites
23-
-------------
23+
*************
2424

2525
A `Grafana service account token <https://grafana.com/docs/grafana/latest/administration/service-accounts/>`_
2626
with the following permissions:
@@ -79,7 +79,7 @@ A simple way to get the datasource UID is to access the Grafana API by running t
7979
8080
8181
Configuration (grafana proxy)
82-
-----------------------------
82+
*****************************
8383

8484

8585
.. md-tab-set::
@@ -98,7 +98,7 @@ Configuration (grafana proxy)
9898
grafana_datasource_uid: <the UID of the loki data source in Grafana>
9999
100100
kubernetes/logs:
101-
enabled: false # Disable HolmesGPT's default logging mechanism
101+
enabled: false # HolmesGPT's default logging mechanism MUST be disabled
102102
103103
104104
.. include:: ./_toolset_configuration.inc.rst
@@ -118,7 +118,7 @@ Configuration (grafana proxy)
118118
grafana_datasource_uid: <the UID of the loki data source in Grafana>
119119
120120
kubernetes/logs:
121-
enabled: false # Disable HolmesGPT's default logging mechanism
121+
enabled: false # HolmesGPT's default logging mechanism MUST be disabled
122122
123123
Direct connection
124124
^^^^^^^^^^^^^^^^^
@@ -128,7 +128,7 @@ This is done by not setting the ``grafana_datasource_uid`` field. Not setting th
128128
assume that it is directly connecting to Loki.
129129

130130
Configuration (direct connection)
131-
---------------------------------
131+
*********************************
132132

133133
.. md-tab-set::
134134

@@ -146,7 +146,7 @@ Configuration (direct connection)
146146
X-Scope-OrgID: "<tenant id>" # Set the X-Scope-OrgID if loki multitenancy is enabled
147147
148148
kubernetes/logs:
149-
enabled: false # Disable HolmesGPT's default logging mechanism
149+
enabled: false # HolmesGPT's default logging mechanism MUST be disabled
150150
151151
152152
.. include:: ./_toolset_configuration.inc.rst
@@ -166,13 +166,14 @@ Configuration (direct connection)
166166
X-Scope-OrgID: "<tenant id>" # Set the X-Scope-OrgID if loki multitenancy is enabled
167167
168168
kubernetes/logs:
169-
enabled: false # Disable HolmesGPT's default logging mechanism
169+
enabled: false # HolmesGPT's default logging mechanism MUST be disabled
170170
171171
172172
Advanced configuration
173173
^^^^^^^^^^^^^^^^^^^^^^
174174

175-
**Search labels**
175+
Search labels
176+
*************
176177

177178
You can tweak the labels used by the toolset to identify kubernetes resources. This is only needed if your
178179
Loki logs settings for ``pod``, and ``namespace`` differ from the defaults in the example above.
@@ -223,19 +224,7 @@ Use the following commands to list Loki's labels and determine which ones to use
223224
curl http://localhost:3100/loki/api/v1/labels
224225
225226
226-
**Disabling the default toolset**
227-
228-
If Loki is your primary datasource for logs, it is **advised** to disable the default HolmesGPT logging
229-
tool by disabling the ``kubernetes/logs`` toolset. Without this. HolmesGPT may still use kubectl to
230-
fetch logs instead of Loki.
231-
232-
.. code-block:: yaml
233-
234-
holmes:
235-
toolsets:
236-
kubernetes/logs:
237-
enabled: false
238-
227+
.. include:: ./_disable_default_logging_toolset.inc.rst
239228

240229
Capabilities
241230
^^^^^^^^^^^^
@@ -248,7 +237,5 @@ Capabilities
248237

249238
* - Tool Name
250239
- Description
251-
* - fetch_loki_logs_for_resource
252-
- Fetches the Loki logs for a given kubernetes resource
253-
* - fetch_loki_logs
254-
- Fetches Loki logs from any query
240+
* - fetch_pod_logs
241+
- Fetches pod logs

docs/configuration/holmesgpt/toolsets/grafanatempo.rst

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -135,9 +135,6 @@ Configuration (direct connection)
135135
headers:
136136
X-Scope-OrgID: "<tenant id>" # Set the X-Scope-OrgID if tempo multitenancy is enabled
137137
138-
kubernetes/logs:
139-
enabled: false # Disable HolmesGPT's default logging mechanism
140-
141138
142139
.. include:: ./_toolset_configuration.inc.rst
143140

@@ -155,9 +152,6 @@ Configuration (direct connection)
155152
headers:
156153
X-Scope-OrgID: "<tenant id>" # Set the X-Scope-OrgID if tempo multitenancy is enabled
157154
158-
kubernetes/logs:
159-
enabled: false # Disable HolmesGPT's default logging mechanism
160-
161155
162156
Advanced configuration
163157
^^^^^^^^^^^^^^^^^^^^^^

0 commit comments

Comments
 (0)