use additional loki logger
Some checks failed
Run linting on the backend code / Build (pull_request) Successful in 28s
Run testing on the backend code / Build (pull_request) Failing after 1m27s
Build and deploy the backend to staging / Build and push image (pull_request) Failing after 20s
Build and deploy the backend to staging / Deploy to staging (pull_request) Has been skipped

This commit is contained in:
Remy Moll 2024-12-28 13:57:04 +01:00
parent e764393706
commit d9061388dd
8 changed files with 36 additions and 1106 deletions

View File

@ -25,3 +25,4 @@ pymemcache = "*"
fastapi-cli = "*" fastapi-cli = "*"
scikit-learn = "*" scikit-learn = "*"
pyqt6 = "*" pyqt6 = "*"
loki-logger-handler = "*"

11
backend/Pipfile.lock generated
View File

@ -1,7 +1,7 @@
{ {
"_meta": { "_meta": {
"hash": { "hash": {
"sha256": "bb22b4e28c7aa199c94b688ad93d3ab0ccf1089a172131f4aec03b78e7bd7f1c" "sha256": "6edd6644586e8814a0b4526adb3352dfc17828ca129de7a68c1d5929efe94daa"
}, },
"pipfile-spec": 6, "pipfile-spec": 6,
"requires": {}, "requires": {},
@ -507,6 +507,15 @@
"markers": "python_version >= '3.8'", "markers": "python_version >= '3.8'",
"version": "==1.4.7" "version": "==1.4.7"
}, },
"loki-logger-handler": {
"hashes": [
"sha256:aa1a9c933282c134a1e4271aba3cbaa2a3660eab6ea415bad7a072444ab98aa8",
"sha256:f6114727a9e5e6f3f2058b9b5324d1cab6d1a04e802079f7b57a8aeb7bd0a112"
],
"index": "pypi",
"markers": "python_version >= '2.7'",
"version": "==1.0.2"
},
"lxml": { "lxml": {
"hashes": [ "hashes": [
"sha256:01220dca0d066d1349bd6a1726856a78f7929f3878f7e2ee83c296c69495309e", "sha256:01220dca0d066d1349bd6a1726856a78f7929f3878f7e2ee83c296c69495309e",

@ -1 +1 @@
Subproject commit 718df09e88b63c9524c882ccbb8247ca1448d3ff Subproject commit 4f0a0289fcf8a7755d7dc1a76b443fe1233685ae

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
"""Module allowing to access the parameters of route generation""" """Module setting global parameters for the application, such as logging, cache, route generation, etc."""
import logging import logging
import os import os
@ -16,19 +16,33 @@ cache_dir_string = os.getenv('OSM_CACHE_DIR', './cache')
OSM_CACHE_DIR = Path(cache_dir_string) OSM_CACHE_DIR = Path(cache_dir_string)
# if we are in a debug session, set verbose and rich logging # if we are in a debug (local) session, set verbose and rich logging
if os.getenv('DEBUG', "false") == "true": debug = os.getenv('DEBUG', "false") == "true"
if os.getenv('KUBERNETES_SERVICE_HOST', None) is not None:
# in that case we want to log to stdout and also to loki
from loki_logger_handler.loki_logger_handler import LokiLoggerHandler
loki_handler = LokiLoggerHandler(
url=os.getenv('LOKI_URL', 'http://loki:3100'),
labels={'app': 'anyway', 'env': 'production' if debug else 'staging'}
)
if debug:
logging.basicConfig(
level=logging.DEBUG,
handlers=[loki_handler, logging.StreamHandler()]
)
else:
logging.basicConfig(
level=logging.INFO,
handlers=[loki_handler, logging.StreamHandler()]
)
else:
# in that case we are local and we want to log to stdout only, but make it pretty
from rich.logging import RichHandler from rich.logging import RichHandler
logging.basicConfig( logging.basicConfig(
level=logging.DEBUG, level=logging.DEBUG,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
handlers=[RichHandler()] handlers=[RichHandler()]
) )
else:
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
)
MEMCACHED_HOST_PATH = os.getenv('MEMCACHED_HOST_PATH', None) MEMCACHED_HOST_PATH = os.getenv('MEMCACHED_HOST_PATH', None)

View File

@ -11,7 +11,7 @@ from .utils.landmarks_manager import LandmarkManager
from .utils.toilets_manager import ToiletsManager from .utils.toilets_manager import ToiletsManager
from .utils.optimizer import Optimizer from .utils.optimizer import Optimizer
from .utils.refiner import Refiner from .utils.refiner import Refiner
from .persistence import client as cache_client from .cache import client as cache_client
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View File

@ -4,7 +4,7 @@ from fastapi import HTTPException
from pydantic import ValidationError from pydantic import ValidationError
from ..structs.landmark import Landmark from ..structs.landmark import Landmark
from ..persistence import client as cache_client from ..cache import client as cache_client
def landmarks_to_osmid(landmarks: list[Landmark]) -> list[int] : def landmarks_to_osmid(landmarks: list[Landmark]) -> list[int] :