From 5f11cc98a5cf96a7873ca929ac20cd1721e6d74f Mon Sep 17 00:00:00 2001 From: Roi Glinik Date: Tue, 25 Nov 2025 16:31:53 +0200 Subject: [PATCH 01/14] wip parse stream event and create png image for prom and datadog tools --- .../core/playbooks/internal/ai_integration.py | 311 ++++++++++++++---- 1 file changed, 247 insertions(+), 64 deletions(-) diff --git a/src/robusta/core/playbooks/internal/ai_integration.py b/src/robusta/core/playbooks/internal/ai_integration.py index 80c17bafd..3666766a2 100644 --- a/src/robusta/core/playbooks/internal/ai_integration.py +++ b/src/robusta/core/playbooks/internal/ai_integration.py @@ -17,7 +17,9 @@ ) from robusta.core.model.events import ExecutionBaseEvent from robusta.core.playbooks.actions_registry import action -from robusta.core.playbooks.prometheus_enrichment_utils import build_chart_from_prometheus_result +from robusta.core.playbooks.prometheus_enrichment_utils import ( + build_chart_from_prometheus_result, +) from robusta.core.reporting import Finding, FindingSubject from robusta.core.reporting.base import EnrichmentType from robusta.core.reporting.consts import FindingSubjectType, FindingType @@ -36,7 +38,9 @@ ) from robusta.core.reporting.utils import convert_svg_to_png from robusta.core.schedule.model import FixedDelayRepeat -from robusta.integrations.kubernetes.autogenerated.events import KubernetesAnyChangeEvent +from robusta.integrations.kubernetes.autogenerated.events import ( + KubernetesAnyChangeEvent, +) from robusta.integrations.prometheus.utils import HolmesDiscovery from robusta.utils.error_codes import ActionException, ErrorCodes @@ -50,22 +54,36 @@ def build_investigation_title(params: AIInvestigateParams) -> str: def handle_holmes_error(e: Exception) -> NoReturn: if isinstance(e, requests.ConnectionError): - raise ActionException(ErrorCodes.HOLMES_CONNECTION_ERROR, "Holmes endpoint is currently unreachable.") + raise ActionException( + ErrorCodes.HOLMES_CONNECTION_ERROR, + "Holmes endpoint is currently unreachable.", + ) elif isinstance(e, requests.HTTPError): if e.response.status_code == 401 and "invalid_api_key" in e.response.text: - raise ActionException(ErrorCodes.HOLMES_REQUEST_ERROR, "Holmes invalid api key.") + raise ActionException( + ErrorCodes.HOLMES_REQUEST_ERROR, "Holmes invalid api key." + ) elif e.response.status_code == 429: - raise ActionException(ErrorCodes.HOLMES_RATE_LIMIT_EXCEEDED, "Holmes rate limit exceeded.") - raise ActionException(ErrorCodes.HOLMES_REQUEST_ERROR, "Holmes internal configuration error.") + raise ActionException( + ErrorCodes.HOLMES_RATE_LIMIT_EXCEEDED, "Holmes rate limit exceeded." + ) + raise ActionException( + ErrorCodes.HOLMES_REQUEST_ERROR, "Holmes internal configuration error." + ) else: - raise ActionException(ErrorCodes.HOLMES_UNEXPECTED_ERROR, "An unexpected error occured.") + raise ActionException( + ErrorCodes.HOLMES_UNEXPECTED_ERROR, "An unexpected error occured." + ) @action def ask_holmes(event: ExecutionBaseEvent, params: AIInvestigateParams): holmes_url = HolmesDiscovery.find_holmes_url(params.holmes_url) if not holmes_url: - raise ActionException(ErrorCodes.HOLMES_DISCOVERY_FAILED, "Robusta couldn't connect to the Holmes client.") + raise ActionException( + ErrorCodes.HOLMES_DISCOVERY_FAILED, + "Robusta couldn't connect to the Holmes client.", + ) investigation__title = build_investigation_title(params) subject = params.resource.dict() if params.resource else {} @@ -73,7 +91,9 @@ def ask_holmes(event: ExecutionBaseEvent, params: AIInvestigateParams): try: params.ask = add_labels_to_ask(params) holmes_req = HolmesRequest( - source=params.context.get("source", "unknown source") if params.context else "unknown source", + source=params.context.get("source", "unknown source") + if params.context + else "unknown source", title=investigation__title, subject=subject, context=params.context if params.context else {}, @@ -99,13 +119,17 @@ def ask_holmes(event: ExecutionBaseEvent, params: AIInvestigateParams): return else: - result = requests.post(f"{holmes_url}/api/investigate", data=holmes_req.json()) + result = requests.post( + f"{holmes_url}/api/investigate", data=holmes_req.json() + ) result.raise_for_status() holmes_result = HolmesResult(**json.loads(result.text)) title_suffix = ( f" on {params.resource.name}" - if params.resource and params.resource.name and params.resource.name.lower() != "unresolved" + if params.resource + and params.resource.name + and params.resource.name.lower() != "unresolved" else "" ) @@ -116,7 +140,9 @@ def ask_holmes(event: ExecutionBaseEvent, params: AIInvestigateParams): subject=FindingSubject( name=params.resource.name if params.resource else "", namespace=params.resource.namespace if params.resource else "", - subject_type=FindingSubjectType.from_kind(kind) if kind else FindingSubjectType.TYPE_NONE, + subject_type=FindingSubjectType.from_kind(kind) + if kind + else FindingSubjectType.TYPE_NONE, node=params.resource.node if params.resource else "", container=params.resource.container if params.resource else "", ), @@ -124,28 +150,37 @@ def ask_holmes(event: ExecutionBaseEvent, params: AIInvestigateParams): failure=False, ) finding.add_enrichment( - [HolmesResultsBlock(holmes_result=holmes_result)], enrichment_type=EnrichmentType.ai_analysis + [HolmesResultsBlock(holmes_result=holmes_result)], + enrichment_type=EnrichmentType.ai_analysis, ) event.add_finding(finding) except Exception as e: logging.exception( - f"Failed to get holmes analysis for {investigation__title} {params.context} {subject}", exc_info=True + f"Failed to get holmes analysis for {investigation__title} {params.context} {subject}", + exc_info=True, ) handle_holmes_error(e) @action -def holmes_workload_health(event: ExecutionBaseEvent, params: HolmesWorkloadHealthParams): +def holmes_workload_health( + event: ExecutionBaseEvent, params: HolmesWorkloadHealthParams +): holmes_url = HolmesDiscovery.find_holmes_url(params.holmes_url) if not holmes_url: - raise ActionException(ErrorCodes.HOLMES_DISCOVERY_FAILED, "Robusta couldn't connect to the Holmes client.") + raise ActionException( + ErrorCodes.HOLMES_DISCOVERY_FAILED, + "Robusta couldn't connect to the Holmes client.", + ) params.resource.cluster = event.get_context().cluster_name try: - result = requests.post(f"{holmes_url}/api/workload_health_check", data=params.json()) + result = requests.post( + f"{holmes_url}/api/workload_health_check", data=params.json() + ) result.raise_for_status() holmes_result = HolmesResult(**json.loads(result.text)) @@ -155,7 +190,9 @@ def holmes_workload_health(event: ExecutionBaseEvent, params: HolmesWorkloadHeal analysis = json.loads(holmes_result.analysis) healthy = analysis.get("workload_healthy") except Exception: - logging.exception("Error in holmes response format, analysis did not return the expected json format.") + logging.exception( + "Error in holmes response format, analysis did not return the expected json format." + ) pass if params.silent_healthy and healthy: @@ -179,22 +216,30 @@ def holmes_workload_health(event: ExecutionBaseEvent, params: HolmesWorkloadHeal failure=False, ) finding.add_enrichment( - [HolmesResultsBlock(holmes_result=holmes_result)], enrichment_type=EnrichmentType.ai_analysis + [HolmesResultsBlock(holmes_result=holmes_result)], + enrichment_type=EnrichmentType.ai_analysis, ) event.add_finding(finding) except Exception as e: - logging.exception(f"Failed to get holmes analysis for {params.resource}, {params.ask}", exc_info=True) + logging.exception( + f"Failed to get holmes analysis for {params.resource}, {params.ask}", + exc_info=True, + ) handle_holmes_error(e) def build_conversation_title(params: HolmesConversationParams) -> str: - return f"{params.resource}, {params.ask} for issue '{params.context.robusta_issue_id}'" + return ( + f"{params.resource}, {params.ask} for issue '{params.context.robusta_issue_id}'" + ) def add_labels_to_ask(params: HolmesConversationParams) -> str: label_string = ( - f"the alert has the following labels: {params.context.get('labels')}" if params.context.get("labels") else "" + f"the alert has the following labels: {params.context.get('labels')}" + if params.context.get("labels") + else "" ) ask = f"{params.ask}, {label_string}" if label_string else params.ask logging.debug(f"holmes ask query: {ask}") @@ -206,14 +251,19 @@ def add_labels_to_ask(params: HolmesConversationParams) -> str: def holmes_conversation(event: ExecutionBaseEvent, params: HolmesConversationParams): holmes_url = HolmesDiscovery.find_holmes_url(params.holmes_url) if not holmes_url: - raise ActionException(ErrorCodes.HOLMES_DISCOVERY_FAILED, "Robusta couldn't connect to the Holmes client.") + raise ActionException( + ErrorCodes.HOLMES_DISCOVERY_FAILED, + "Robusta couldn't connect to the Holmes client.", + ) conversation_title = build_conversation_title(params) try: holmes_req = HolmesConversationRequest( user_prompt=params.ask, - source=getattr(params.context, "source", "unknown source") if params.context else "unknown source", + source=getattr(params.context, "source", "unknown source") + if params.context + else "unknown source", resource=params.resource, conversation_type=params.conversation_type, context=params.context, @@ -243,13 +293,16 @@ def holmes_conversation(event: ExecutionBaseEvent, params: HolmesConversationPar failure=False, ) finding.add_enrichment( - [HolmesResultsBlock(holmes_result=holmes_result)], enrichment_type=EnrichmentType.ai_analysis + [HolmesResultsBlock(holmes_result=holmes_result)], + enrichment_type=EnrichmentType.ai_analysis, ) event.add_finding(finding) except Exception as e: - logging.exception(f"Failed to get holmes chat for {conversation_title}", exc_info=True) + logging.exception( + f"Failed to get holmes chat for {conversation_title}", exc_info=True + ) handle_holmes_error(e) @@ -258,7 +311,9 @@ class DelayedHealthCheckParams(HolmesWorkloadHealthParams): @action -def delayed_health_check(event: KubernetesAnyChangeEvent, action_params: DelayedHealthCheckParams): +def delayed_health_check( + event: KubernetesAnyChangeEvent, action_params: DelayedHealthCheckParams +): """ runs a holmes workload health action with a delay """ @@ -267,13 +322,19 @@ def delayed_health_check(event: KubernetesAnyChangeEvent, action_params: Delayed if not action_params.ask: action_params.ask = f"help me diagnose an issue with a workload {metadata.namespace}/{event.obj.kind}/{metadata.name} running in my Kubernetes cluster. Can you assist with identifying potential issues and pinpoint the root cause." - action_params.resource = ResourceInfo(name=metadata.name, namespace=metadata.namespace, kind=event.obj.kind) + action_params.resource = ResourceInfo( + name=metadata.name, namespace=metadata.namespace, kind=event.obj.kind + ) - logging.info(f"Scheduling health check. {metadata.name} delays: {action_params.delay_seconds}") + logging.info( + f"Scheduling health check. {metadata.name} delays: {action_params.delay_seconds}" + ) event.get_scheduler().schedule_action( action_func=holmes_workload_health, task_id=f"health_check_{metadata.name}_{metadata.namespace}", - scheduling_params=FixedDelayRepeat(repeat=1, seconds_delay=action_params.delay_seconds), + scheduling_params=FixedDelayRepeat( + repeat=1, seconds_delay=action_params.delay_seconds + ), named_sinks=event.named_sinks, action_params=action_params, replace_existing=True, @@ -285,7 +346,10 @@ def delayed_health_check(event: KubernetesAnyChangeEvent, action_params: Delayed def holmes_issue_chat(event: ExecutionBaseEvent, params: HolmesIssueChatParams): holmes_url = HolmesDiscovery.find_holmes_url(params.holmes_url) if not holmes_url: - raise ActionException(ErrorCodes.HOLMES_DISCOVERY_FAILED, "Robusta couldn't connect to the Holmes client.") + raise ActionException( + ErrorCodes.HOLMES_DISCOVERY_FAILED, + "Robusta couldn't connect to the Holmes client.", + ) conversation_title = build_conversation_title(params) params_resource_kind = params.resource.kind or "" @@ -320,13 +384,16 @@ def holmes_issue_chat(event: ExecutionBaseEvent, params: HolmesIssueChatParams): failure=False, ) finding.add_enrichment( - [HolmesChatResultsBlock(holmes_result=holmes_result)], enrichment_type=EnrichmentType.ai_analysis + [HolmesChatResultsBlock(holmes_result=holmes_result)], + enrichment_type=EnrichmentType.ai_analysis, ) event.add_finding(finding) except Exception as e: - logging.exception(f"Failed to get holmes chat for {conversation_title}", exc_info=True) + logging.exception( + f"Failed to get holmes chat for {conversation_title}", exc_info=True + ) handle_holmes_error(e) @@ -334,35 +401,42 @@ def holmes_issue_chat(event: ExecutionBaseEvent, params: HolmesIssueChatParams): def holmes_chat(event: ExecutionBaseEvent, params: HolmesChatParams): holmes_url = HolmesDiscovery.find_holmes_url(params.holmes_url) if not holmes_url: - raise ActionException(ErrorCodes.HOLMES_DISCOVERY_FAILED, "Robusta couldn't connect to the Holmes client.") + raise ActionException( + ErrorCodes.HOLMES_DISCOVERY_FAILED, + "Robusta couldn't connect to the Holmes client.", + ) cluster_name = event.get_context().cluster_name try: holmes_req = HolmesChatRequest( - ask=params.ask, - conversation_history=params.conversation_history, - model=params.model, - stream=params.stream, + ask=params.ask, + conversation_history=params.conversation_history, + model=params.model, + stream=params.stream, additional_system_prompt=params.additional_system_prompt, enable_tool_approval=params.enable_tool_approval, tool_decisions=params.tool_decisions, ) url = f"{holmes_url}/api/chat" if params.stream: - with requests.post( - url, - data=holmes_req.json(), - stream=True, - headers={"Connection": "keep-alive"}, - ) as resp: - resp.raise_for_status() - for line in resp.iter_content( - chunk_size=None, decode_unicode=True - ): # Avoid streaming chunks from holmes. send them as they arrive. - if line: - event.ws(data=line) - return + if params.render_graph_images: + stream_and_render_graphs(url, holmes_req, event) + return + else: + with requests.post( + url, + data=holmes_req.json(), + stream=True, + headers={"Connection": "keep-alive"}, + ) as resp: + resp.raise_for_status() + for line in resp.iter_content( + chunk_size=None, decode_unicode=True + ): # Avoid streaming chunks from holmes. send them as they arrive. + if line: + event.ws(data=line) + return result = requests.post(url, data=holmes_req.json()) result.raise_for_status() @@ -371,26 +445,40 @@ def holmes_chat(event: ExecutionBaseEvent, params: HolmesChatParams): if params.render_graph_images: try: for tool in holmes_result.tool_calls: - if tool.tool_name not in ["execute_prometheus_range_query", "query_datadog_metrics"]: + if tool.tool_name not in [ + "execute_prometheus_range_query", + "query_datadog_metrics", + ]: continue - holmes_result.analysis = re.sub(r"<<.*?>>", "", holmes_result.analysis).strip() + holmes_result.analysis = re.sub( + r"<<.*?>>", "", holmes_result.analysis + ).strip() json_content = json.loads(tool.result["data"]) - query_result = PrometheusQueryResult(data=json_content.get("data", {})) + query_result = PrometheusQueryResult( + data=json_content.get("data", {}) + ) try: output_type_str = json_content.get("output_type", "Plain") output_type = ChartValuesFormat[output_type_str] except KeyError: - output_type = ChartValuesFormat.Plain # fallback in case of an invalid string + output_type = ( + ChartValuesFormat.Plain + ) # fallback in case of an invalid string chart = build_chart_from_prometheus_result( - query_result, json_content.get("description", "graph"), values_format=output_type + query_result, + json_content.get("description", "graph"), + values_format=output_type, ) + contents = convert_svg_to_png(chart.render()) name = json_content.get("description", "graph").replace(" ", "_") holmes_result.files.append(FileBlock(f"{name}.png", contents)) holmes_result.tool_calls = [ - tool for tool in holmes_result.tool_calls if tool.tool_name != "execute_prometheus_range_query" + tool + for tool in holmes_result.tool_calls + if tool.tool_name != "execute_prometheus_range_query" ] except Exception: @@ -407,21 +495,29 @@ def holmes_chat(event: ExecutionBaseEvent, params: HolmesChatParams): ) finding.add_enrichment( - [HolmesChatResultsBlock(holmes_result=holmes_result)], enrichment_type=EnrichmentType.ai_analysis + [HolmesChatResultsBlock(holmes_result=holmes_result)], + enrichment_type=EnrichmentType.ai_analysis, ) event.add_finding(finding) except Exception as e: - logging.exception(f"Failed to get holmes chat for {cluster_name} cluster", exc_info=True) + logging.exception( + f"Failed to get holmes chat for {cluster_name} cluster", exc_info=True + ) handle_holmes_error(e) @action -def holmes_workload_chat(event: ExecutionBaseEvent, params: HolmesWorkloadHealthChatParams): +def holmes_workload_chat( + event: ExecutionBaseEvent, params: HolmesWorkloadHealthChatParams +): holmes_url = HolmesDiscovery.find_holmes_url(params.holmes_url) if not holmes_url: - raise ActionException(ErrorCodes.HOLMES_DISCOVERY_FAILED, "Robusta couldn't connect to the Holmes client.") + raise ActionException( + ErrorCodes.HOLMES_DISCOVERY_FAILED, + "Robusta couldn't connect to the Holmes client.", + ) try: holmes_req = HolmesWorkloadHealthRequest( @@ -431,7 +527,9 @@ def holmes_workload_chat(event: ExecutionBaseEvent, params: HolmesWorkloadHealth resource=params.resource, model=params.model, ) - result = requests.post(f"{holmes_url}/api/workload_health_chat", data=holmes_req.json()) + result = requests.post( + f"{holmes_url}/api/workload_health_chat", data=holmes_req.json() + ) result.raise_for_status() holmes_result = HolmesChatResult(**json.loads(result.text)) @@ -454,11 +552,96 @@ def holmes_workload_chat(event: ExecutionBaseEvent, params: HolmesWorkloadHealth failure=False, ) finding.add_enrichment( - [HolmesChatResultsBlock(holmes_result=holmes_result)], enrichment_type=EnrichmentType.ai_analysis + [HolmesChatResultsBlock(holmes_result=holmes_result)], + enrichment_type=EnrichmentType.ai_analysis, ) event.add_finding(finding) except Exception as e: - logging.exception(f"Failed to get holmes chat for health check of {params.resource}", exc_info=True) + logging.exception( + f"Failed to get holmes chat for health check of {params.resource}", + exc_info=True, + ) handle_holmes_error(e) + + +def stream_and_render_graphs(url, holmes_req, event): + with requests.post( + url, + data=holmes_req.json(), + stream=True, + headers={"Connection": "keep-alive"}, + ) as resp: + resp.raise_for_status() + for stream_event in resp.iter_content( + chunk_size=None, decode_unicode=True + ): # Avoid streaming chunks from holmes. send them as they arrive. + if stream_event: + logging.info(stream_event) + event_lines = stream_event.splitlines() + event_type = parse_sse_event_type(event_lines[0]) + if event_type != "tool_calling_result": + event.ws(data=stream_event) + continue + + tool_res = parse_tool_res(event_lines[1]) + if not tool_res or tool_res.get("name", "") not in [ + "execute_prometheus_range_query", + "query_datadog_metrics", + ]: + event.ws(data=stream_event) + continue + + try: + tool_data = json.loads(tool_res["result"]["data"]) + content, name = get_png_from_graph_tool(tool_data) + tool_res["result"]["data"] = content + event.ws(data=create_sse_message(event_type, tool_res)) + except Exception: + logging.exception("Failed to convert graph tool to png %s,", event_lines[1]) + event.ws(data=stream_event) + + +def parse_sse_event_type(line: str): + """Parse SSE line and return event type or None""" + line = line.strip() + if line.startswith("event: "): + event_type = line[7:].strip() + return event_type + return None + + +# todo change to parse toolcall +def parse_tool_res(line: str): + """Parse SSE data line and return parsed JSON or None""" + if line.startswith("data: "): + try: + data = json.loads(line[6:].strip()) + return data + except json.JSONDecodeError: + return None + return None + + +def create_sse_message(event_type: str, data: dict): + return f"event: {event_type}\ndata: {json.dumps(data)}\n\n" + + +def get_png_from_graph_tool(tool_result_data: dict): + query_result = PrometheusQueryResult(data=tool_result_data.get("data", {})) + try: + output_type_str = tool_result_data.get("output_type", "Plain") + output_type = ChartValuesFormat[output_type_str] + except KeyError: + output_type = ChartValuesFormat.Plain # fallback in case of an invalid string + + chart = build_chart_from_prometheus_result( + query_result, + tool_result_data.get("description", "graph"), + values_format=output_type, + ) + + contents = convert_svg_to_png(chart.render()) + name = tool_result_data.get("description", "graph").replace(" ", "_") + return contents, name From ec7e96e8dc781bf14c8447a70f32967f5343abf3 Mon Sep 17 00:00:00 2001 From: Roi Glinik Date: Wed, 26 Nov 2025 09:28:13 +0200 Subject: [PATCH 02/14] move utils func to stream file --- .../core/playbooks/internal/ai_integration.py | 28 ++----------------- src/robusta/core/stream/utils.py | 25 +++++++++++++++++ 2 files changed, 27 insertions(+), 26 deletions(-) create mode 100644 src/robusta/core/stream/utils.py diff --git a/src/robusta/core/playbooks/internal/ai_integration.py b/src/robusta/core/playbooks/internal/ai_integration.py index 3666766a2..738d97674 100644 --- a/src/robusta/core/playbooks/internal/ai_integration.py +++ b/src/robusta/core/playbooks/internal/ai_integration.py @@ -37,6 +37,7 @@ HolmesWorkloadHealthRequest, ) from robusta.core.reporting.utils import convert_svg_to_png +from robusta.core.stream.utils import create_sse_message, parse_sse_event_type, parse_sse_data from robusta.core.schedule.model import FixedDelayRepeat from robusta.integrations.kubernetes.autogenerated.events import ( KubernetesAnyChangeEvent, @@ -585,7 +586,7 @@ def stream_and_render_graphs(url, holmes_req, event): event.ws(data=stream_event) continue - tool_res = parse_tool_res(event_lines[1]) + tool_res = parse_sse_data(event_lines[1]) if not tool_res or tool_res.get("name", "") not in [ "execute_prometheus_range_query", "query_datadog_metrics", @@ -603,31 +604,6 @@ def stream_and_render_graphs(url, holmes_req, event): event.ws(data=stream_event) -def parse_sse_event_type(line: str): - """Parse SSE line and return event type or None""" - line = line.strip() - if line.startswith("event: "): - event_type = line[7:].strip() - return event_type - return None - - -# todo change to parse toolcall -def parse_tool_res(line: str): - """Parse SSE data line and return parsed JSON or None""" - if line.startswith("data: "): - try: - data = json.loads(line[6:].strip()) - return data - except json.JSONDecodeError: - return None - return None - - -def create_sse_message(event_type: str, data: dict): - return f"event: {event_type}\ndata: {json.dumps(data)}\n\n" - - def get_png_from_graph_tool(tool_result_data: dict): query_result = PrometheusQueryResult(data=tool_result_data.get("data", {})) try: diff --git a/src/robusta/core/stream/utils.py b/src/robusta/core/stream/utils.py new file mode 100644 index 000000000..bc6cf2850 --- /dev/null +++ b/src/robusta/core/stream/utils.py @@ -0,0 +1,25 @@ +import json + + +def parse_sse_event_type(line: str): + """Parse SSE line and return event type or None""" + line = line.strip() + if line.startswith("event: "): + event_type = line[7:].strip() + return event_type + return None + + +def parse_sse_data(line: str): + """Parse SSE data line and return parsed JSON or None""" + if line.startswith("data: "): + try: + data = json.loads(line[6:].strip()) + return data + except json.JSONDecodeError: + return None + return None + + +def create_sse_message(event_type: str, data: dict): + return f"event: {event_type}\ndata: {json.dumps(data)}\n\n" From 83595f15d9014e2a1db4c284115b7dafe06261b2 Mon Sep 17 00:00:00 2001 From: Roi Glinik Date: Wed, 26 Nov 2025 09:28:45 +0200 Subject: [PATCH 03/14] remove fe graph include text --- src/robusta/core/playbooks/internal/ai_integration.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/robusta/core/playbooks/internal/ai_integration.py b/src/robusta/core/playbooks/internal/ai_integration.py index 738d97674..1bc4f6a2d 100644 --- a/src/robusta/core/playbooks/internal/ai_integration.py +++ b/src/robusta/core/playbooks/internal/ai_integration.py @@ -582,6 +582,10 @@ def stream_and_render_graphs(url, holmes_req, event): logging.info(stream_event) event_lines = stream_event.splitlines() event_type = parse_sse_event_type(event_lines[0]) + + if event_type == "ai_answer_end": + stream_event = re.sub(r"<<.*?>>", "", stream_event).strip() + if event_type != "tool_calling_result": event.ws(data=stream_event) continue From 939e25e76a8ce0cb0feffe06b73e97510e4f9925 Mon Sep 17 00:00:00 2001 From: Roi Glinik Date: Wed, 26 Nov 2025 09:29:51 +0200 Subject: [PATCH 04/14] base64 bytes from png --- src/robusta/core/playbooks/internal/ai_integration.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/robusta/core/playbooks/internal/ai_integration.py b/src/robusta/core/playbooks/internal/ai_integration.py index 1bc4f6a2d..c5600a201 100644 --- a/src/robusta/core/playbooks/internal/ai_integration.py +++ b/src/robusta/core/playbooks/internal/ai_integration.py @@ -1,3 +1,4 @@ +import base64 import json import logging import re @@ -601,7 +602,8 @@ def stream_and_render_graphs(url, holmes_req, event): try: tool_data = json.loads(tool_res["result"]["data"]) content, name = get_png_from_graph_tool(tool_data) - tool_res["result"]["data"] = content + tool_res["result"]["data"] = base64.b64encode(content).decode("utf-8") + tool_res["result_type"] = "png" event.ws(data=create_sse_message(event_type, tool_res)) except Exception: logging.exception("Failed to convert graph tool to png %s,", event_lines[1]) From 8f634eb1badbf9ff8cb706814f0fddff03602b6c Mon Sep 17 00:00:00 2001 From: Roi Glinik Date: Wed, 26 Nov 2025 09:36:01 +0200 Subject: [PATCH 05/14] reuse png from graph logic --- .../core/playbooks/internal/ai_integration.py | 20 +------------------ 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/src/robusta/core/playbooks/internal/ai_integration.py b/src/robusta/core/playbooks/internal/ai_integration.py index c5600a201..ae4834aa8 100644 --- a/src/robusta/core/playbooks/internal/ai_integration.py +++ b/src/robusta/core/playbooks/internal/ai_integration.py @@ -456,25 +456,7 @@ def holmes_chat(event: ExecutionBaseEvent, params: HolmesChatParams): r"<<.*?>>", "", holmes_result.analysis ).strip() json_content = json.loads(tool.result["data"]) - query_result = PrometheusQueryResult( - data=json_content.get("data", {}) - ) - try: - output_type_str = json_content.get("output_type", "Plain") - output_type = ChartValuesFormat[output_type_str] - except KeyError: - output_type = ( - ChartValuesFormat.Plain - ) # fallback in case of an invalid string - - chart = build_chart_from_prometheus_result( - query_result, - json_content.get("description", "graph"), - values_format=output_type, - ) - - contents = convert_svg_to_png(chart.render()) - name = json_content.get("description", "graph").replace(" ", "_") + contents, name = get_png_from_graph_tool(json_content) holmes_result.files.append(FileBlock(f"{name}.png", contents)) holmes_result.tool_calls = [ From eb03ba4b750a78576381e26e43217327b90df820 Mon Sep 17 00:00:00 2001 From: Roi Glinik Date: Wed, 26 Nov 2025 09:48:14 +0200 Subject: [PATCH 06/14] use enum for the events --- .../core/playbooks/internal/ai_integration.py | 20 +++++++++++++------ src/robusta/core/stream/utils.py | 12 +++++++++++ 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/robusta/core/playbooks/internal/ai_integration.py b/src/robusta/core/playbooks/internal/ai_integration.py index ae4834aa8..1902117d8 100644 --- a/src/robusta/core/playbooks/internal/ai_integration.py +++ b/src/robusta/core/playbooks/internal/ai_integration.py @@ -38,7 +38,12 @@ HolmesWorkloadHealthRequest, ) from robusta.core.reporting.utils import convert_svg_to_png -from robusta.core.stream.utils import create_sse_message, parse_sse_event_type, parse_sse_data +from robusta.core.stream.utils import ( + create_sse_message, + parse_sse_event_type, + parse_sse_data, + StreamEvents, +) from robusta.core.schedule.model import FixedDelayRepeat from robusta.integrations.kubernetes.autogenerated.events import ( KubernetesAnyChangeEvent, @@ -562,14 +567,13 @@ def stream_and_render_graphs(url, holmes_req, event): chunk_size=None, decode_unicode=True ): # Avoid streaming chunks from holmes. send them as they arrive. if stream_event: - logging.info(stream_event) event_lines = stream_event.splitlines() event_type = parse_sse_event_type(event_lines[0]) - if event_type == "ai_answer_end": + if event_type == StreamEvents.ANSWER_END: stream_event = re.sub(r"<<.*?>>", "", stream_event).strip() - if event_type != "tool_calling_result": + if event_type != StreamEvents.TOOL_RESULT: event.ws(data=stream_event) continue @@ -584,11 +588,15 @@ def stream_and_render_graphs(url, holmes_req, event): try: tool_data = json.loads(tool_res["result"]["data"]) content, name = get_png_from_graph_tool(tool_data) - tool_res["result"]["data"] = base64.b64encode(content).decode("utf-8") + tool_res["result"]["data"] = base64.b64encode(content).decode( + "utf-8" + ) tool_res["result_type"] = "png" event.ws(data=create_sse_message(event_type, tool_res)) except Exception: - logging.exception("Failed to convert graph tool to png %s,", event_lines[1]) + logging.exception( + "Failed to convert graph tool to png %s,", event_lines[1] + ) event.ws(data=stream_event) diff --git a/src/robusta/core/stream/utils.py b/src/robusta/core/stream/utils.py index bc6cf2850..4624efbc2 100644 --- a/src/robusta/core/stream/utils.py +++ b/src/robusta/core/stream/utils.py @@ -1,4 +1,5 @@ import json +from enum import Enum def parse_sse_event_type(line: str): @@ -23,3 +24,14 @@ def parse_sse_data(line: str): def create_sse_message(event_type: str, data: dict): return f"event: {event_type}\ndata: {json.dumps(data)}\n\n" + + +class StreamEvents(str, Enum): + ANSWER_END = "ai_answer_end" + START_TOOL = "start_tool_calling" + TOOL_RESULT = "tool_calling_result" + ERROR = "error" + AI_MESSAGE = "ai_message" + APPROVAL_REQUIRED = "approval_required" + TOKEN_COUNT = "token_count" + CONVERSATION_HISTORY_COMPACTED = "conversation_history_compacted" From dc82906e116166f29b4b63d8a9460202c87592b2 Mon Sep 17 00:00:00 2001 From: Roi Glinik Date: Wed, 26 Nov 2025 09:48:31 +0200 Subject: [PATCH 07/14] remove unused fstring --- src/robusta/core/playbooks/internal/ai_integration.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/robusta/core/playbooks/internal/ai_integration.py b/src/robusta/core/playbooks/internal/ai_integration.py index 1902117d8..1847e578f 100644 --- a/src/robusta/core/playbooks/internal/ai_integration.py +++ b/src/robusta/core/playbooks/internal/ai_integration.py @@ -471,7 +471,7 @@ def holmes_chat(event: ExecutionBaseEvent, params: HolmesChatParams): ] except Exception: - logging.exception(f"Failed to convert tools to images") + logging.exception("Failed to convert tools to images") finding = Finding( title="AI Ask Chat", From c7beaef548a0d3a2dce3ccf64ad92f335e8f37fe Mon Sep 17 00:00:00 2001 From: Roi Glinik Date: Wed, 26 Nov 2025 11:00:43 +0200 Subject: [PATCH 08/14] fix use of value --- src/robusta/core/playbooks/internal/ai_integration.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/robusta/core/playbooks/internal/ai_integration.py b/src/robusta/core/playbooks/internal/ai_integration.py index 1847e578f..381f06541 100644 --- a/src/robusta/core/playbooks/internal/ai_integration.py +++ b/src/robusta/core/playbooks/internal/ai_integration.py @@ -570,10 +570,10 @@ def stream_and_render_graphs(url, holmes_req, event): event_lines = stream_event.splitlines() event_type = parse_sse_event_type(event_lines[0]) - if event_type == StreamEvents.ANSWER_END: + if event_type == StreamEvents.ANSWER_END.value: stream_event = re.sub(r"<<.*?>>", "", stream_event).strip() - if event_type != StreamEvents.TOOL_RESULT: + if event_type != StreamEvents.TOOL_RESULT.value: event.ws(data=stream_event) continue From 66734353d71abb50f7294642f85688a3d30270f4 Mon Sep 17 00:00:00 2001 From: Roi Glinik Date: Wed, 26 Nov 2025 11:01:15 +0200 Subject: [PATCH 09/14] add test case to check the holems_chat behavior --- tests/test_ai_integration.py | 190 +++++++++++++++++++++++++++++++++++ 1 file changed, 190 insertions(+) create mode 100644 tests/test_ai_integration.py diff --git a/tests/test_ai_integration.py b/tests/test_ai_integration.py new file mode 100644 index 000000000..5b0d7c2e3 --- /dev/null +++ b/tests/test_ai_integration.py @@ -0,0 +1,190 @@ +import json +import pytest +from unittest.mock import Mock, patch, MagicMock +from robusta.core.model.base_params import HolmesChatParams +from robusta.core.model.events import ExecutionBaseEvent +from robusta.core.playbooks.internal.ai_integration import holmes_chat +from robusta.core.stream.utils import create_sse_message, StreamEvents + + +def parse_sse_message(sse_message: str): + """Parse an SSE message and return (event_type, data_dict).""" + lines = sse_message.strip().split("\n") + event_type = None + data = None + for line in lines: + if line.startswith("event: "): + event_type = line[7:].strip() + elif line.startswith("data: "): + data = json.loads(line[6:].strip()) + return event_type, data + + +class MockResponse: + """Mock response object for requests.post that supports streaming SSE events.""" + + def __init__(self, sse_events): + self.sse_events = sse_events + self.status_code = 200 + + def raise_for_status(self): + """Mock raise_for_status method.""" + pass + + def iter_content(self, chunk_size=None, decode_unicode=True): + """Generator that yields SSE events.""" + for event in self.sse_events: + yield event + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + pass + + +@pytest.fixture +def mock_event(): + event = Mock(spec=ExecutionBaseEvent) + event.ws = Mock() + event.get_context = Mock() + event.get_context.return_value.cluster_name = "test-cluster" + event.add_finding = Mock() + return event + + +@pytest.fixture +def holmes_chat_params(): + return HolmesChatParams( + ask="What is the status of the deployment?", + conversation_history=[ + {"role": "user", "content": "Hello"}, + {"role": "assistant", "content": "Hi, how can I help?"}, + ], + model="gpt-4", + stream=True, + render_graph_images=True, + holmes_url="http://test-holmes:8080", + additional_system_prompt="Be concise", + enable_tool_approval=False, + ) + + +kubectl_tool = { + "tool_call_id": "tooluse_RYyDzKL1TWevnv3JvfhIww", + "role": "tool", + "description": "Count Kubernetes Resources: kubectl get pod --all-namespaces -o json | jq -c -r '.items[] | .metadata.name'", + "name": "kubernetes_count", + "result": { + "schema_version": "robusta:v1.0.0", + "status": "success", + "error": None, + "return_code": 0, + "data": "Command executed: kubectl get pod --all-namespaces -o json | jq -c -r '.items[] | .metadata.name'\n---\n 60 results\n---\nA *preview* of results is shown below (up to 10 results, up to 200 chars):\n 1\talertmanager-robusta-kube-prometheus-st-alertmanager-0\n 2\tcrashpod-77c67656c-qkfkn\n 3\tkrr-job-1954ac48-203f-4dbb-bfdf-49402d12bdc2-glb58\n 4\tkrr-job-51f7553b-fcad-4510-ba02-1a87a52c2315-nv4q7\n 5\tkrr-job-792188c7-c8fe-4f48-b6bc-4bb8d60717a8-gd4dj\n 6\tnginx-deployment-d556bf558-7x644\n 7\tpopeye-job-7982e9ab-fb66-464f-b4a2-a6b7ed2adb73-f99r2\n 8\tpopeye-job-d71cdd0c-92eb-488e-bc69-42f46e5a54d0-xs6mh\n 9\tprometheus-robusta-kube-prometheus-st-prometheus-0\n 10\trobusta-forwarder-764f79bf5b-lc9jl", + "url": None, + "invocation": 'echo "Command executed: kubectl get pod --all-namespaces -o json | jq -c -r \'.items[] | .metadata.name\'"\necho "---"\n\n# Execute the command and capture both stdout and stderr separately\ntemp_error=$(mktemp)\nmatches=$(kubectl get pod --all-namespaces -o json 2>"$temp_error" | jq -c -r \'.items[] | .metadata.name\' 2>>"$temp_error")\nexit_code=$?\nerror_output=$(cat "$temp_error")\nrm -f "$temp_error"\n\nif [ $exit_code -ne 0 ]; then\n echo "Error executing command (exit code: $exit_code):"\n echo "$error_output"\n exit $exit_code\nelse\n # Show any stderr warnings even if command succeeded\n if [ -n "$error_output" ]; then\n echo "Warnings/stderr output:"\n echo "$error_output"\n echo "---"\n fi\n\n # Filter out empty lines for accurate count\n filtered_matches=$(echo "$matches" | grep -v \'^$\' | grep -v \'^null$\')\n if [ -z "$filtered_matches" ]; then\n count=0\n else\n count=$(echo "$filtered_matches" | wc -l)\n fi\n preview=$(echo "$filtered_matches" | head -n 10 | cut -c 1-200 | nl)\n\n echo "$count results"\n echo "---"\n echo "A *preview* of results is shown below (up to 10 results, up to 200 chars):"\n echo "$preview"\nfi', + "params": {"kind": "pod", "jq_expr": ".items[] | .metadata.name"}, + "icon_url": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRPKA-U9m5BxYQDF1O7atMfj9EMMXEoGu4t0Q&s", + }, +} + +datadog_tool = { + "tool_call_id": "tooluse_3OxcweoOQLO_47WVTeC-SA", + "role": "tool", + "description": "Datadog: Query Metrics (Node CPU User Usage - Last 1 Hour)", + "name": "query_datadog_metrics", + "result": { + "schema_version": "robusta:v1.0.0", + "status": "success", + "error": None, + "return_code": None, + "data": '{\n "status": "success",\n "error_message": null,\n "random_key": "L7C5",\n "tool_name": "query_datadog_metrics",\n "description": "Node CPU User Usage - Last 1 Hour",\n "query": "system.cpu.user{*}",\n "start": "2025-11-25T14:20:17Z",\n "end": "2025-11-25T15:20:17Z",\n "step": 60,\n "output_type": "Percentage",\n "data": {\n "resultType": "matrix",\n "result": [\n {\n "metric": {\n "__name__": "system.cpu.user"\n },\n "values": [\n [\n 1764073220,\n "11.497647009320822"\n ],\n [\n 1764073240,\n "11.897418415931417"\n ],\n [\n 1764073260,\n "9.177484175000657"\n ],\n [\n 1764073280,\n "11.175071378170848"\n ],\n [\n 1764073300,\n "12.202757292755923"\n ],\n [\n 1764073320,\n "9.062731836502573"\n ],\n [\n 1764073340,\n "9.722311310908049"\n ],\n [\n 1764073360,\n "11.593790681526121"\n ],\n [\n 1764073380,\n "10.428452881489429"\n ],\n [\n 1764073400,\n "10.681149656416325"\n ],\n [\n 1764073420,\n "10.47686595847024"\n ],\n [\n 1764073440,\n "9.610235038738763"\n ],\n [\n 1764073460,\n "10.731352498588684"\n ],\n [\n 1764073480,\n "11.30864196049825"\n ],\n [\n 1764073500,\n "8.95367143881992"\n ],\n [\n 1764073520,\n "11.408187294645037"\n ],\n [\n 1764073540,\n "12.24438763133969"\n ],\n [\n 1764073560,\n "8.917150327916081"\n ],\n [\n 1764073580,\n "10.339755437099642"\n ],\n [\n 1764073600,\n "11.180332319689022"\n ],\n [\n 1764073620,\n "8.521326812524533"\n ],\n [\n 1764073640,\n "9.397463094015981"\n ],\n [\n 1764073660,\n "11.403082216172402"\n ],\n [\n 1764073680,\n "8.600455490298819"\n ],\n [\n 1764073700,\n "10.200019449056425"\n ],\n [\n 1764073720,\n "11.07380438386148"\n ],\n [\n 1764073740,\n "8.957280556745003"\n ],\n [\n 1764073760,\n "10.260519337517616"\n ],\n [\n 1764073780,\n "10.605474166284452"\n ],\n [\n 1764073800,\n "9.832253066469825"\n ],\n [\n 1764073820,\n "11.450528065300315"\n ],\n [\n 1764073840,\n "12.329729479693667"\n ],\n [\n 1764073860,\n "9.762210566175382"\n ],\n [\n 1764073880,\n "11.186269012690216"\n ],\n [\n 1764073900,\n "12.387762832688527"\n ],\n [\n 1764073920,\n "9.46121643546766"\n ],\n [\n 1764073940,\n "11.886144916545174"\n ],\n [\n 1764073960,\n "14.004224473259777"\n ],\n [\n 1764073980,\n "11.392103013044766"\n ],\n [\n 1764074000,\n "11.391088561604821"\n ],\n [\n 1764074020,\n "12.949367972034178"\n ],\n [\n 1764074040,\n "9.807194470374986"\n ],\n [\n 1764074060,\n "11.9628171017544"\n ],\n [\n 1764074080,\n "12.596095092738256"\n ],\n [\n 1764074100,\n "9.391677471103712"\n ],\n [\n 1764074120,\n "15.010615283380583"\n ],\n [\n 1764074140,\n "14.305756425296916"\n ],\n [\n 1764074160,\n "9.491673360664109"\n ],\n [\n 1764074180,\n "10.998333928961953"\n ],\n [\n 1764074200,\n "12.501552835674715"\n ],\n [\n 1764074220,\n "10.182627539279315"\n ],\n [\n 1764074240,\n "11.048783013407771"\n ],\n [\n 1764074260,\n "13.938976717606625"\n ],\n [\n 1764074280,\n "9.828927853994351"\n ],\n [\n 1764074300,\n "11.769693177648128"\n ],\n [\n 1764074320,\n "13.418180365912656"\n ],\n [\n 1764074340,\n "10.941499061439549"\n ],\n [\n 1764074360,\n "11.678202751909172"\n ],\n [\n 1764074380,\n "12.864131323972904"\n ],\n [\n 1764074400,\n "10.098404895032758"\n ],\n [\n 1764074420,\n "10.841631664129078"\n ],\n [\n 1764074440,\n "12.245070197472547"\n ],\n [\n 1764074460,\n "9.736263722153652"\n ],\n [\n 1764074480,\n "11.834225047820578"\n ],\n [\n 1764074500,\n "12.556133608274026"\n ],\n [\n 1764074520,\n "9.36438792195062"\n ],\n [\n 1764074540,\n "11.320352861403645"\n ],\n [\n 1764074560,\n "12.846953803765825"\n ],\n [\n 1764074580,\n "11.823618316557097"\n ],\n [\n 1764074600,\n "12.454640465465639"\n ],\n [\n 1764074620,\n "13.46102702067451"\n ],\n [\n 1764074640,\n "9.991321896145964"\n ],\n [\n 1764074660,\n "12.104817203340513"\n ],\n [\n 1764074680,\n "13.043451549102134"\n ],\n [\n 1764074700,\n "9.625698728873003"\n ],\n [\n 1764074720,\n "13.735210852910248"\n ],\n [\n 1764074740,\n "13.779471780408324"\n ],\n [\n 1764074760,\n "10.34351068612088"\n ],\n [\n 1764074780,\n "11.06237778275796"\n ],\n [\n 1764074800,\n "12.661974587097044"\n ],\n [\n 1764074820,\n "9.759910477177563"\n ],\n [\n 1764074840,\n "11.204254942591325"\n ],\n [\n 1764074860,\n "13.554092257345548"\n ],\n [\n 1764074880,\n "9.549400010644908"\n ],\n [\n 1764074900,\n "10.443284806259138"\n ],\n [\n 1764074920,\n "12.808593218950353"\n ],\n [\n 1764074940,\n "10.930731907797615"\n ],\n [\n 1764074960,\n "12.251668348428119"\n ],\n [\n 1764074980,\n "13.103989927048392"\n ],\n [\n 1764075000,\n "9.985083206070348"\n ],\n [\n 1764075020,\n "11.891199092884083"\n ],\n [\n 1764075040,\n "12.462970018050314"\n ],\n [\n 1764075060,\n "9.718230214847756"\n ],\n [\n 1764075080,\n "11.16170477353891"\n ],\n [\n 1764075100,\n "12.663882235458157"\n ],\n [\n 1764075120,\n "10.399801981495825"\n ],\n [\n 1764075140,\n "10.51365485425497"\n ],\n [\n 1764075160,\n "14.74760417635991"\n ],\n [\n 1764075180,\n "11.606312394523608"\n ],\n [\n 1764075200,\n "11.621289707075901"\n ],\n [\n 1764075220,\n "14.472888508127753"\n ],\n [\n 1764075240,\n "10.978381181157777"\n ],\n [\n 1764075260,\n "12.060160098915187"\n ],\n [\n 1764075280,\n "12.507441214843265"\n ],\n [\n 1764075300,\n "10.238384749632273"\n ],\n [\n 1764075320,\n "13.253770953832264"\n ],\n [\n 1764075340,\n "13.702760768520003"\n ],\n [\n 1764075360,\n "9.830476061994032"\n ],\n [\n 1764075380,\n "11.590948933947098"\n ],\n [\n 1764075400,\n "12.724135216627479"\n ],\n [\n 1764075420,\n "9.511661633673034"\n ],\n [\n 1764075440,\n "11.25374630915105"\n ],\n [\n 1764075460,\n "12.677301386882469"\n ],\n [\n 1764075480,\n "9.815140777759407"\n ],\n [\n 1764075500,\n "10.805061774716233"\n ],\n [\n 1764075520,\n "12.851178219205337"\n ],\n [\n 1764075540,\n "10.620350666907628"\n ],\n [\n 1764075560,\n "11.642024277774501"\n ],\n [\n 1764075580,\n "13.232491613128422"\n ],\n [\n 1764075600,\n "11.696719909480805"\n ],\n [\n 1764075620,\n "10.847754267278104"\n ],\n [\n 1764075640,\n "13.314911583607127"\n ],\n [\n 1764075660,\n "10.325759293513283"\n ],\n [\n 1764075680,\n "11.022537151184247"\n ],\n [\n 1764075700,\n "12.629090460110532"\n ],\n [\n 1764075720,\n "10.44479923179421"\n ],\n [\n 1764075740,\n "10.649959239635844"\n ],\n [\n 1764075760,\n "14.518618173177725"\n ],\n [\n 1764075780,\n "11.321412720223007"\n ],\n [\n 1764075800,\n "11.774820460161452"\n ],\n [\n 1764075820,\n "13.812555095442358"\n ],\n [\n 1764075840,\n "10.120145437597797"\n ],\n [\n 1764075860,\n "12.046317881845969"\n ],\n [\n 1764075880,\n "12.805767410233997"\n ],\n [\n 1764075900,\n "9.6656784649928"\n ],\n [\n 1764075920,\n "12.632129639418604"\n ],\n [\n 1764075940,\n "14.393283134249696"\n ],\n [\n 1764075960,\n "10.161545297749916"\n ],\n [\n 1764075980,\n "10.984265455486906"\n ],\n [\n 1764076000,\n "12.236982677242818"\n ],\n [\n 1764076020,\n "10.008177819392065"\n ],\n [\n 1764076040,\n "11.361748161787961"\n ],\n [\n 1764076060,\n "13.714046014489487"\n ],\n [\n 1764076080,\n "9.88049537496135"\n ],\n [\n 1764076100,\n "11.114650458544261"\n ],\n [\n 1764076120,\n "13.758089357291116"\n ],\n [\n 1764076140,\n "11.090980273106616"\n ],\n [\n 1764076160,\n "11.985101011491318"\n ],\n [\n 1764076180,\n "12.340779333817993"\n ],\n [\n 1764076200,\n "10.224300978883845"\n ],\n [\n 1764076220,\n "11.260988888730475"\n ],\n [\n 1764076240,\n "13.019929154137657"\n ],\n [\n 1764076260,\n "10.030551006825107"\n ],\n [\n 1764076280,\n "10.567454146978967"\n ],\n [\n 1764076300,\n "13.27085013349342"\n ],\n [\n 1764076320,\n "10.088068272561728"\n ],\n [\n 1764076340,\n "10.657376705268884"\n ],\n [\n 1764076360,\n "14.634303718266878"\n ],\n [\n 1764076380,\n "11.266816005157606"\n ],\n [\n 1764076400,\n "11.629290737544746"\n ],\n [\n 1764076420,\n "13.500646420361416"\n ],\n [\n 1764076440,\n "10.305605115426058"\n ],\n [\n 1764076460,\n "10.98116267453516"\n ],\n [\n 1764076480,\n "13.559637845511247"\n ],\n [\n 1764076500,\n "12.62638236735979"\n ],\n [\n 1764076520,\n "15.33249331452554"\n ],\n [\n 1764076540,\n "13.982126527177082"\n ],\n [\n 1764076560,\n "9.996950128990497"\n ],\n [\n 1764076580,\n "12.018939098109572"\n ],\n [\n 1764076600,\n "12.507007093969078"\n ],\n [\n 1764076620,\n "9.527177087266514"\n ],\n [\n 1764076640,\n "11.410318956641675"\n ],\n [\n 1764076660,\n "14.274524213529821"\n ],\n [\n 1764076680,\n "9.823602374863695"\n ],\n [\n 1764076700,\n "10.603017880372224"\n ],\n [\n 1764076720,\n "12.244592244047748"\n ],\n [\n 1764076740,\n "10.49303030909029"\n ],\n [\n 1764076760,\n "11.401758774529249"\n ],\n [\n 1764076780,\n "12.254855812737176"\n ],\n [\n 1764076800,\n "11.514570607099847"\n ]\n ]\n }\n ]\n }\n}', + "url": None, + "invocation": None, + "params": { + "query": "system.cpu.user{*}", + "description": "Node CPU User Usage - Last 1 Hour", + "from_time": "-3600", + "output_type": "Percentage", + }, + "icon_url": "https://imgix.datadoghq.com//img/about/presskit/DDlogo.jpg", + }, +} + + +prom_tool = { + "tool_call_id": "tooluse_wzkFIucoQBCDTh2R0K-Aow", + "role": "tool", + "description": "Prometheus: Query (Node memory used over the last hour)", + "name": "execute_prometheus_range_query", + "result": { + "schema_version": "robusta:v1.0.0", + "status": "success", + "error": None, + "return_code": None, + "data": '{\n "status": "success",\n "error_message": null,\n "data": {\n "resultType": "matrix",\n "result": [\n {\n "metric": {\n "container": "node-exporter",\n "endpoint": "http-metrics",\n "instance": "10.224.0.4:9104",\n "job": "node-exporter",\n "namespace": "default",\n "pod": "robusta-prometheus-node-exporter-6wpxv",\n "service": "robusta-prometheus-node-exporter"\n },\n "values": [\n [\n 1764072332,\n "3572977664"\n ],\n [\n 1764072392,\n "3537756160"\n ],\n [\n 1764072452,\n "3545972736"\n ],\n [\n 1764072512,\n "3544150016"\n ],\n [\n 1764072572,\n "3533594624"\n ],\n [\n 1764072632,\n "3554119680"\n ],\n [\n 1764072692,\n "3554951168"\n ],\n [\n 1764072752,\n "3519492096"\n ],\n [\n 1764072812,\n "3540918272"\n ],\n [\n 1764072872,\n "3544043520"\n ],\n [\n 1764072932,\n "3558350848"\n ],\n [\n 1764072992,\n "3552022528"\n ],\n [\n 1764073052,\n "3565129728"\n ],\n [\n 1764073112,\n "3535163392"\n ],\n [\n 1764073172,\n "3578920960"\n ],\n [\n 1764073232,\n "3543629824"\n ],\n [\n 1764073292,\n "3550691328"\n ],\n [\n 1764073352,\n "3560235008"\n ],\n [\n 1764073412,\n "3555373056"\n ],\n [\n 1764073472,\n "3570520064"\n ],\n [\n 1764073532,\n "3574845440"\n ],\n [\n 1764073592,\n "3539652608"\n ],\n [\n 1764073652,\n "3569573888"\n ],\n [\n 1764073712,\n "3580882944"\n ],\n [\n 1764073772,\n "3602333696"\n ],\n [\n 1764073832,\n "3616030720"\n ],\n [\n 1764073892,\n "3608498176"\n ],\n [\n 1764073952,\n "3610931200"\n ],\n [\n 1764074012,\n "3606700032"\n ],\n [\n 1764074072,\n "3616079872"\n ],\n [\n 1764074132,\n "3614482432"\n ],\n [\n 1764074192,\n "3613757440"\n ],\n [\n 1764074252,\n "3587878912"\n ],\n [\n 1764074312,\n "3598036992"\n ],\n [\n 1764074372,\n "3616669696"\n ],\n [\n 1764074432,\n "3594452992"\n ],\n [\n 1764074492,\n "3601604608"\n ],\n [\n 1764074552,\n "3606708224"\n ],\n [\n 1764074612,\n "3617087488"\n ],\n [\n 1764074672,\n "3610701824"\n ],\n [\n 1764074732,\n "3621089280"\n ],\n [\n 1764074792,\n "3627216896"\n ],\n [\n 1764074852,\n "3626217472"\n ],\n [\n 1764074912,\n "3622838272"\n ],\n [\n 1764074972,\n "3613995008"\n ],\n [\n 1764075032,\n "3606310912"\n ],\n [\n 1764075092,\n "3634552832"\n ],\n [\n 1764075152,\n "3618246656"\n ],\n [\n 1764075212,\n "3601166336"\n ],\n [\n 1764075272,\n "3569119232"\n ],\n [\n 1764075332,\n "3566489600"\n ],\n [\n 1764075392,\n "3572002816"\n ],\n [\n 1764075452,\n "3608752128"\n ],\n [\n 1764075512,\n "3610542080"\n ],\n [\n 1764075572,\n "3636908032"\n ],\n [\n 1764075632,\n "3640434688"\n ],\n [\n 1764075692,\n "3626635264"\n ],\n [\n 1764075752,\n "3589390336"\n ],\n [\n 1764075812,\n "3583930368"\n ],\n [\n 1764075872,\n "3558903808"\n ],\n [\n 1764075932,\n "3556708352"\n ]\n ]\n },\n {\n "metric": {\n "container": "node-exporter",\n "endpoint": "http-metrics",\n "instance": "10.224.0.5:9104",\n "job": "node-exporter",\n "namespace": "default",\n "pod": "robusta-prometheus-node-exporter-vrptl",\n "service": "robusta-prometheus-node-exporter"\n },\n "values": [\n [\n 1764072332,\n "3119882240"\n ],\n [\n 1764072392,\n "3127107584"\n ],\n [\n 1764072452,\n "3114704896"\n ],\n [\n 1764072512,\n "3098738688"\n ],\n [\n 1764072572,\n "3096498176"\n ],\n [\n 1764072632,\n "3099578368"\n ],\n [\n 1764072692,\n "3093700608"\n ],\n [\n 1764072752,\n "3132846080"\n ],\n [\n 1764072812,\n "3128274944"\n ],\n [\n 1764072872,\n "3111079936"\n ],\n [\n 1764072932,\n "3111907328"\n ],\n [\n 1764072992,\n "3103399936"\n ],\n [\n 1764073052,\n "3106709504"\n ],\n [\n 1764073112,\n "3102035968"\n ],\n [\n 1764073172,\n "3106697216"\n ],\n [\n 1764073232,\n "3148988416"\n ],\n [\n 1764073292,\n "3110178816"\n ],\n [\n 1764073352,\n "3127742464"\n ],\n [\n 1764073412,\n "3119374336"\n ],\n [\n 1764073472,\n "3135569920"\n ],\n [\n 1764073532,\n "3135770624"\n ],\n [\n 1764073592,\n "3134320640"\n ],\n [\n 1764073652,\n "3138416640"\n ],\n [\n 1764073712,\n "3134271488"\n ],\n [\n 1764073772,\n "3128188928"\n ],\n [\n 1764073832,\n "3127025664"\n ],\n [\n 1764073892,\n "3126128640"\n ],\n [\n 1764073952,\n "3148656640"\n ],\n [\n 1764074012,\n "3141668864"\n ],\n [\n 1764074072,\n "3130101760"\n ],\n [\n 1764074132,\n "3126611968"\n ],\n [\n 1764074192,\n "3125719040"\n ],\n [\n 1764074252,\n "3126050816"\n ],\n [\n 1764074312,\n "3127148544"\n ],\n [\n 1764074372,\n "3122876416"\n ],\n [\n 1764074432,\n "3118923776"\n ],\n [\n 1764074492,\n "3117084672"\n ],\n [\n 1764074552,\n "3138912256"\n ],\n [\n 1764074612,\n "3138990080"\n ],\n [\n 1764074672,\n "3128147968"\n ],\n [\n 1764074732,\n "3127156736"\n ],\n [\n 1764074792,\n "3131760640"\n ],\n [\n 1764074852,\n "3148009472"\n ],\n [\n 1764074912,\n "3134013440"\n ],\n [\n 1764074972,\n "3137740800"\n ],\n [\n 1764075032,\n "3140558848"\n ],\n [\n 1764075092,\n "3147956224"\n ],\n [\n 1764075152,\n "3136434176"\n ],\n [\n 1764075212,\n "3159691264"\n ],\n [\n 1764075272,\n "3135582208"\n ],\n [\n 1764075332,\n "3128713216"\n ],\n [\n 1764075392,\n "3120377856"\n ],\n [\n 1764075452,\n "3119050752"\n ],\n [\n 1764075512,\n "3113914368"\n ],\n [\n 1764075572,\n "3105837056"\n ],\n [\n 1764075632,\n "3106181120"\n ],\n [\n 1764075692,\n "3099713536"\n ],\n [\n 1764075752,\n "3103080448"\n ],\n [\n 1764075812,\n "3120189440"\n ],\n [\n 1764075872,\n "3118223360"\n ],\n [\n 1764075932,\n "3128819712"\n ]\n ]\n },\n {\n "metric": {\n "container": "node-exporter",\n "endpoint": "http-metrics",\n "instance": "10.224.0.8:9104",\n "job": "node-exporter",\n "namespace": "default",\n "pod": "robusta-prometheus-node-exporter-4xswz",\n "service": "robusta-prometheus-node-exporter"\n },\n "values": [\n [\n 1764072332,\n "1550110720"\n ],\n [\n 1764072392,\n "1556418560"\n ],\n [\n 1764072452,\n "1552818176"\n ],\n [\n 1764072512,\n "1568550912"\n ],\n [\n 1764072572,\n "1570553856"\n ],\n [\n 1764072632,\n "1565925376"\n ],\n [\n 1764072692,\n "1558519808"\n ],\n [\n 1764072752,\n "1565147136"\n ],\n [\n 1764072812,\n "1556869120"\n ],\n [\n 1764072872,\n "1564893184"\n ],\n [\n 1764072932,\n "1561124864"\n ],\n [\n 1764072992,\n "1558581248"\n ],\n [\n 1764073052,\n "1553575936"\n ],\n [\n 1764073112,\n "1555468288"\n ],\n [\n 1764073172,\n "1560424448"\n ],\n [\n 1764073232,\n "1563721728"\n ],\n [\n 1764073292,\n "1565892608"\n ],\n [\n 1764073352,\n "1569091584"\n ],\n [\n 1764073412,\n "1560940544"\n ],\n [\n 1764073472,\n "1558835200"\n ],\n [\n 1764073532,\n "1564901376"\n ],\n [\n 1764073592,\n "1557291008"\n ],\n [\n 1764073652,\n "1557823488"\n ],\n [\n 1764073712,\n "1564626944"\n ],\n [\n 1764073772,\n "1554653184"\n ],\n [\n 1764073832,\n "1565917184"\n ],\n [\n 1764073892,\n "1564991488"\n ],\n [\n 1764073952,\n "1564946432"\n ],\n [\n 1764074012,\n "1550614528"\n ],\n [\n 1764074072,\n "1554907136"\n ],\n [\n 1764074132,\n "1567526912"\n ],\n [\n 1764074192,\n "1558114304"\n ],\n [\n 1764074252,\n "1560743936"\n ],\n [\n 1764074312,\n "1562632192"\n ],\n [\n 1764074372,\n "1570713600"\n ],\n [\n 1764074432,\n "1562075136"\n ],\n [\n 1764074492,\n "1578500096"\n ],\n [\n 1764074552,\n "1577680896"\n ],\n [\n 1764074612,\n "1563664384"\n ],\n [\n 1764074672,\n "1573056512"\n ],\n [\n 1764074732,\n "1555251200"\n ],\n [\n 1764074792,\n "1563787264"\n ],\n [\n 1764074852,\n "1568706560"\n ],\n [\n 1764074912,\n "1571561472"\n ],\n [\n 1764074972,\n "1564798976"\n ],\n [\n 1764075032,\n "1570070528"\n ],\n [\n 1764075092,\n "1564405760"\n ],\n [\n 1764075152,\n "1560776704"\n ],\n [\n 1764075212,\n "1569566720"\n ],\n [\n 1764075272,\n "1563283456"\n ],\n [\n 1764075332,\n "1560375296"\n ],\n [\n 1764075392,\n "1557499904"\n ],\n [\n 1764075452,\n "1565253632"\n ],\n [\n 1764075512,\n "1539444736"\n ],\n [\n 1764075572,\n "1565818880"\n ],\n [\n 1764075632,\n "1568919552"\n ],\n [\n 1764075692,\n "1561030656"\n ],\n [\n 1764075752,\n "1566998528"\n ],\n [\n 1764075812,\n "1561960448"\n ],\n [\n 1764075872,\n "1561812992"\n ],\n [\n 1764075932,\n "1569964032"\n ]\n ]\n }\n ]\n },\n "random_key": "95tC",\n "tool_name": "execute_prometheus_range_query",\n "description": "Node memory used over the last hour",\n "query": "node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes",\n "start": "2025-11-25T12:05:32Z",\n "end": "2025-11-25T13:05:32Z",\n "step": 60.0,\n "output_type": "Bytes",\n "data_summary": null\n}', + "url": None, + "invocation": None, + "params": { + "query": "node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes", + "description": "Node memory used over the last hour", + "output_type": "Bytes", + "start": "-3600", + }, + "icon_url": "https://upload.wikimedia.org/wikipedia/commons/3/38/Prometheus_software_logo.svg", + }, +} + + +@patch("robusta.core.playbooks.internal.ai_integration.requests.post") +def test_holmes_chat_streaming_with_sse_events( + mock_post, mock_event, holmes_chat_params +): + """Test holmes_chat function with streaming SSE events.""" + + sse_events = [ + create_sse_message( + StreamEvents.START_TOOL.value, + { + "tool_name": "execute_prometheus_range_query", + "id": "tooluse_NXaZGTwuRKS1ogDEKP4M9Q", + }, + ), + create_sse_message(StreamEvents.TOOL_RESULT.value, kubectl_tool), + create_sse_message(StreamEvents.TOOL_RESULT.value, datadog_tool), + create_sse_message(StreamEvents.TOOL_RESULT.value, prom_tool), + create_sse_message( + StreamEvents.ANSWER_END.value, + { + "analysis": 'some analysis... add the << {"type": "datadogql", "tool_name": "query_datadog_metrics", "random_key": "U572"} >> rest of analysis', + }, + ), + ] + + mock_response = MockResponse(sse_events) + mock_post.return_value = mock_response + + holmes_chat(mock_event, holmes_chat_params) + mock_post.assert_called_once() + assert mock_event.ws.call_count == len(sse_events) + + # events should stay the same + mock_event.ws.call_args_list[0][1]["data"] = sse_events[0] + mock_event.ws.call_args_list[1][1]["data"] = sse_events[1] + # graph tools change + datadog_output = mock_event.ws.call_args_list[2][1]["data"] + event_type, data = parse_sse_message(datadog_output) + assert data["result"]["data"] == "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" + + prom_output = mock_event.ws.call_args_list[3][1]["data"] + event_type, data = parse_sse_message(prom_output) + assert data["result"]["data"] == "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2DKRtjS0EZmapi2E+OMf/8h7BXdIRj8HG63pscce++STT/TbTzzxxF133XXq1CmPxzNlypT8/Hxja4s9pC1TOG2iloC0paGNyMTClom0paGNyNQ07dLS0qqqqvz8/Pnz5+/YscPYwvC98CrQMaumpmbNmjUOh8Pr9Q4cOPDOO+8UQhw8eNBms3F2qtVFpk3UbYSFLRNpy0QbkYaFLRNpy3T+NqKqqtXKHz+2munTp7/88stut/vUqVMPP/zwxo0bWdgdBb8GMSs5OfmJJ56Ii4s7cODAsGHD9I1nzpwpKSmprKzctGnTK6+8UlFRYWyRMSMybT1qIYSqqsFgUAjh8/kMrjImnGdhV1RUrFmzJi8vr7S01NgiYwZpy3SeNnL8+PHFixe/8MILNO1WcZ6FbWxhMYm0ZTpPG1EU5dFHH/3Nb37T0NBgdJkxQn8TbCFE+L2COczuKLgCHMvKyspmz5790EMPCSFevgmjAAAQb0lEQVRGjhypbywuLp47d25ubm6XLl3eeeedl156yeFwGFpmjIiatuD94tpA1Kg1TZs7d+6oUaPi4+M3btz4wgsvZGRkGFpmjCBtmVpqIytXrhw1alR1dfX777//X//1X3FxccbVGCNailoI0djYuHfv3o8//njatGlcyWkVpC1TS0175cqVqampDodj586dDz30EGlfvKjvFcxhdofAABzLVFU9fvz4gAEDhBClpaVdu3ZVFOX222+/6aabpk+fLoSYO3fuvffe27dvX6MrjQXhtPWom37o448/Xr169R/+8Afen6BVRC5sfbuiKDabTQixdOnSkSNH3njjjUZWGStIW6bztBE98F/+8pcPPPCA/uPAxYhc2JGvHrR+/fr4+HijK40FpC1T1DaSl5e3detW/bWa8vPzDx8+PGPGDGPrjBnnzp1LT0+vrKzkMLsDsS1btszoGtBWLBZLWlqaECIYDP785z8fMWLE4cOHy8rK5s+fL4QoLi7esmXLjBkzPvnkkwMHDmRkZPD2ZRdDTzscdWpqqr49GAw+8cQTt99++7/8y78cP378qaee+uabb/r06eN2u40tuOOKXNjJycknTpyoqKgIBoNff/3166+/PnPmTFVVt23b9sUXX/To0YO0f7ALSfu22247fPgwbeTiRbaRHTt29OzZ89ixY/rbmRQVFU2YMOHpp5+mjVykyIW9bt26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AJDJtmzZMqNr6EiOFNUUVjb275KYmuBs+p83qF6SmdR0AC4vL1+/fv3HH388atSonj177tmzp7i4eMyYMXfddVdjY+OsWbOys7O3bNlSUlIyduxYn8939913FxYW5uTknD17dteuXQ6HY+bMmZqm3XvvvYcOHbr++uv79u27efPmkpKSMWPGNC2ppX0yMjL++Mc/FhUV5eTkPPHEEwUFBffff/+5c+deffXV/fv3X3/99Zdccsm777779ddfT5w40e/3Ry3M4/GsW7du9+7dQogrrrji1KlTl1566bhx47p37x71mzbd//rrr+/Tp4/kHxD+7pv3hM0qOvcS7rR/+C9QL/qOF52z9b2iLtTrrruupSXBWkWr2/rt1l7JvdLj01NcKU3/q/RWTu43OTwAx8ZaHTp0aNOF1717988//5y1CgCANFwBblu33377HXfcod/+9NNPP/jgg/Ly8nXr1g0cOFDfuH79+tmzZ//1r3+tqKh47rnnLrvsMiHE3XfffebMGSHEgQMHvvrqq6VLl06YMEEIERcX98orr8yZM6dTp79f1mtpn969e99+++3r169fuXLl/v37Fy1alJ6efvLkSSHEnXfeOW3aNCFEfHz8iy++WFRU9MUXX0QtTL997bXXLl261Gq17tmzZ9iwYVddddX+/fujftNm+7d1vGgtzRaqEIK1ivapo6/VW265Rfzjwlu3bh1rFQAAaRiA25Z+4CWE6NatW01NzYkTJxISEvr3769vHDZsmBDizJkz33zzTXx8/NChQ/XtV155pX6gVlBQIIT44osvjhw5IoQ4d+5cKBQqKSn5y1/+8vrrr+s75+TkRN2nU6dO06ZN27Vr1wcffDBq1KhJkyaFq7riiiua3igqKmqpsPT0dCFEbm5us6Oulgpzu91R90c712yhCiFYq2if2mitbtiwQb/EKoR46aWXWlo2F79WS0pKRAsLj7UKAIAEDMBtS/87NCGExWIRQtTV1aWmpoYPYhRF0T9UX1+fnJxst3/340hMTNRv1NXVCSFCoZC+Z3Jy8g033OB2u7t163b55Zfr+zQ2NkbdRwhhtVodDocQIi7uH/5oOTn5u6dqh0IhIUQwGGypMP2f+h+zNdVSYS3tj3au2UIVrFW0V220VrOyssIL1W63n2fZtMpajbrwWKsAAEjAACxVt27ddu7cWV1d3blzZyHE119/LYTo3r17Zmbm7t27q6qqUlNThRD/+7//q+/fvXt3IcStt96qX0P49ttvP/roo9TU1B49eowePVrf56233oq6jxBiy5YtX3/99ejRo3ft2rVnz56xY8fqn3L69Olu3boJIb788kshRO/evVsqzO/3R70jLRVWVVXVJsFBOtYqOopWWau5ubmTJ08Of82Wlo246LWakZHR0h1hrQIAIAHPp5JqwoQJFovllVdeaWhoOHny5Ntvv33llVd26dIlJyfHYrHk5eVVVVVt3br1888/1/cfPXp0XFyc/ny8/fv3r1ixYv/+/eELAuff58yZM3l5ebm5ucuXL+/fv/+zzz5bW1urf8pLL7106tSpTz755M9//nPv3r2zsrJaKqxZ/U6n88SJEx6P50IKQ4fGWkVH0bHWqj5FN8VaBQBAJq4Af29VDf5j0Tae/7MsFovFYunfv/+cOXN+//vfb9u2TQjRr1+/Bx54QAgxcODA2bNnv/TSSzt27HA4HDk5OZ988okQIiMjY9GiRWvWrLn77ruFED169HjssceafeWW9lm9erXT6ZwzZ47NZluwYMHs2bPXrl2bm5srhIiPj581a5b+fR966CEhREuFhZ9kqMvJyXnzzTetVuvDDz8c9Zs22x8Gqy4SvtrmG73V5/kMfaGKlpcEaxVtobCmMPJtkPzK+fpqB12r+tObm2KtAgAgk0XTNKNr6EiOFNUcKaqJ+qFhWclN3wbpPPSrAWlpad26dWt6ZFNTU1NcXNynT5/wH7npfD7fyZMnnU5nnz59WnoRlAvZRwjx2WefPfjgg6+99prdbvf5fFlZWRdSWLN97Ha7/sdvF/hNYYxjO0XNmegf6ndd+H2Az4+1CgneOfGON+SN+qGb+t4Ufhuk82OtAgCAC8EAbC7hA7WuXbsaXQtwPqxVdBSsVQAAOhDOLpuL0+lMTk622WxGFwL8E6xVdBSsVQAAOhCuAAMAAAAATIErwAAAAAAAU2AABgAAAACYAgMwAAAAAMAUGIABAAAAAKbAAAwAAAAAMAUGYAAAAACAKTAAAwAAAABMgQEYAAAAAGAKDMAAAAAAAFNgAAYAAAAAmAIDMAAAAADAFBiAAQAAAACmwAAMAAAAADAFBmAAAAAAgCkwAAMAAAAATIEBGAAAAABgCgzAAAAAAABTYAAGAAAAAJgCAzAAAAAAwBQYgAEAAAAApsAADAAAAAAwBQZgAAAAAIApMAADAAAAAEyBARgAAAAAYAoMwAAAAAAAU2AABgAAAACYAgMwAAAAAMAUGIABAAAAAKbw/wD1RW0fZ+gjJQAAAABJRU5ErkJggg==" + # answer << >> parts is gone. + mock_event.ws.call_args_list[4] = ( + create_sse_message( + StreamEvents.ANSWER_END.value, + { + "analysis": "some analysis... add the rest of analysis", + }, + ), + ) From e92709a894c94743b9a813eabe27ba92417a234d Mon Sep 17 00:00:00 2001 From: Roi Glinik Date: Wed, 26 Nov 2025 16:24:17 +0200 Subject: [PATCH 10/14] use simpler valid png check instead of full check --- tests/test_ai_integration.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/test_ai_integration.py b/tests/test_ai_integration.py index 5b0d7c2e3..727663f06 100644 --- a/tests/test_ai_integration.py +++ b/tests/test_ai_integration.py @@ -1,3 +1,4 @@ +import base64 import json import pytest from unittest.mock import Mock, patch, MagicMock @@ -174,11 +175,13 @@ def test_holmes_chat_streaming_with_sse_events( # graph tools change datadog_output = mock_event.ws.call_args_list[2][1]["data"] event_type, data = parse_sse_message(datadog_output) - assert data["result"]["data"] == "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" + decoded = base64.b64decode(data["result"]["data"]) + assert decoded[:8] == b"\x89PNG\r\n\x1a\n", "Not a valid PNG" prom_output = mock_event.ws.call_args_list[3][1]["data"] event_type, data = parse_sse_message(prom_output) - assert data["result"]["data"] == "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2DKRtjS0EZmapi2E+OMf/8h7BXdIRj8HG63pscce++STT/TbTzzxxF133XXq1CmPxzNlypT8/Hxja4s9pC1TOG2iloC0paGNyMTClom0paGNyNQ07dLS0qqqqvz8/Pnz5+/YscPYwvC98CrQMaumpmbNmjUOh8Pr9Q4cOPDOO+8UQhw8eNBms3F2qtVFpk3UbYSFLRNpy0QbkYaFLRNpy3T+NqKqqtXKHz+2munTp7/88stut/vUqVMPP/zwxo0bWdgdBb8GMSs5OfmJJ56Ii4s7cODAsGHD9I1nzpwpKSmprKzctGnTK6+8UlFRYWyRMSMybT1qIYSqqsFgUAjh8/kMrjImnGdhV1RUrFmzJi8vr7S01NgiYwZpy3SeNnL8+PHFixe/8MILNO1WcZ6FbWxhMYm0ZTpPG1EU5dFHH/3Nb37T0NBgdJkxQn8TbCFE+L2COczuKLgCHMvKyspmz5790EMPCSFevgmjAAAQb0lEQVRGjhypbywuLp47d25ubm6XLl3eeeedl156yeFwGFpmjIiatuD94tpA1Kg1TZs7d+6oUaPi4+M3btz4wgsvZGRkGFpmjCBtmVpqIytXrhw1alR1dfX777//X//1X3FxccbVGCNailoI0djYuHfv3o8//njatGlcyWkVpC1TS0175cqVqampDodj586dDz30EGlfvKjvFcxhdofAABzLVFU9fvz4gAEDhBClpaVdu3ZVFOX222+/6aabpk+fLoSYO3fuvffe27dvX6MrjQXhtPWom37o448/Xr169R/+8Afen6BVRC5sfbuiKDabTQixdOnSkSNH3njjjUZWGStIW6bztBE98F/+8pcPPPCA/uPAxYhc2JGvHrR+/fr4+HijK40FpC1T1DaSl5e3detW/bWa8vPzDx8+PGPGDGPrjBnnzp1LT0+vrKzkMLsDsS1btszoGtBWLBZLWlqaECIYDP785z8fMWLE4cOHy8rK5s+fL4QoLi7esmXLjBkzPvnkkwMHDmRkZPD2ZRdDTzscdWpqqr49GAw+8cQTt99++7/8y78cP378qaee+uabb/r06eN2u40tuOOKXNjJycknTpyoqKgIBoNff/3166+/PnPmTFVVt23b9sUXX/To0YO0f7ALSfu22247fPgwbeTiRbaRHTt29OzZ89ixY/rbmRQVFU2YMOHpp5+mjVykyIW9bt26PXv2zJs378Ybb3z11VeXLFnSvXv3yspK2sjFu8C0A4HA7t276SQXKbKNlJWVXXrppVdfffXrr78eCoXGjBmTkJDA0UhrSUxMVBSlpcPsO+64o7q6mjbS3nAF2Czq6uo6deo0f/78n/3sZ/rzXpYvX56RkbF///4BAwYMHjz4tddeW79+fadOnYyutMPTow7/c+3atWfOnFm1apXgeYxtoK6urrS0dPHixb1793a5XNXV1aqqTpo0acSIETwHqdVFTXvs2LHvvvsubaR16W3E7/dPnTp1y5YtLpdr3bp1hYWFixcvfv7552kjrUtPO/LVg3gqY1toKe3a2tq5c+fSSVpR+Ggk8rWaOBppdVEPs3v27Dlp0iTaSDvE+wCbhd4E7Xa71+sVQrz66qvnzp07e/asxWK58cYbL7/88uPHj+/bt2/SpElGV9rhNX3MbvZ+cYsWLdKfx/jee++dPn2a5zFevE6dOn322Weapk2cODE3N1ffqD8H6d/+7d/05yDt3r37zJkzPAfp4kWmHQwGf/3rX9NGWp3eRmw2m9VqPXz48MiRI51Op9PpTEhIoI20Oj1t/dWDVq1atWvXrilTpiiK8uCDD9JGWl3UtIPB4IIFC+gkrSt8NKK/VtPAgQPDr9VEG2l1kYfZZWVl99133+zZs2kj7RADsLncc889y5Yte/7557Ozs6+99to33njjP/7jP/Ly8nJzc3Nzc7OysowuMNbs2LHjgQceSElJ2bFjx3XXXXfq1Kk1a9b07t27traWDthacnJyhgwZsmLFin379s2fPz8xMXH37t1ZWVn6401xcXFxcXGPHj2MLjNGNEv7gw8+KC8vp420Ebvd/vjjjz/33HMvv/xyaWnpLbfc4vV6aSNtp6ys7NNPP121apWqqrSRttY07bfffptO0naWLVsWfq2mcePG0UbaTtPD7CeffHL//v20kXbKsHcghnEaGho0TZs3b97+/fs1TSsqKrrhhhuMLiqW+Xy+m2++2ev1apr20ksvLV68uL6+3uiiYo2iKBs2bNi8ebOmaffdd9+hQ4f07Y899lheXp6hpcWgcNq0ETkKCws9Hg9tpK0pilJQUKDfpo20taZp00kkKCkpqa+vp41IoB9ma7SRdoz3ATYj/U/we/ToUVtbK4TIz89PT083uqhYFn4eoxAi/DxGo4uKNVardcaMGbfddpuIeA6SvhGtKJw2bUSO7OzsxMRE2khbs1qt4eeC0kbaWtO06SQSdOvWLS4ujjYiQfiVrmgj7RYvgmVeNTU18+fP79y5c2Fh4aOPPso7wrWpI0eOPPfcc1artbS09Kmnnho4cKDRFcWyU6dOLVu2LBAIZGdnL1myhBddbDu0EZloIzLRRmSik0hDG5GJNtJuMQCb3alTpzIzM3kBQDlOnz7dpUsX3upQjsbGRh5s5KCNyEQbkYk2IhOdRBraiEy0kXaIARgAAAAAYAr8DTAAAAAAwBQYgAEAAAAApsAADAAAAAAwBQZgAAAAAIApMAADAAAAAEyBARgAAAAAYAoMwAAAAAAAU2AABgAAAACYAgMwAAAAAMAUGIABAAAAAKbAAAwAAAAAMAUGYAAAAACAKTAAAwAAAABMgQEYAAAAAGAKDMAAAAAAAFNgAAYAAAAAmAIDMAAAAADAFBiAAQAAAACmwAAMAAAAADAFBmAAAAAAgCkwAAMAAAAATIEBGAAAAABgCgzAAAAAAABTYAAGAAAAAJgCAzAAAAAAwBQYgAEAAAAApsAADAAAAAAwBQZgAAAAAIApMAADAAAAAEyBARgAAAAAYAoMwAAAAAAAU2AABgAAAACYAgNwe+TxeI4ePWp0FcA/x1pFR8FaBQAAggG4fdq3b98DDzxgdBVR/OlPfzp8+LDRVaAdYa2io2CtAgAAIYTd6AI6mCNFNUeKaqJ+aFhW8rCsZMn1SPb666/bbLbhw4cbXQguwLGdouZM9A/1u0507im3GtlYqx3IOyfe8Ya8UT90U9+b4u3xkuuRjLUKAIBMDMDfz5GimvWfnEhNiGu2varB//MxfZsOwMXFxY8//vjMmTNff/31wsLCvn37LliwoGvXrqWlpc8999zRo0ddLtfYsWPvuusul8slhCgqKlq7du3Jkyf79euXmZkZ/joNDQ0vvvjiwYMHnU7ntddeO2vWLJvN1uy7R91n7dq1f/vb35YtW5aenl5aWvr444+PHj16xIgRL7zwwk033bR9+/YzZ86MGDFi7ty5SUlJQoiohZWXly9ZsmTatGlvv/322bNnGxoatm3bFgwGZ82aFfWbNt2/X79+v/rVr9rqJ4F/6qs/i6KDwtWp+faGSpE+IDwAt7RQRQtLQrBW0do2fb1JaMJhczTbXuGtyMnOCQ/AsbFW6+rqmi68EydOsFYBAJDJtmzZMqNr6EiOFNUUVjb275KYmuBs+p83qF6SmdR0AC4vL1+/fv3HH388atSonj177tmzp7i4eMyYMXfddVdjY+OsWbOys7O3bNlSUlIyduxYn8939913FxYW5uTknD17dteuXQ6HY+bMmZqm3XvvvYcOHbr++uv79u27efPmkpKSMWPGNC2ppX0yMjL++Mc/FhUV5eTkPPHEEwUFBffff/+5c+deffXV/fv3X3/99Zdccsm777779ddfT5w40e/3Ry3M4/GsW7du9+7dQogrrrji1KlTl1566bhx47p37x71mzbd//rrr+/Tp4/kHxD+7pv3hM0qOvcS7rR/+C9QL/qOF52z9b2iLtTrrruupSXBWkWr2/rt1l7JvdLj01NcKU3/q/RWTu43OTwAx8ZaHTp0aNOF1717988//5y1CgCANFwBblu33377HXfcod/+9NNPP/jgg/Ly8nXr1g0cOFDfuH79+tmzZ//1r3+tqKh47rnnLrvsMiHE3XfffebMGSHEgQMHvvrqq6VLl06YMEEIERcX98orr8yZM6dTp79f1mtpn969e99+++3r169fuXLl/v37Fy1alJ6efvLkSSHEnXfeOW3aNCFEfHz8iy++WFRU9MUXX0QtTL997bXXLl261Gq17tmzZ9iwYVddddX+/fujftNm+7d1vGgtzRaqEIK1ivapo6/VW265Rfzjwlu3bh1rFQAAaRiA25Z+4CWE6NatW01NzYkTJxISEvr3769vHDZsmBDizJkz33zzTXx8/NChQ/XtV155pX6gVlBQIIT44osvjhw5IoQ4d+5cKBQqKSn5y1/+8vrrr+s75+TkRN2nU6dO06ZN27Vr1wcffDBq1KhJkyaFq7riiiua3igqKmqpsPT0dCFEbm5us6Oulgpzu91R90c712yhCiFYq2if2mitbtiwQb/EKoR46aWXWlo2F79WS0pKRAsLj7UKAIAEDMBtS/87NCGExWIRQtTV1aWmpoYPYhRF0T9UX1+fnJxst3/340hMTNRv1NXVCSFCoZC+Z3Jy8g033OB2u7t163b55Zfr+zQ2NkbdRwhhtVodDocQIi7uH/5oOTn5u6dqh0IhIUQwGGypMP2f+h+zNdVSYS3tj3au2UIVrFW0V220VrOyssIL1W63n2fZtMpajbrwWKsAAEjAACxVt27ddu7cWV1d3blzZyHE119/LYTo3r17Zmbm7t27q6qqUlNThRD/+7//q+/fvXt3IcStt96qX0P49ttvP/roo9TU1B49eowePVrf56233oq6jxBiy5YtX3/99ejRo3ft2rVnz56xY8fqn3L69Olu3boJIb788kshRO/evVsqzO/3R70jLRVWVVXVJsFBOtYqOopWWau5ubmTJ08Of82Wlo246LWakZHR0h1hrQIAIAHPp5JqwoQJFovllVdeaWhoOHny5Ntvv33llVd26dIlJyfHYrHk5eVVVVVt3br1888/1/cfPXp0XFyc/ny8/fv3r1ixYv/+/eELAuff58yZM3l5ebm5ucuXL+/fv/+zzz5bW1urf8pLL7106tSpTz755M9//nPv3r2zsrJaKqxZ/U6n88SJEx6P50IKQ4fGWkVH0bHWqj5FN8VaBQBAJq4Af29VDf5j0Tae/7MsFovFYunfv/+cOXN+//vfb9u2TQjRr1+/Bx54QAgxcODA2bNnv/TSSzt27HA4HDk5OZ988okQIiMjY9GiRWvWrLn77ruFED169HjssceafeWW9lm9erXT6ZwzZ47NZluwYMHs2bPXrl2bm5srhIiPj581a5b+fR966CEhREuFhZ9kqMvJyXnzzTetVuvDDz8c9Zs22x8Gqy4SvtrmG73V5/kMfaGKlpcEaxVtobCmMPJtkPzK+fpqB12r+tObm2KtAgAgk0XTNKNr6EiOFNUcKaqJ+qFhWclN3wbpPPSrAWlpad26dWt6ZFNTU1NcXNynT5/wH7npfD7fyZMnnU5nnz59WnoRlAvZRwjx2WefPfjgg6+99prdbvf5fFlZWRdSWLN97Ha7/sdvF/hNYYxjO0XNmegf6ndd+H2Az4+1CgneOfGON+SN+qGb+t4Ufhuk82OtAgCAC8EAbC7hA7WuXbsaXQtwPqxVdBSsVQAAOhDOLpuL0+lMTk622WxGFwL8E6xVdBSsVQAAOhCuAAMAAAAATIErwAAAAAAAU2AABgAAAACYAgMwAAAAAMAUGIABAAAAAKbAAAwAAAAAMAUGYAAAAACAKTAAAwAAAABMgQEYAAAAAGAKDMAAAAAAAFNgAAYAAAAAmAIDMAAAAADAFBiAAQAAAACmwAAMAAAAADAFBmAAAAAAgCkwAAMAAAAATIEBGAAAAABgCgzAAAAAAABTYAAGAAAAAJgCAzAAAAAAwBQYgAEAAAAApsAADAAAAAAwBQZgAAAAAIApMAADAAAAAEyBARgAAAAAYAoMwAAAAAAAU2AABgAAAACYAgMwAAAAAMAUGIABAAAAAKbw/wD1RW0fZ+gjJQAAAABJRU5ErkJggg==" + decoded = base64.b64decode(data["result"]["data"]) + assert decoded[:8] == b"\x89PNG\r\n\x1a\n", "Not a valid PNG" # answer << >> parts is gone. mock_event.ws.call_args_list[4] = ( create_sse_message( From 9e2ff7a1e8274a4f6037f76a435ba5f67ec970d4 Mon Sep 17 00:00:00 2001 From: Roi Glinik Date: Wed, 26 Nov 2025 16:36:21 +0200 Subject: [PATCH 11/14] tests fixes --- .../core/playbooks/internal/ai_integration.py | 2 +- tests/test_ai_integration.py | 22 +++++++++---------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/robusta/core/playbooks/internal/ai_integration.py b/src/robusta/core/playbooks/internal/ai_integration.py index 381f06541..d8706283b 100644 --- a/src/robusta/core/playbooks/internal/ai_integration.py +++ b/src/robusta/core/playbooks/internal/ai_integration.py @@ -571,7 +571,7 @@ def stream_and_render_graphs(url, holmes_req, event): event_type = parse_sse_event_type(event_lines[0]) if event_type == StreamEvents.ANSWER_END.value: - stream_event = re.sub(r"<<.*?>>", "", stream_event).strip() + stream_event = re.sub(r"<<.*?>>", "", stream_event) if event_type != StreamEvents.TOOL_RESULT.value: event.ws(data=stream_event) diff --git a/tests/test_ai_integration.py b/tests/test_ai_integration.py index 727663f06..1f5b59261 100644 --- a/tests/test_ai_integration.py +++ b/tests/test_ai_integration.py @@ -1,7 +1,7 @@ import base64 import json import pytest -from unittest.mock import Mock, patch, MagicMock +from unittest.mock import Mock, patch from robusta.core.model.base_params import HolmesChatParams from robusta.core.model.events import ExecutionBaseEvent from robusta.core.playbooks.internal.ai_integration import holmes_chat @@ -170,24 +170,22 @@ def test_holmes_chat_streaming_with_sse_events( assert mock_event.ws.call_count == len(sse_events) # events should stay the same - mock_event.ws.call_args_list[0][1]["data"] = sse_events[0] - mock_event.ws.call_args_list[1][1]["data"] = sse_events[1] + assert mock_event.ws.call_args_list[0][1]["data"] == sse_events[0] + assert mock_event.ws.call_args_list[1][1]["data"] == sse_events[1] # graph tools change datadog_output = mock_event.ws.call_args_list[2][1]["data"] - event_type, data = parse_sse_message(datadog_output) + _, data = parse_sse_message(datadog_output) decoded = base64.b64decode(data["result"]["data"]) assert decoded[:8] == b"\x89PNG\r\n\x1a\n", "Not a valid PNG" prom_output = mock_event.ws.call_args_list[3][1]["data"] - event_type, data = parse_sse_message(prom_output) + _, data = parse_sse_message(prom_output) decoded = base64.b64decode(data["result"]["data"]) assert decoded[:8] == b"\x89PNG\r\n\x1a\n", "Not a valid PNG" # answer << >> parts is gone. - mock_event.ws.call_args_list[4] = ( - create_sse_message( - StreamEvents.ANSWER_END.value, - { - "analysis": "some analysis... add the rest of analysis", - }, - ), + assert mock_event.ws.call_args_list[4][1]["data"] == create_sse_message( + StreamEvents.ANSWER_END.value, + { + "analysis": "some analysis... add the rest of analysis", + }, ) From fa7434193b16ccbe23d1ff10e0d4597851213372 Mon Sep 17 00:00:00 2001 From: Roi Glinik Date: Wed, 3 Dec 2025 12:02:02 +0200 Subject: [PATCH 12/14] use list for graph tools --- .../core/playbooks/internal/ai_integration.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/robusta/core/playbooks/internal/ai_integration.py b/src/robusta/core/playbooks/internal/ai_integration.py index d8706283b..e55db8315 100644 --- a/src/robusta/core/playbooks/internal/ai_integration.py +++ b/src/robusta/core/playbooks/internal/ai_integration.py @@ -51,6 +51,8 @@ from robusta.integrations.prometheus.utils import HolmesDiscovery from robusta.utils.error_codes import ActionException, ErrorCodes +GRAPH_TOOLS = ["execute_prometheus_range_query", "query_datadog_metrics"] + def build_investigation_title(params: AIInvestigateParams) -> str: if params.investigation_type == "analyze_problems": @@ -452,11 +454,10 @@ def holmes_chat(event: ExecutionBaseEvent, params: HolmesChatParams): if params.render_graph_images: try: for tool in holmes_result.tool_calls: - if tool.tool_name not in [ - "execute_prometheus_range_query", - "query_datadog_metrics", - ]: + if tool.tool_name not in GRAPH_TOOLS: continue + + # removes all embedded tool calls in this case as its not supported. holmes_result.analysis = re.sub( r"<<.*?>>", "", holmes_result.analysis ).strip() @@ -467,7 +468,7 @@ def holmes_chat(event: ExecutionBaseEvent, params: HolmesChatParams): holmes_result.tool_calls = [ tool for tool in holmes_result.tool_calls - if tool.tool_name != "execute_prometheus_range_query" + if tool.tool_name not in GRAPH_TOOLS ] except Exception: @@ -578,10 +579,7 @@ def stream_and_render_graphs(url, holmes_req, event): continue tool_res = parse_sse_data(event_lines[1]) - if not tool_res or tool_res.get("name", "") not in [ - "execute_prometheus_range_query", - "query_datadog_metrics", - ]: + if not tool_res or tool_res.get("name", "") not in GRAPH_TOOLS: event.ws(data=stream_event) continue From aeb329832dab6c500092e29070051da7b3989094 Mon Sep 17 00:00:00 2001 From: Roi Glinik Date: Wed, 3 Dec 2025 12:02:17 +0200 Subject: [PATCH 13/14] add length saftey check --- src/robusta/core/playbooks/internal/ai_integration.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/robusta/core/playbooks/internal/ai_integration.py b/src/robusta/core/playbooks/internal/ai_integration.py index e55db8315..a23bdaf1e 100644 --- a/src/robusta/core/playbooks/internal/ai_integration.py +++ b/src/robusta/core/playbooks/internal/ai_integration.py @@ -569,8 +569,13 @@ def stream_and_render_graphs(url, holmes_req, event): ): # Avoid streaming chunks from holmes. send them as they arrive. if stream_event: event_lines = stream_event.splitlines() - event_type = parse_sse_event_type(event_lines[0]) + # extra saftey check before proccessing event. + if len(event_lines) < 2: + event.ws(data=stream_event) + continue + event_type = parse_sse_event_type(event_lines[0]) + # removes all embedded tool calls in this case as its not supported. if event_type == StreamEvents.ANSWER_END.value: stream_event = re.sub(r"<<.*?>>", "", stream_event) From de1da493879c6e166413f3257d9e90105551be80 Mon Sep 17 00:00:00 2001 From: Roi Glinik Date: Wed, 3 Dec 2025 12:02:42 +0200 Subject: [PATCH 14/14] use _ for unused var --- src/robusta/core/playbooks/internal/ai_integration.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/robusta/core/playbooks/internal/ai_integration.py b/src/robusta/core/playbooks/internal/ai_integration.py index a23bdaf1e..10efe4ba1 100644 --- a/src/robusta/core/playbooks/internal/ai_integration.py +++ b/src/robusta/core/playbooks/internal/ai_integration.py @@ -588,9 +588,9 @@ def stream_and_render_graphs(url, holmes_req, event): event.ws(data=stream_event) continue - try: + try: # convert graph tool to png. tool_data = json.loads(tool_res["result"]["data"]) - content, name = get_png_from_graph_tool(tool_data) + content, _ = get_png_from_graph_tool(tool_data) tool_res["result"]["data"] = base64.b64encode(content).decode( "utf-8" )