holmesgpt 0.13.2__py3-none-any.whl → 0.16.2a0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- holmes/__init__.py +1 -1
- holmes/clients/robusta_client.py +17 -4
- holmes/common/env_vars.py +40 -1
- holmes/config.py +114 -144
- holmes/core/conversations.py +53 -14
- holmes/core/feedback.py +191 -0
- holmes/core/investigation.py +18 -22
- holmes/core/llm.py +489 -88
- holmes/core/models.py +103 -1
- holmes/core/openai_formatting.py +13 -0
- holmes/core/prompt.py +1 -1
- holmes/core/safeguards.py +4 -4
- holmes/core/supabase_dal.py +293 -100
- holmes/core/tool_calling_llm.py +423 -323
- holmes/core/tools.py +311 -33
- holmes/core/tools_utils/token_counting.py +14 -0
- holmes/core/tools_utils/tool_context_window_limiter.py +57 -0
- holmes/core/tools_utils/tool_executor.py +13 -8
- holmes/core/toolset_manager.py +155 -4
- holmes/core/tracing.py +6 -1
- holmes/core/transformers/__init__.py +23 -0
- holmes/core/transformers/base.py +62 -0
- holmes/core/transformers/llm_summarize.py +174 -0
- holmes/core/transformers/registry.py +122 -0
- holmes/core/transformers/transformer.py +31 -0
- holmes/core/truncation/compaction.py +59 -0
- holmes/core/truncation/dal_truncation_utils.py +23 -0
- holmes/core/truncation/input_context_window_limiter.py +218 -0
- holmes/interactive.py +177 -24
- holmes/main.py +7 -4
- holmes/plugins/prompts/_fetch_logs.jinja2 +26 -1
- holmes/plugins/prompts/_general_instructions.jinja2 +1 -2
- holmes/plugins/prompts/_runbook_instructions.jinja2 +23 -12
- holmes/plugins/prompts/conversation_history_compaction.jinja2 +88 -0
- holmes/plugins/prompts/generic_ask.jinja2 +2 -4
- holmes/plugins/prompts/generic_ask_conversation.jinja2 +2 -1
- holmes/plugins/prompts/generic_ask_for_issue_conversation.jinja2 +2 -1
- holmes/plugins/prompts/generic_investigation.jinja2 +2 -1
- holmes/plugins/prompts/investigation_procedure.jinja2 +48 -0
- holmes/plugins/prompts/kubernetes_workload_ask.jinja2 +2 -1
- holmes/plugins/prompts/kubernetes_workload_chat.jinja2 +2 -1
- holmes/plugins/runbooks/__init__.py +117 -18
- holmes/plugins/runbooks/catalog.json +2 -0
- holmes/plugins/toolsets/__init__.py +21 -8
- holmes/plugins/toolsets/aks-node-health.yaml +46 -0
- holmes/plugins/toolsets/aks.yaml +64 -0
- holmes/plugins/toolsets/atlas_mongodb/mongodb_atlas.py +26 -36
- holmes/plugins/toolsets/azure_sql/azure_sql_toolset.py +0 -1
- holmes/plugins/toolsets/azure_sql/tools/analyze_connection_failures.py +10 -7
- holmes/plugins/toolsets/azure_sql/tools/analyze_database_connections.py +9 -6
- holmes/plugins/toolsets/azure_sql/tools/analyze_database_health_status.py +8 -6
- holmes/plugins/toolsets/azure_sql/tools/analyze_database_performance.py +8 -6
- holmes/plugins/toolsets/azure_sql/tools/analyze_database_storage.py +9 -6
- holmes/plugins/toolsets/azure_sql/tools/get_active_alerts.py +9 -7
- holmes/plugins/toolsets/azure_sql/tools/get_slow_queries.py +9 -6
- holmes/plugins/toolsets/azure_sql/tools/get_top_cpu_queries.py +9 -6
- holmes/plugins/toolsets/azure_sql/tools/get_top_data_io_queries.py +9 -6
- holmes/plugins/toolsets/azure_sql/tools/get_top_log_io_queries.py +9 -6
- holmes/plugins/toolsets/bash/bash_toolset.py +10 -13
- holmes/plugins/toolsets/bash/common/bash.py +7 -7
- holmes/plugins/toolsets/cilium.yaml +284 -0
- holmes/plugins/toolsets/coralogix/toolset_coralogix_logs.py +5 -3
- holmes/plugins/toolsets/datadog/datadog_api.py +490 -24
- holmes/plugins/toolsets/datadog/datadog_logs_instructions.jinja2 +21 -10
- holmes/plugins/toolsets/datadog/toolset_datadog_general.py +349 -216
- holmes/plugins/toolsets/datadog/toolset_datadog_logs.py +190 -19
- holmes/plugins/toolsets/datadog/toolset_datadog_metrics.py +101 -44
- holmes/plugins/toolsets/datadog/toolset_datadog_rds.py +13 -16
- holmes/plugins/toolsets/datadog/toolset_datadog_traces.py +25 -31
- holmes/plugins/toolsets/git.py +51 -46
- holmes/plugins/toolsets/grafana/common.py +15 -3
- holmes/plugins/toolsets/grafana/grafana_api.py +46 -24
- holmes/plugins/toolsets/grafana/grafana_tempo_api.py +454 -0
- holmes/plugins/toolsets/grafana/loki/instructions.jinja2 +9 -0
- holmes/plugins/toolsets/grafana/loki/toolset_grafana_loki.py +117 -0
- holmes/plugins/toolsets/grafana/toolset_grafana.py +211 -91
- holmes/plugins/toolsets/grafana/toolset_grafana_dashboard.jinja2 +27 -0
- holmes/plugins/toolsets/grafana/toolset_grafana_tempo.jinja2 +246 -11
- holmes/plugins/toolsets/grafana/toolset_grafana_tempo.py +653 -293
- holmes/plugins/toolsets/grafana/trace_parser.py +1 -1
- holmes/plugins/toolsets/internet/internet.py +6 -7
- holmes/plugins/toolsets/internet/notion.py +5 -6
- holmes/plugins/toolsets/investigator/core_investigation.py +42 -34
- holmes/plugins/toolsets/kafka.py +25 -36
- holmes/plugins/toolsets/kubernetes.yaml +58 -84
- holmes/plugins/toolsets/kubernetes_logs.py +6 -6
- holmes/plugins/toolsets/kubernetes_logs.yaml +32 -0
- holmes/plugins/toolsets/logging_utils/logging_api.py +80 -4
- holmes/plugins/toolsets/mcp/toolset_mcp.py +181 -55
- holmes/plugins/toolsets/newrelic/__init__.py +0 -0
- holmes/plugins/toolsets/newrelic/new_relic_api.py +125 -0
- holmes/plugins/toolsets/newrelic/newrelic.jinja2 +41 -0
- holmes/plugins/toolsets/newrelic/newrelic.py +163 -0
- holmes/plugins/toolsets/opensearch/opensearch.py +10 -17
- holmes/plugins/toolsets/opensearch/opensearch_logs.py +7 -7
- holmes/plugins/toolsets/opensearch/opensearch_ppl_query_docs.jinja2 +1616 -0
- holmes/plugins/toolsets/opensearch/opensearch_query_assist.py +78 -0
- holmes/plugins/toolsets/opensearch/opensearch_query_assist_instructions.jinja2 +223 -0
- holmes/plugins/toolsets/opensearch/opensearch_traces.py +13 -16
- holmes/plugins/toolsets/openshift.yaml +283 -0
- holmes/plugins/toolsets/prometheus/prometheus.py +915 -390
- holmes/plugins/toolsets/prometheus/prometheus_instructions.jinja2 +43 -2
- holmes/plugins/toolsets/prometheus/utils.py +28 -0
- holmes/plugins/toolsets/rabbitmq/toolset_rabbitmq.py +9 -10
- holmes/plugins/toolsets/robusta/robusta.py +236 -65
- holmes/plugins/toolsets/robusta/robusta_instructions.jinja2 +26 -9
- holmes/plugins/toolsets/runbook/runbook_fetcher.py +137 -26
- holmes/plugins/toolsets/service_discovery.py +1 -1
- holmes/plugins/toolsets/servicenow_tables/instructions.jinja2 +83 -0
- holmes/plugins/toolsets/servicenow_tables/servicenow_tables.py +426 -0
- holmes/plugins/toolsets/utils.py +88 -0
- holmes/utils/config_utils.py +91 -0
- holmes/utils/default_toolset_installation_guide.jinja2 +1 -22
- holmes/utils/env.py +7 -0
- holmes/utils/global_instructions.py +75 -10
- holmes/utils/holmes_status.py +2 -1
- holmes/utils/holmes_sync_toolsets.py +0 -2
- holmes/utils/krr_utils.py +188 -0
- holmes/utils/sentry_helper.py +41 -0
- holmes/utils/stream.py +61 -7
- holmes/version.py +34 -14
- holmesgpt-0.16.2a0.dist-info/LICENSE +178 -0
- {holmesgpt-0.13.2.dist-info → holmesgpt-0.16.2a0.dist-info}/METADATA +29 -27
- {holmesgpt-0.13.2.dist-info → holmesgpt-0.16.2a0.dist-info}/RECORD +126 -102
- holmes/core/performance_timing.py +0 -72
- holmes/plugins/toolsets/grafana/tempo_api.py +0 -124
- holmes/plugins/toolsets/grafana/toolset_grafana_loki.py +0 -110
- holmes/plugins/toolsets/newrelic.py +0 -231
- holmes/plugins/toolsets/servicenow/install.md +0 -37
- holmes/plugins/toolsets/servicenow/instructions.jinja2 +0 -3
- holmes/plugins/toolsets/servicenow/servicenow.py +0 -219
- holmesgpt-0.13.2.dist-info/LICENSE.txt +0 -21
- {holmesgpt-0.13.2.dist-info → holmesgpt-0.16.2a0.dist-info}/WHEEL +0 -0
- {holmesgpt-0.13.2.dist-info → holmesgpt-0.16.2a0.dist-info}/entry_points.txt +0 -0
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
toolsets:
|
|
2
|
+
openshift/core:
|
|
3
|
+
description: "Read access to OpenShift cluster resources including projects, routes, and deployment configs"
|
|
4
|
+
docs_url: "https://holmesgpt.dev/data-sources/builtin-toolsets/openshift/"
|
|
5
|
+
tags:
|
|
6
|
+
- core
|
|
7
|
+
prerequisites:
|
|
8
|
+
- command: "oc version --client"
|
|
9
|
+
|
|
10
|
+
# Note: Many tools in this toolset use transformers with llm_summarize
|
|
11
|
+
# to automatically summarize large oc outputs when a fast model is configured.
|
|
12
|
+
# This reduces context window usage while preserving key information for debugging.
|
|
13
|
+
|
|
14
|
+
tools:
|
|
15
|
+
- name: "oc_describe"
|
|
16
|
+
description: >
|
|
17
|
+
Run oc describe <kind> <name> -n <namespace>,
|
|
18
|
+
call this when users ask for description,
|
|
19
|
+
for example when a user asks
|
|
20
|
+
- 'describe pod xyz-123'
|
|
21
|
+
- 'show service xyz-123 in namespace my-ns'
|
|
22
|
+
- 'describe route my-route'
|
|
23
|
+
- 'show deployment config xyz'
|
|
24
|
+
command: "oc describe {{ kind }} {{ name }}{% if namespace %} -n {{ namespace }}{% endif %}"
|
|
25
|
+
transformers:
|
|
26
|
+
- name: llm_summarize
|
|
27
|
+
config:
|
|
28
|
+
input_threshold: 1000
|
|
29
|
+
prompt: |
|
|
30
|
+
Summarize this oc describe output focusing on:
|
|
31
|
+
- What needs attention or immediate action
|
|
32
|
+
- Resource status and health indicators
|
|
33
|
+
- Any errors, warnings, or non-standard states
|
|
34
|
+
- Key configuration details that could affect functionality
|
|
35
|
+
- OpenShift-specific features like routes, image streams, or security context constraints
|
|
36
|
+
- When possible, mention exact field names so the user can grep for specific details
|
|
37
|
+
- Be concise: aim for ≤ 50% of the original length; avoid repeating defaults/healthy/unchanged details
|
|
38
|
+
- Prefer aggregates and counts; list only outliers and actionable items
|
|
39
|
+
- Keep grep-friendly: include exact field names/values that matter``
|
|
40
|
+
|
|
41
|
+
- name: "oc_get_by_name"
|
|
42
|
+
description: "Run `oc get <kind> <name> --show-labels`"
|
|
43
|
+
command: "oc get --show-labels -o wide {{ kind }} {{ name }}{% if namespace %} -n {{ namespace }}{% endif %}"
|
|
44
|
+
|
|
45
|
+
- name: "oc_get_by_kind_in_namespace"
|
|
46
|
+
description: "Run `oc get <kind> -n <namespace> --show-labels` to get all resources of a given type in namespace"
|
|
47
|
+
command: "oc get --show-labels -o wide {{ kind }} -n {{ namespace }}"
|
|
48
|
+
transformers:
|
|
49
|
+
- name: llm_summarize
|
|
50
|
+
config:
|
|
51
|
+
input_threshold: 1000
|
|
52
|
+
prompt: |
|
|
53
|
+
Summarize this oc output focusing on:
|
|
54
|
+
- What needs attention or immediate action
|
|
55
|
+
- Group similar resources into aggregate descriptions
|
|
56
|
+
- Make sure to mention outliers, errors, and non-standard states
|
|
57
|
+
- List healthy resources as aggregate descriptions
|
|
58
|
+
- When listing unhealthy resources, also try to use aggregate descriptions when possible
|
|
59
|
+
- When possible, mention exact keywords so the user can rerun the command with | grep <keyword> and drill down
|
|
60
|
+
- Be concise and avoid expansion: target ≤ 50% of input size; prefer counts + outliers over full listings
|
|
61
|
+
|
|
62
|
+
- name: "oc_get_by_kind_in_cluster"
|
|
63
|
+
description: "Run `oc get -A <kind> --show-labels` to get all resources of a given type in the cluster"
|
|
64
|
+
command: "oc get -A --show-labels -o wide {{ kind }}"
|
|
65
|
+
transformers:
|
|
66
|
+
- name: llm_summarize
|
|
67
|
+
config:
|
|
68
|
+
input_threshold: 1000
|
|
69
|
+
prompt: |
|
|
70
|
+
Summarize this oc output focusing on:
|
|
71
|
+
- What needs attention or immediate action
|
|
72
|
+
- Group similar resources into a single line and description
|
|
73
|
+
- Make sure to mention outliers, errors, and non-standard states
|
|
74
|
+
- List healthy resources as aggregate descriptions
|
|
75
|
+
- When listing unhealthy resources, also try to use aggregate descriptions when possible
|
|
76
|
+
- When possible, mention exact keywords so the user can rerun the command with | grep <keyword> and drill down on the parts they care about
|
|
77
|
+
- Strive for ≤ 50% of the original size; keep results compact and grep-friendly (one line per aggregate)
|
|
78
|
+
|
|
79
|
+
- name: "oc_find_resource"
|
|
80
|
+
description: "Run `oc get {{ kind }} -A --show-labels | grep {{ keyword }}` to find a resource where you know a substring of the name, IP, namespace, or labels"
|
|
81
|
+
command: "oc get -A --show-labels -o wide {{ kind }} | grep {{ keyword }}"
|
|
82
|
+
|
|
83
|
+
- name: "oc_get_yaml"
|
|
84
|
+
description: "Run `oc get -o yaml` on a single OpenShift resource"
|
|
85
|
+
command: "oc get -o yaml {{ kind }} {{ name }}{% if namespace %} -n {{ namespace }}{% endif %}"
|
|
86
|
+
|
|
87
|
+
- name: "oc_events"
|
|
88
|
+
description: "Retrieve the events for a specific OpenShift resource. `resource_type` can be any kubernetes resource type: 'pod', 'service', 'deployment', 'deploymentconfig', 'route', etc."
|
|
89
|
+
command: "oc get events --field-selector involvedObject.kind={{ resource_type }},involvedObject.name={{ resource_name }}{% if namespace %} -n {{ namespace }}{% endif %}"
|
|
90
|
+
|
|
91
|
+
- name: "oc_projects"
|
|
92
|
+
description: "List all projects (namespaces) in the OpenShift cluster"
|
|
93
|
+
command: "oc get projects"
|
|
94
|
+
|
|
95
|
+
- name: "oc_project_current"
|
|
96
|
+
description: "Show the current project (namespace) context"
|
|
97
|
+
command: "oc project"
|
|
98
|
+
|
|
99
|
+
- name: "oc_routes"
|
|
100
|
+
description: "List all routes in a specific namespace or cluster-wide"
|
|
101
|
+
command: "oc get routes{% if namespace %} -n {{ namespace }}{% else %} -A{% endif %} -o wide"
|
|
102
|
+
|
|
103
|
+
- name: "oc_route_describe"
|
|
104
|
+
description: "Describe a specific route to see its configuration and status"
|
|
105
|
+
command: "oc describe route {{ route_name }}{% if namespace %} -n {{ namespace }}{% endif %}"
|
|
106
|
+
|
|
107
|
+
- name: "oc_imagestreams"
|
|
108
|
+
description: "List image streams in a namespace or cluster-wide"
|
|
109
|
+
command: "oc get imagestreams{% if namespace %} -n {{ namespace }}{% else %} -A{% endif %} -o wide"
|
|
110
|
+
|
|
111
|
+
- name: "oc_deploymentconfigs"
|
|
112
|
+
description: "List deployment configs in a namespace or cluster-wide"
|
|
113
|
+
command: "oc get deploymentconfigs{% if namespace %} -n {{ namespace }}{% else %} -A{% endif %} -o wide"
|
|
114
|
+
|
|
115
|
+
- name: "oc_buildconfigs"
|
|
116
|
+
description: "List build configs in a namespace or cluster-wide"
|
|
117
|
+
command: "oc get buildconfigs{% if namespace %} -n {{ namespace }}{% else %} -A{% endif %} -o wide"
|
|
118
|
+
|
|
119
|
+
- name: "oc_builds"
|
|
120
|
+
description: "List builds in a namespace or cluster-wide"
|
|
121
|
+
command: "oc get builds{% if namespace %} -n {{ namespace }}{% else %} -A{% endif %} -o wide"
|
|
122
|
+
|
|
123
|
+
- name: "oc_adm_openshift_audit_logs"
|
|
124
|
+
description: "Get OpenShift audit logs from a specified node"
|
|
125
|
+
command: "oc adm node-logs {{ node_name }} --path=openshift-apiserver/audit.log"
|
|
126
|
+
|
|
127
|
+
- name: "oc_adm_openshift_audit_logs_with_filter"
|
|
128
|
+
description: "Get OpenShift audit logs from a specified node with an applied filter"
|
|
129
|
+
command: "oc adm node-logs {{ node_name }} --path=openshift-apiserver/audit.log | grep {{ grep_filter }}"
|
|
130
|
+
|
|
131
|
+
- name: "oc_build_logs"
|
|
132
|
+
description: "Get logs from a specific build"
|
|
133
|
+
command: "oc logs build/{{ build_name }}{% if namespace %} -n {{ namespace }}{% endif %}"
|
|
134
|
+
|
|
135
|
+
- name: "openshift_jq_query"
|
|
136
|
+
user_description: "Query OpenShift Resources: oc get {{kind}} -n {{ namespace }} -o json | jq -r {{jq_expr}}"
|
|
137
|
+
description: >
|
|
138
|
+
Use oc to get json for all resources of a specific kind pipe the results to jq to filter them. Do not worry about escaping the jq_expr it will be done by the system on an unescaped expression that you give. e.g. give an expression like .items[] | .spec.containers[].image | select(test("^registry.redhat.io/") | not)
|
|
139
|
+
command: oc get {{ kind }} --all-namespaces -o json | jq -r {{ jq_expr }}
|
|
140
|
+
transformers:
|
|
141
|
+
- name: llm_summarize
|
|
142
|
+
config:
|
|
143
|
+
input_threshold: 1000
|
|
144
|
+
prompt: |
|
|
145
|
+
Summarize this jq query output focusing on:
|
|
146
|
+
- Key patterns and commonalities in the data
|
|
147
|
+
- Notable outliers, anomalies, or items that need attention
|
|
148
|
+
- Group similar results into aggregate descriptions when possible
|
|
149
|
+
- Highlight any empty results, null values, or missing data
|
|
150
|
+
- When applicable, mention specific resource names, namespaces, or values that stand out
|
|
151
|
+
- Organize findings in a structured way that helps with troubleshooting
|
|
152
|
+
- Be concise: aim for ≤ 50% of the original text; prioritize aggregates and actionable outliers
|
|
153
|
+
- Include grep-ready keys/values; avoid repeating entire objects or unchanged defaults
|
|
154
|
+
|
|
155
|
+
openshift/logs:
|
|
156
|
+
description: "Read pod logs using oc command"
|
|
157
|
+
docs_url: "https://holmesgpt.dev/data-sources/builtin-toolsets/openshift/"
|
|
158
|
+
tags:
|
|
159
|
+
- core
|
|
160
|
+
prerequisites:
|
|
161
|
+
- command: "oc version --client"
|
|
162
|
+
|
|
163
|
+
# Note: Log tools use transformers with llm_summarize to automatically
|
|
164
|
+
# summarize large log outputs when a fast model is configured. This helps
|
|
165
|
+
# focus on errors, patterns, and key information while reducing context usage.
|
|
166
|
+
|
|
167
|
+
tools:
|
|
168
|
+
- name: "oc_previous_logs"
|
|
169
|
+
description: "Run `oc logs --previous` on a single pod. Used to fetch logs for a pod that crashed and see logs from before the crash. Never give a deployment name or a resource that is not a pod."
|
|
170
|
+
command: "oc logs {{pod_name}} -n {{ namespace }} --previous"
|
|
171
|
+
|
|
172
|
+
- name: "oc_previous_logs_all_containers"
|
|
173
|
+
description: "Run `oc logs --previous` on a single pod. Used to fetch logs for a pod that crashed and see logs from before the crash."
|
|
174
|
+
command: "oc logs {{pod_name}} -n {{ namespace }} --previous --all-containers"
|
|
175
|
+
|
|
176
|
+
- name: "oc_container_previous_logs"
|
|
177
|
+
description: "Run `oc logs --previous` on a single container of a pod. Used to fetch logs for a pod that crashed and see logs from before the crash."
|
|
178
|
+
command: "oc logs {{pod_name}} -c {{container_name}} -n {{ namespace }} --previous"
|
|
179
|
+
|
|
180
|
+
- name: "oc_logs"
|
|
181
|
+
description: "Run `oc logs` on a single pod. Never give a deployment name or a resource that is not a pod."
|
|
182
|
+
command: "oc logs {{pod_name}} -n {{ namespace }}"
|
|
183
|
+
transformers:
|
|
184
|
+
- name: llm_summarize
|
|
185
|
+
config:
|
|
186
|
+
input_threshold: 1000
|
|
187
|
+
prompt: |
|
|
188
|
+
Summarize these pod logs focusing on:
|
|
189
|
+
- Errors, exceptions, and warning messages
|
|
190
|
+
- Recent activity patterns and trends
|
|
191
|
+
- Any authentication, connection, or startup issues
|
|
192
|
+
- Performance indicators (response times, throughput)
|
|
193
|
+
- Group similar log entries together
|
|
194
|
+
- When possible, mention exact error codes or keywords for easier searching
|
|
195
|
+
- Be concise: aim for ≤ 50% of the original text; prioritize aggregates and actionable outliers
|
|
196
|
+
- Include grep-ready keys/values; avoid repeating entire logs or unchanged defaults
|
|
197
|
+
|
|
198
|
+
- name: "oc_logs_all_containers"
|
|
199
|
+
description: "Run `oc logs` on all containers within a single pod."
|
|
200
|
+
command: "oc logs {{pod_name}} -n {{ namespace }} --all-containers"
|
|
201
|
+
transformers:
|
|
202
|
+
- name: llm_summarize
|
|
203
|
+
config:
|
|
204
|
+
input_threshold: 1000
|
|
205
|
+
prompt: |
|
|
206
|
+
Summarize these multi-container pod logs focusing on:
|
|
207
|
+
- Errors, exceptions, and warning messages by container
|
|
208
|
+
- Inter-container communication patterns
|
|
209
|
+
- Any authentication, connection, or startup issues
|
|
210
|
+
- Performance indicators and resource usage patterns
|
|
211
|
+
- Group similar log entries together by container
|
|
212
|
+
- When possible, mention exact error codes or keywords for easier searching
|
|
213
|
+
- Strive for ≤ 50% of the original size; keep results compact and grep-friendly (one line per aggregate)
|
|
214
|
+
- Prioritize aggregates and actionable outliers over comprehensive details
|
|
215
|
+
|
|
216
|
+
- name: "oc_container_logs"
|
|
217
|
+
description: "Run `oc logs` on a single container within a pod. This is to get the logs of a specific container in a multi-container pod."
|
|
218
|
+
command: "oc logs {{pod_name}} -c {{container_name}} -n {{ namespace }} "
|
|
219
|
+
|
|
220
|
+
- name: "oc_logs_grep"
|
|
221
|
+
description: "Search for a specific term in the logs of a single pod. Only provide a pod name, not a deployment or other resource."
|
|
222
|
+
command: "oc logs {{ pod_name }} -n {{ namespace }} | grep {{ search_term }}"
|
|
223
|
+
|
|
224
|
+
- name: "oc_logs_all_containers_grep"
|
|
225
|
+
description: "Search for a specific term in the logs of a single pod across all of its containers. Only provide a pod name, not a deployment or other resource."
|
|
226
|
+
command: "oc logs {{pod_name}} -n {{ namespace }} --all-containers | grep {{ search_term }}"
|
|
227
|
+
|
|
228
|
+
openshift/live-metrics:
|
|
229
|
+
description: "Provides real-time metrics for pods and nodes using oc"
|
|
230
|
+
docs_url: "https://holmesgpt.dev/data-sources/builtin-toolsets/openshift/"
|
|
231
|
+
llm_instructions: |
|
|
232
|
+
The oc_top_pods or oc_top_nodes do not return time series data or metrics that can be used for graphs
|
|
233
|
+
Do NOT use oc_top_pods or oc_top_nodes for graph generation - it only shows current snapshot data
|
|
234
|
+
oc_top_pods or oc_top_nodes are for current status checks, not historical graphs
|
|
235
|
+
tags:
|
|
236
|
+
- core
|
|
237
|
+
prerequisites:
|
|
238
|
+
- command: "oc adm top nodes"
|
|
239
|
+
tools:
|
|
240
|
+
- name: "oc_top_pods"
|
|
241
|
+
description: "Retrieves real-time CPU and memory usage for each pod in the cluster."
|
|
242
|
+
command: >
|
|
243
|
+
oc adm top pods -A
|
|
244
|
+
- name: "oc_top_nodes"
|
|
245
|
+
description: "Retrieves real-time CPU and memory usage for each node in the cluster."
|
|
246
|
+
command: >
|
|
247
|
+
oc adm top nodes
|
|
248
|
+
|
|
249
|
+
openshift/security:
|
|
250
|
+
description: "OpenShift security-related resources and configurations"
|
|
251
|
+
docs_url: "https://holmesgpt.dev/data-sources/builtin-toolsets/openshift/"
|
|
252
|
+
tags:
|
|
253
|
+
- core
|
|
254
|
+
prerequisites:
|
|
255
|
+
- command: "oc version --client"
|
|
256
|
+
tools:
|
|
257
|
+
- name: "oc_scc"
|
|
258
|
+
description: "List Security Context Constraints (SCCs) in the cluster"
|
|
259
|
+
command: "oc get scc{% if scc_name %} {{ scc_name }}{% endif %} -o wide"
|
|
260
|
+
|
|
261
|
+
- name: "oc_scc_describe"
|
|
262
|
+
description: "Describe a specific Security Context Constraint"
|
|
263
|
+
command: "oc describe scc {{ scc_name }}"
|
|
264
|
+
|
|
265
|
+
- name: "oc_policy_who_can"
|
|
266
|
+
description: "Check who can perform a specific action on a resource"
|
|
267
|
+
command: "oc policy who-can {{ verb }} {{ resource }}{% if namespace %} -n {{ namespace }}{% endif %}"
|
|
268
|
+
|
|
269
|
+
- name: "oc_policy_can_i"
|
|
270
|
+
description: "Check if the current user can perform a specific action"
|
|
271
|
+
command: "oc policy can-i {{ verb }} {{ resource }}{% if namespace %} -n {{ namespace }}{% endif %}"
|
|
272
|
+
|
|
273
|
+
- name: "oc_serviceaccounts"
|
|
274
|
+
description: "List service accounts in a namespace or cluster-wide"
|
|
275
|
+
command: "oc get serviceaccounts{% if namespace %} -n {{ namespace }}{% else %} -A{% endif %} -o wide"
|
|
276
|
+
|
|
277
|
+
- name: "oc_rolebindings"
|
|
278
|
+
description: "List role bindings in a namespace or cluster-wide"
|
|
279
|
+
command: "oc get rolebindings{% if namespace %} -n {{ namespace }}{% else %} -A{% endif %} -o wide"
|
|
280
|
+
|
|
281
|
+
- name: "oc_clusterrolebindings"
|
|
282
|
+
description: "List cluster role bindings"
|
|
283
|
+
command: "oc get clusterrolebindings -o wide"
|