39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
"""
|
|
Shared utilities for Kao detectors.
|
|
"""
|
|
|
|
import requests
|
|
|
|
DEFAULT_AGGREGATOR_URL = "http://localhost:5100"
|
|
|
|
|
|
def send_event(url, event_id, priority, message, check_interval=None, ttl=None):
|
|
"""Send an event to the aggregator.
|
|
Pass ttl= (seconds) directly, or check_interval= to use heartbeat default (check_interval * 2).
|
|
"""
|
|
if ttl is None:
|
|
ttl = check_interval * 2
|
|
try:
|
|
response = requests.post(
|
|
f"{url}/event",
|
|
json={"id": event_id, "priority": priority, "message": message, "ttl": ttl},
|
|
timeout=5,
|
|
)
|
|
print(f"[EVENT] {event_id}: {message} (priority {priority}, ttl {ttl}s) -> {response.status_code}")
|
|
except requests.RequestException as e:
|
|
print(f"[ERROR] Failed to send event: {e}")
|
|
|
|
|
|
def clear_event(url, event_id):
|
|
"""Clear an event from the aggregator."""
|
|
try:
|
|
response = requests.post(
|
|
f"{url}/clear",
|
|
json={"id": event_id},
|
|
timeout=5,
|
|
)
|
|
if response.status_code == 200:
|
|
print(f"[CLEAR] {event_id}")
|
|
except requests.RequestException as e:
|
|
print(f"[ERROR] Failed to clear event: {e}")
|