telemetry/reporter.py
COUNTER_WHITELIST = {"installs", "secures_completed", "errors"}
def build_payload(instance_id, version, event: str, counters: dict) -> dict:
return {
"instance_id": instance_id,
"version": version,
"event": event,
"counters": {k: v for k, v in counters.items() if k in COUNTER_WHITELIST},
}
async def report(enabled: bool, url: str | None, payload: dict, http) -> bool:
if not enabled or not url:
return False
try:
resp = await http.post(url, json=payload)
return resp.ok
except Exception:
return False