Retry failed scan ended telemetry

This commit is contained in:
bearsyankees
2026-07-13 14:14:26 -04:00
parent 28f5c32585
commit cc99b96613
2 changed files with 10 additions and 8 deletions
+5 -4
View File
@@ -26,10 +26,10 @@ def _is_enabled() -> bool:
return load_settings().telemetry.enabled
def _send(event: str, properties: dict[str, Any]) -> None:
def _send(event: str, properties: dict[str, Any]) -> bool:
if not _is_enabled():
logger.debug("posthog disabled; skipping event %s", event)
return
return False
try:
payload = {
"api_key": _POSTHOG_PUBLIC_API_KEY,
@@ -46,8 +46,10 @@ def _send(event: str, properties: dict[str, Any]) -> None:
pass
except Exception: # noqa: BLE001
logger.debug("posthog send failed for event %s", event, exc_info=True)
return False
else:
logger.debug("posthog event sent: %s", event)
return True
def start(
@@ -84,7 +86,6 @@ def finding(severity: str) -> None:
def end(report_state: "ReportState", exit_reason: str = "completed") -> None:
if report_state.posthog_scan_ended_sent:
return
report_state.posthog_scan_ended_sent = True
vulnerabilities_counts = {"critical": 0, "high": 0, "medium": 0, "low": 0, "info": 0}
for v in report_state.vulnerability_reports:
@@ -114,7 +115,7 @@ def end(report_state: "ReportState", exit_reason: str = "completed") -> None:
except (TypeError, ValueError, AttributeError):
pass
_send(
report_state.posthog_scan_ended_sent = _send(
"scan_ended",
{
**base_props(),
+5 -4
View File
@@ -28,10 +28,10 @@ def _is_enabled() -> bool:
return load_settings().telemetry.enabled
def _send(event: str, properties: dict[str, Any]) -> None:
def _send(event: str, properties: dict[str, Any]) -> bool:
if not _is_enabled():
logger.debug("scarf disabled; skipping event %s", event)
return
return False
try:
props = dict(properties)
version = str(props.pop("strix_version", get_version()) or "unknown")
@@ -47,8 +47,10 @@ def _send(event: str, properties: dict[str, Any]) -> None:
pass
except Exception: # noqa: BLE001
logger.debug("scarf send failed for event %s", event, exc_info=True)
return False
else:
logger.debug("scarf event sent: %s", event)
return True
def start(
@@ -87,7 +89,6 @@ def finding(severity: str) -> None:
def end(report_state: ReportState, exit_reason: str = "completed") -> None:
if report_state.scarf_scan_ended_sent:
return
report_state.scarf_scan_ended_sent = True
vulnerabilities_counts = {"critical": 0, "high": 0, "medium": 0, "low": 0, "info": 0}
for v in report_state.vulnerability_reports:
@@ -119,7 +120,7 @@ def end(report_state: ReportState, exit_reason: str = "completed") -> None:
except (TypeError, ValueError, AttributeError):
pass
_send(
report_state.scarf_scan_ended_sent = _send(
"scan_ended",
{
**base_props(),