#!/usr/bin/env python3 import json import requests import subprocess # Load the monitors JSON with open("/scripts/kitestacks-monitors.json", "r") as f: monitors = json.load(f) for monitor in monitors: name = monitor.get("name") mtype = monitor.get("type") try: if mtype == "http": url = monitor.get("url") method = monitor.get("method", "GET").upper() resp = requests.request(method, url, timeout=10, verify=False) print(f"[{name}] HTTP {method} {url} -> Status {resp.status_code}") elif mtype == "tcp": host = monitor.get("host") port = monitor.get("port") result = subprocess.run(["nc", "-zvw3", host, str(port)], capture_output=True) print(f"[{name}] TCP {host}:{port} -> Returncode {result.returncode}") elif mtype == "ping": host = monitor.get("host") result = subprocess.run(["ping", "-c", "1", host], capture_output=True) print(f"[{name}] Ping {host} -> Returncode {result.returncode}") else: print(f"[{name}] Unknown type: {mtype}") except Exception as e: print(f"[{name}] Error: {e}")