profiling: fix for 'none'

This commit is contained in:
Peter Bieringer
2025-12-08 17:55:11 +01:00
parent 15ebb1e647
commit 2df265617b

View File

@@ -36,7 +36,7 @@ import random
import time import time
import zlib import zlib
from http import client from http import client
from typing import Iterable, List, Mapping, Sequence, Tuple, Union from typing import Iterable, List, Mapping, Tuple, Union
from radicale import config, httputils, log, pathutils, types from radicale import config, httputils, log, pathutils, types
from radicale.app.base import ApplicationBase from radicale.app.base import ApplicationBase
@@ -60,8 +60,6 @@ _IntermediateResponse = Tuple[str, List[Tuple[str, str]], Iterable[bytes]]
REQUEST_METHODS = ["DELETE", "GET", "HEAD", "MKCALENDAR", "MKCOL", "MOVE", "OPTIONS", "POST", "PROPFIND", "PROPPATCH", "PUT", "REPORT"] REQUEST_METHODS = ["DELETE", "GET", "HEAD", "MKCALENDAR", "MKCOL", "MOVE", "OPTIONS", "POST", "PROPFIND", "PROPPATCH", "PUT", "REPORT"]
PROFILING: Sequence[str] = ("per_request", "per_request_method")
class Application(ApplicationPartDelete, ApplicationPartHead, class Application(ApplicationPartDelete, ApplicationPartHead,
ApplicationPartGet, ApplicationPartMkcalendar, ApplicationPartGet, ApplicationPartMkcalendar,
@@ -134,14 +132,13 @@ class Application(ApplicationPartDelete, ApplicationPartHead,
self._profiling_per_request_min_duration = configuration.get("logging", "profiling_per_request_min_duration") self._profiling_per_request_min_duration = configuration.get("logging", "profiling_per_request_min_duration")
self._profiling_per_request_method_interval = configuration.get("logging", "profiling_per_request_method_interval") self._profiling_per_request_method_interval = configuration.get("logging", "profiling_per_request_method_interval")
self._profiling_top_x_functions = configuration.get("logging", "profiling_top_x_functions") self._profiling_top_x_functions = configuration.get("logging", "profiling_top_x_functions")
if self._profiling == "per_request": if self._profiling in config.PROFILING:
self._profiling_per_request = True
elif self._profiling == "per_request_method":
self._profiling_per_request_method = True
else:
logger.warning("profiling: %s (not supported, disabled)", self._profiling)
if self._profiling_per_request or self._profiling_per_request_method:
logger.info("profiling: %s", self._profiling) logger.info("profiling: %s", self._profiling)
if self._profiling == "per_request":
self._profiling_per_request = True
elif self._profiling == "per_request_method":
self._profiling_per_request_method = True
if self._profiling_per_request or self._profiling_per_request_method:
logger.info("profiling top X functions: %d", self._profiling_top_x_functions) logger.info("profiling top X functions: %d", self._profiling_top_x_functions)
if self._profiling_per_request: if self._profiling_per_request:
logger.info("profiling per request minimum duration: %d (below are skipped)", self._profiling_per_request_min_duration) logger.info("profiling per request minimum duration: %d (below are skipped)", self._profiling_per_request_min_duration)