Fix metric imports: use module-level access instead of name imports

Type-annotated metric variables (e.g. `geojson_cache_operations: Counter`)
don't exist as importable names until init_metrics() runs.  Switch all
`from api.metrics import <metric>` to `import api.metrics as m` and
access instruments as attributes at runtime to avoid ImportError.
This commit is contained in:
Viktor Barzin 2026-02-14 11:21:49 +00:00
parent d6edb747d2
commit 25912eac0c
No known key found for this signature in database
GPG key ID: 0EB088298288D958
5 changed files with 22 additions and 28 deletions

View file

@ -568,20 +568,13 @@ async def _dump_listings_full_inner(
celery_logger.info("=" * 60)
# Record scrape metrics
from api.metrics import (
scrape_listings_found,
scrape_listings_processed,
scrape_listings_failed,
scrape_duration_seconds,
scrape_pages_fetched,
scrape_subqueries_total as scrape_subqueries_metric,
)
scrape_listings_found.add(state.ids_collected)
scrape_listings_processed.add(state.processed_count)
scrape_listings_failed.add(state.failed_count)
scrape_duration_seconds.record(elapsed)
scrape_pages_fetched.add(state.total_pages_fetched)
scrape_subqueries_metric.add(state.completed_subqueries)
import api.metrics as m
m.scrape_listings_found.add(state.ids_collected)
m.scrape_listings_processed.add(state.processed_count)
m.scrape_listings_failed.add(state.failed_count)
m.scrape_duration_seconds.record(elapsed)
m.scrape_pages_fetched.add(state.total_pages_fetched)
m.scrape_subqueries_total.add(state.completed_subqueries)
invalidate_cache()