Improve AI daily report operations and dedupe observability
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user