From a3402c85d62c116ba629c67db97fa954c05ebeab Mon Sep 17 00:00:00 2001 From: thomas Date: Mon, 31 Aug 2026 22:23:04 +0200 Subject: [PATCH] Removed duplicate notification of logs that are outside the specified time range. --- log-alert/fetchers/parseable.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/log-alert/fetchers/parseable.py b/log-alert/fetchers/parseable.py index 34fa588..ba73bc6 100644 --- a/log-alert/fetchers/parseable.py +++ b/log-alert/fetchers/parseable.py @@ -41,23 +41,25 @@ class ParseableLogFetcher(LogFetcher): if labelNum > 0: query += ' AND ' query += f'log LIKE \'%{filters["text"]}%\'' - logger.debug(f"Executing Parseable query: {query}") payload = { "query": query, "startTime": datetime.datetime.fromtimestamp(start_time).strftime("%Y-%m-%dT%H:%M:%SZ"), "endTime": datetime.datetime.fromtimestamp(end_time).strftime("%Y-%m-%dT%H:%M:%SZ") } + logger.debug(f"Executing Parseable query: {payload}") try: response = requests.post(f"{self.url}/api/v1/query", json=payload, auth=(self.user, self.password), headers = { "Content-Type": "application/json" }) response.raise_for_status() data = response.json() logs = [] for item in data: - logs.append({ - "timestamp": item.get("p_timestamp"), - "log": item.get("log"), - "labels": {k: v for k, v in item.items() if k not in ["p_timestamp", "log"]} - }) + timestamp = int(datetime.datetime.strptime(item.get("p_timestamp"), "%Y-%m-%dT%H:%M:%S.%f").replace(tzinfo=datetime.timezone.utc).timestamp()) + if timestamp >= start_time and timestamp < end_time: + logs.append({ + "timestamp": item.get("p_timestamp"), + "log": item.get("log"), + "labels": {k: v for k, v in item.items() if k not in ["p_timestamp", "log"]} + }) return logs except requests.exceptions.RequestException as e: logger.error(f"Error fetching logs from Parseable: {e}")