holmesgpt 0.14.0a0__py3-none-any.whl → 0.14.1__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.

Potentially problematic release.


This version of holmesgpt might be problematic. Click here for more details.

Files changed (82) hide show
  1. holmes/__init__.py +1 -1
  2. holmes/clients/robusta_client.py +15 -4
  3. holmes/common/env_vars.py +8 -1
  4. holmes/config.py +66 -139
  5. holmes/core/investigation.py +1 -2
  6. holmes/core/llm.py +295 -52
  7. holmes/core/models.py +2 -0
  8. holmes/core/safeguards.py +4 -4
  9. holmes/core/supabase_dal.py +14 -8
  10. holmes/core/tool_calling_llm.py +110 -102
  11. holmes/core/tools.py +260 -25
  12. holmes/core/tools_utils/data_types.py +81 -0
  13. holmes/core/tools_utils/tool_context_window_limiter.py +33 -0
  14. holmes/core/tools_utils/tool_executor.py +2 -2
  15. holmes/core/toolset_manager.py +150 -3
  16. holmes/core/transformers/__init__.py +23 -0
  17. holmes/core/transformers/base.py +62 -0
  18. holmes/core/transformers/llm_summarize.py +174 -0
  19. holmes/core/transformers/registry.py +122 -0
  20. holmes/core/transformers/transformer.py +31 -0
  21. holmes/main.py +5 -0
  22. holmes/plugins/prompts/_fetch_logs.jinja2 +10 -1
  23. holmes/plugins/toolsets/aks-node-health.yaml +46 -0
  24. holmes/plugins/toolsets/aks.yaml +64 -0
  25. holmes/plugins/toolsets/atlas_mongodb/mongodb_atlas.py +17 -15
  26. holmes/plugins/toolsets/azure_sql/tools/analyze_connection_failures.py +8 -4
  27. holmes/plugins/toolsets/azure_sql/tools/analyze_database_connections.py +7 -3
  28. holmes/plugins/toolsets/azure_sql/tools/analyze_database_health_status.py +3 -3
  29. holmes/plugins/toolsets/azure_sql/tools/analyze_database_performance.py +3 -3
  30. holmes/plugins/toolsets/azure_sql/tools/analyze_database_storage.py +7 -3
  31. holmes/plugins/toolsets/azure_sql/tools/get_active_alerts.py +4 -4
  32. holmes/plugins/toolsets/azure_sql/tools/get_slow_queries.py +7 -3
  33. holmes/plugins/toolsets/azure_sql/tools/get_top_cpu_queries.py +7 -3
  34. holmes/plugins/toolsets/azure_sql/tools/get_top_data_io_queries.py +7 -3
  35. holmes/plugins/toolsets/azure_sql/tools/get_top_log_io_queries.py +7 -3
  36. holmes/plugins/toolsets/bash/bash_toolset.py +6 -6
  37. holmes/plugins/toolsets/bash/common/bash.py +7 -7
  38. holmes/plugins/toolsets/coralogix/toolset_coralogix_logs.py +5 -3
  39. holmes/plugins/toolsets/datadog/datadog_api.py +490 -24
  40. holmes/plugins/toolsets/datadog/datadog_logs_instructions.jinja2 +21 -10
  41. holmes/plugins/toolsets/datadog/toolset_datadog_general.py +344 -205
  42. holmes/plugins/toolsets/datadog/toolset_datadog_logs.py +189 -17
  43. holmes/plugins/toolsets/datadog/toolset_datadog_metrics.py +95 -30
  44. holmes/plugins/toolsets/datadog/toolset_datadog_rds.py +10 -10
  45. holmes/plugins/toolsets/datadog/toolset_datadog_traces.py +20 -20
  46. holmes/plugins/toolsets/git.py +21 -21
  47. holmes/plugins/toolsets/grafana/common.py +2 -2
  48. holmes/plugins/toolsets/grafana/toolset_grafana.py +4 -4
  49. holmes/plugins/toolsets/grafana/toolset_grafana_loki.py +5 -4
  50. holmes/plugins/toolsets/grafana/toolset_grafana_tempo.jinja2 +123 -23
  51. holmes/plugins/toolsets/grafana/toolset_grafana_tempo.py +165 -307
  52. holmes/plugins/toolsets/internet/internet.py +3 -3
  53. holmes/plugins/toolsets/internet/notion.py +3 -3
  54. holmes/plugins/toolsets/investigator/core_investigation.py +3 -3
  55. holmes/plugins/toolsets/kafka.py +18 -18
  56. holmes/plugins/toolsets/kubernetes.yaml +58 -0
  57. holmes/plugins/toolsets/kubernetes_logs.py +6 -6
  58. holmes/plugins/toolsets/kubernetes_logs.yaml +32 -0
  59. holmes/plugins/toolsets/logging_utils/logging_api.py +1 -1
  60. holmes/plugins/toolsets/mcp/toolset_mcp.py +4 -4
  61. holmes/plugins/toolsets/newrelic.py +5 -5
  62. holmes/plugins/toolsets/opensearch/opensearch.py +5 -5
  63. holmes/plugins/toolsets/opensearch/opensearch_logs.py +7 -7
  64. holmes/plugins/toolsets/opensearch/opensearch_traces.py +10 -10
  65. holmes/plugins/toolsets/prometheus/prometheus.py +841 -351
  66. holmes/plugins/toolsets/prometheus/prometheus_instructions.jinja2 +39 -2
  67. holmes/plugins/toolsets/prometheus/utils.py +28 -0
  68. holmes/plugins/toolsets/rabbitmq/toolset_rabbitmq.py +6 -4
  69. holmes/plugins/toolsets/robusta/robusta.py +10 -10
  70. holmes/plugins/toolsets/runbook/runbook_fetcher.py +4 -4
  71. holmes/plugins/toolsets/servicenow/servicenow.py +6 -6
  72. holmes/plugins/toolsets/utils.py +88 -0
  73. holmes/utils/config_utils.py +91 -0
  74. holmes/utils/env.py +7 -0
  75. holmes/utils/holmes_status.py +2 -1
  76. holmes/utils/sentry_helper.py +41 -0
  77. holmes/utils/stream.py +9 -0
  78. {holmesgpt-0.14.0a0.dist-info → holmesgpt-0.14.1.dist-info}/METADATA +10 -14
  79. {holmesgpt-0.14.0a0.dist-info → holmesgpt-0.14.1.dist-info}/RECORD +82 -72
  80. {holmesgpt-0.14.0a0.dist-info → holmesgpt-0.14.1.dist-info}/LICENSE.txt +0 -0
  81. {holmesgpt-0.14.0a0.dist-info → holmesgpt-0.14.1.dist-info}/WHEEL +0 -0
  82. {holmesgpt-0.14.0a0.dist-info → holmesgpt-0.14.1.dist-info}/entry_points.txt +0 -0
@@ -18,7 +18,7 @@ from holmes.plugins.toolsets.opensearch.opensearch_utils import (
18
18
  add_auth_header,
19
19
  get_search_url,
20
20
  )
21
- from holmes.core.tools import StructuredToolResult, ToolResultStatus
21
+ from holmes.core.tools import StructuredToolResult, StructuredToolResultStatus
22
22
  from holmes.plugins.toolsets.utils import get_param_or_raise, toolset_name_for_one_liner
23
23
 
24
24
  TRACES_FIELDS_CACHE_KEY = "cached_traces_fields"
@@ -48,7 +48,7 @@ class GetTracesFields(Tool):
48
48
  if cached_response:
49
49
  logging.debug("traces fields returned from cache")
50
50
  return StructuredToolResult(
51
- status=ToolResultStatus.SUCCESS,
51
+ status=StructuredToolResultStatus.SUCCESS,
52
52
  data=cached_response,
53
53
  params=params,
54
54
  )
@@ -81,7 +81,7 @@ class GetTracesFields(Tool):
81
81
  if self._cache:
82
82
  self._cache[TRACES_FIELDS_CACHE_KEY] = response
83
83
  return StructuredToolResult(
84
- status=ToolResultStatus.SUCCESS,
84
+ status=StructuredToolResultStatus.SUCCESS,
85
85
  data=response,
86
86
  params=params,
87
87
  )
@@ -90,21 +90,21 @@ class GetTracesFields(Tool):
90
90
  "Timeout while fetching opensearch traces fields", exc_info=True
91
91
  )
92
92
  return StructuredToolResult(
93
- status=ToolResultStatus.ERROR,
93
+ status=StructuredToolResultStatus.ERROR,
94
94
  error="Request timed out while fetching opensearch traces fields",
95
95
  params=params,
96
96
  )
97
97
  except RequestException as e:
98
98
  logging.warning("Failed to fetch opensearch traces fields", exc_info=True)
99
99
  return StructuredToolResult(
100
- status=ToolResultStatus.ERROR,
100
+ status=StructuredToolResultStatus.ERROR,
101
101
  error=f"Network error while opensearch traces fields: {str(e)}",
102
102
  params=params,
103
103
  )
104
104
  except Exception as e:
105
105
  logging.warning("Failed to process opensearch traces fields", exc_info=True)
106
106
  return StructuredToolResult(
107
- status=ToolResultStatus.ERROR,
107
+ status=StructuredToolResultStatus.ERROR,
108
108
  error=f"Unexpected error: {str(e)}",
109
109
  params=params,
110
110
  )
@@ -157,7 +157,7 @@ class TracesSearchQuery(Tool):
157
157
 
158
158
  logs_response.raise_for_status()
159
159
  return StructuredToolResult(
160
- status=ToolResultStatus.SUCCESS,
160
+ status=StructuredToolResultStatus.SUCCESS,
161
161
  data=json.dumps(logs_response.json()),
162
162
  params=params,
163
163
  )
@@ -166,14 +166,14 @@ class TracesSearchQuery(Tool):
166
166
  "Timeout while fetching opensearch traces search", exc_info=True
167
167
  )
168
168
  return StructuredToolResult(
169
- status=ToolResultStatus.ERROR,
169
+ status=StructuredToolResultStatus.ERROR,
170
170
  error=f"Request timed out while fetching opensearch traces search {err_msg}",
171
171
  params=params,
172
172
  )
173
173
  except RequestException as e:
174
174
  logging.warning("Failed to fetch opensearch traces search", exc_info=True)
175
175
  return StructuredToolResult(
176
- status=ToolResultStatus.ERROR,
176
+ status=StructuredToolResultStatus.ERROR,
177
177
  error=f"Network error while opensearch traces search {err_msg} : {str(e)}",
178
178
  params=params,
179
179
  )
@@ -182,7 +182,7 @@ class TracesSearchQuery(Tool):
182
182
  "Failed to process opensearch traces search ", exc_info=True
183
183
  )
184
184
  return StructuredToolResult(
185
- status=ToolResultStatus.ERROR,
185
+ status=StructuredToolResultStatus.ERROR,
186
186
  error=f"Unexpected error {err_msg}: {str(e)}",
187
187
  params=params,
188
188
  )