Improve AI daily report operations and dedupe observability

This commit is contained in:
Ubuntu
2026-06-10 21:55:29 +08:00
parent b46cef2c7b
commit 2159ee733b
23 changed files with 761 additions and 57 deletions

View File

@@ -35,6 +35,7 @@ def _collect_one(config: SourceConfig, run_date: str, fetcher: Fetcher) -> Sourc
ok=False,
status="disabled",
fetched_at=fetched_at,
error=f"failure_policy={config.failure_policy}; min_items={config.min_items}",
)
started = perf_counter()
@@ -42,12 +43,15 @@ def _collect_one(config: SourceConfig, run_date: str, fetcher: Fetcher) -> Sourc
items = fetcher(config, run_date)
elapsed_ms = int((perf_counter() - started) * 1000)
status = "ok" if items else "empty"
if status == "ok" and config.min_items and len(items) < config.min_items:
status = "below_min_items"
return SourceResult(
source=config.name,
role=config.role,
ok=status == "ok",
status=status,
items=items,
error=None if status == "ok" else f"items={len(items)}; min_items={config.min_items}; failure_policy={config.failure_policy}",
elapsed_ms=elapsed_ms,
fetched_at=fetched_at,
)
@@ -58,7 +62,7 @@ def _collect_one(config: SourceConfig, run_date: str, fetcher: Fetcher) -> Sourc
role=config.role,
ok=False,
status=_status_from_exception(exc),
error=f"{type(exc).__name__}: {exc}",
error=f"{type(exc).__name__}: {exc}; failure_policy={config.failure_policy}; min_items={config.min_items}",
elapsed_ms=elapsed_ms,
retry_count=_retry_count_from_exception(exc),
fetched_at=fetched_at,