Skip to content

Commit a01c26b

Browse files
authored
ROB-175 add keep alive headers (#1766)
* add keep alive headers * use sse format for errors
1 parent d1d848f commit a01c26b

2 files changed

Lines changed: 6 additions & 3 deletions

File tree

src/robusta/core/playbooks/internal/ai_integration.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,12 @@ def ask_holmes(event: ExecutionBaseEvent, params: AIInvestigateParams):
6464
)
6565

6666
if params.stream:
67-
with requests.post(f"{holmes_url}/api/stream/investigate", data=holmes_req.json(), stream=True) as resp:
67+
with requests.post(f"{holmes_url}/api/stream/investigate", data=holmes_req.json(), stream=True, headers={"Connection": "keep-alive"}) as resp:
68+
resp.raise_for_status()
6869
for line in resp.iter_content(chunk_size=None, decode_unicode=True): # Avoid streaming chunks from holmes. send them as they arrive.
69-
event.ws(data=line)
70+
if line:
71+
event.ws(data=line)
72+
7073
return
7174

7275
else:

src/robusta/integrations/receiver.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ def __exec_external_stream_request(self, action_request: ExternalActionRequest,
195195
res = self.event_handler.run_external_stream_action(action_request.body.action_name,
196196
action_request.body.action_params,
197197
lambda data: self.__stream_response(request_id=action_request.request_id, data=data))
198-
res = "" if res.get("success") else json.dumps(res)
198+
res = "" if res.get("success") else f"event: error\ndata: {json.dumps(res)}\n\n"
199199
self.__close_stream_response(action_request.request_id, res)
200200

201201
def _process_action(self, action: ExternalActionRequest, validate_timestamp: bool) -> None:

0 commit comments

Comments
 (0)