Improved the overview graphs. and MCP fetching poll

This commit is contained in:
larssand
2026-06-30 09:40:20 +02:00
parent 9c6c08b5ec
commit 31ac3c25d2
7 changed files with 91 additions and 20 deletions

View File

@@ -59,7 +59,8 @@ class GraylogStreamSource:
page_size = 1_000
pages = 0
while len(events) < max_events:
result = self.client.call_tool("search_messages", {**arguments, "limit": page_size, "offset": len(events)})
request_limit = min(page_size, max_events - len(events))
result = self.client.call_tool("search_messages", {**arguments, "limit": request_limit, "offset": len(events)})
content = result.get("result", {}).get("content", []) if isinstance(result.get("result"), dict) else []
if isinstance(result.get("result"), dict) and result["result"].get("isError"):
detail = next((str(item.get("text")) for item in content if isinstance(item, dict) and item.get("type") == "text"), "Graylog search failed")
@@ -73,7 +74,7 @@ class GraylogStreamSource:
continue
events.extend(self._event(record) for record in records)
pages += 1
if len(records) < page_size:
if len(records) < request_limit:
break
latest = max((event.fields.get("eventtime", "") for event in events), default="")
status.update({"source": "graylog_mcp", "events_fetched": len(events), "pages": pages, "truncated": len(events) >= max_events, "latest_event_time": latest})