Skip to content

Commit f89d7b3

Browse files
author
Agent
committed
Add Nominatim lookup duration metric
- Added nominatim_lookup_duration Histogram metric to track geocoding API call times - Integrated metric into processing time breakdown for monitoring - Tracks only actual Nominatim API calls (cache hits/misses already tracked separately) - Uses standard buckets (0.01-5.0s) appropriate for network API calls
1 parent 8f311a7 commit f89d7b3

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

fingr/location.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,12 @@
1111
from redis.exceptions import RedisError
1212

1313
from .logging import get_logger
14-
from .metrics import location_cache_operations, location_resolution_duration, track_time
14+
from .metrics import (
15+
location_cache_operations,
16+
location_resolution_duration,
17+
nominatim_lookup_duration,
18+
track_time,
19+
)
1520

1621
logger = get_logger(__name__)
1722

@@ -62,7 +67,8 @@ def resolve_location(
6267
return None, None, "No service", False
6368

6469
try:
65-
coordinate: Any = geolocator.geocode(data, language="en")
70+
with track_time(nominatim_lookup_duration):
71+
coordinate: Any = geolocator.geocode(data, language="en")
6672
except socket.timeout as err:
6773
logger.warning("Geocoding service timeout", error=str(err))
6874
return None, None, "No service", False

fingr/metrics.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,12 @@
7272
buckets=(0.001, 0.005, 0.01, 0.05, 0.1, 0.5, 1.0),
7373
)
7474

75+
nominatim_lookup_duration = Histogram(
76+
"fingr_nominatim_lookup_duration_seconds",
77+
"Nominatim geocoding lookup duration in seconds",
78+
buckets=(0.01, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0),
79+
)
80+
7581

7682
@contextmanager
7783
def track_time(histogram: Histogram) -> Generator[None, None, None]:

0 commit comments

Comments
 (0)