events: add sentry for geoip
Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
parent
10b16bc36a
commit
8eecc28c3c
|
@ -7,6 +7,7 @@ from typing import Optional, TypedDict
|
||||||
from geoip2.database import Reader
|
from geoip2.database import Reader
|
||||||
from geoip2.errors import GeoIP2Error
|
from geoip2.errors import GeoIP2Error
|
||||||
from geoip2.models import City
|
from geoip2.models import City
|
||||||
|
from sentry_sdk.hub import Hub
|
||||||
from structlog.stdlib import get_logger
|
from structlog.stdlib import get_logger
|
||||||
|
|
||||||
from authentik.lib.config import CONFIG
|
from authentik.lib.config import CONFIG
|
||||||
|
@ -62,13 +63,17 @@ class GeoIPReader:
|
||||||
|
|
||||||
def city(self, ip_address: str) -> Optional[City]:
|
def city(self, ip_address: str) -> Optional[City]:
|
||||||
"""Wrapper for Reader.city"""
|
"""Wrapper for Reader.city"""
|
||||||
if not self.enabled:
|
with Hub.current.start_span(
|
||||||
return None
|
op="events.geo.city",
|
||||||
self.__check_expired()
|
description=ip_address,
|
||||||
try:
|
):
|
||||||
return self.__reader.city(ip_address)
|
if not self.enabled:
|
||||||
except (GeoIP2Error, ValueError):
|
return None
|
||||||
return None
|
self.__check_expired()
|
||||||
|
try:
|
||||||
|
return self.__reader.city(ip_address)
|
||||||
|
except (GeoIP2Error, ValueError):
|
||||||
|
return None
|
||||||
|
|
||||||
def city_dict(self, ip_address: str) -> Optional[GeoIPDict]:
|
def city_dict(self, ip_address: str) -> Optional[GeoIPDict]:
|
||||||
"""Wrapper for self.city that returns a dict"""
|
"""Wrapper for self.city that returns a dict"""
|
||||||
|
|
Reference in New Issue