analyze performance upgrade
This commit is contained in:
@@ -47,6 +47,7 @@ MIDDLEWARE = [
|
||||
"django.contrib.auth.middleware.AuthenticationMiddleware",
|
||||
"django.contrib.messages.middleware.MessageMiddleware",
|
||||
"django.middleware.clickjacking.XFrameOptionsMiddleware",
|
||||
"IoTAnalyzer.middleware.RequestLogMiddleware",
|
||||
]
|
||||
|
||||
ROOT_URLCONF = "IoTPreTester.urls"
|
||||
@@ -118,6 +119,71 @@ STATIC_ROOT = BASE_DIR / "staticfiles"
|
||||
CAPTURE_UPLOAD_DIR = Path(
|
||||
os.environ.get("CAPTURE_UPLOAD_DIR", BASE_DIR.parent / "uploads")
|
||||
)
|
||||
|
||||
|
||||
def env_int(name: str, default: int) -> int:
|
||||
try:
|
||||
return int(os.environ.get(name, default))
|
||||
except (TypeError, ValueError):
|
||||
return default
|
||||
|
||||
|
||||
# Bounds for a single capture analysis pass. 0 disables the packet limit and
|
||||
# reads the capture completely; large captures then take correspondingly longer.
|
||||
CAPTURE_PACKET_LIMIT = env_int("CAPTURE_PACKET_LIMIT", 0)
|
||||
CAPTURE_MAX_TEXT_PAYLOADS = env_int("CAPTURE_MAX_TEXT_PAYLOADS", 20000)
|
||||
CAPTURE_MAX_PAYLOAD_CHARS = env_int("CAPTURE_MAX_PAYLOAD_CHARS", 16384)
|
||||
|
||||
# --- Logging -----------------------------------------------------------------
|
||||
# Console output goes to the container log; backend.log keeps a rotating copy.
|
||||
# Every capture analysis additionally writes <capture>.analysis.log next to
|
||||
# the upload, which the API exposes for troubleshooting.
|
||||
LOG_DIR = Path(os.environ.get("LOG_DIR", BASE_DIR.parent / "logs"))
|
||||
LOG_LEVEL = os.environ.get("LOG_LEVEL", "info").upper()
|
||||
try:
|
||||
LOG_DIR.mkdir(parents=True, exist_ok=True)
|
||||
_FILE_LOGGING = True
|
||||
except OSError:
|
||||
_FILE_LOGGING = False
|
||||
|
||||
LOGGING = {
|
||||
"version": 1,
|
||||
"disable_existing_loggers": False,
|
||||
"formatters": {
|
||||
"standard": {
|
||||
"format": "%(asctime)s %(levelname)-7s [%(name)s] %(message)s",
|
||||
"datefmt": "%Y-%m-%d %H:%M:%S",
|
||||
},
|
||||
},
|
||||
"handlers": {
|
||||
"console": {
|
||||
"class": "logging.StreamHandler",
|
||||
"formatter": "standard",
|
||||
"stream": "ext://sys.stdout",
|
||||
},
|
||||
**({
|
||||
"file": {
|
||||
"class": "logging.handlers.RotatingFileHandler",
|
||||
"formatter": "standard",
|
||||
"filename": str(LOG_DIR / "backend.log"),
|
||||
"maxBytes": 10 * 1024 * 1024,
|
||||
"backupCount": 5,
|
||||
"encoding": "utf-8",
|
||||
},
|
||||
} if _FILE_LOGGING else {}),
|
||||
},
|
||||
"root": {
|
||||
"handlers": ["console"] + (["file"] if _FILE_LOGGING else []),
|
||||
"level": LOG_LEVEL,
|
||||
},
|
||||
"loggers": {
|
||||
"django": {"level": "INFO", "propagate": True},
|
||||
"django.request": {"level": "WARNING", "propagate": True},
|
||||
"django.server": {"level": "INFO", "propagate": True},
|
||||
"IoTAnalyzer": {"level": LOG_LEVEL, "propagate": True},
|
||||
"analyzer": {"level": LOG_LEVEL, "propagate": True},
|
||||
},
|
||||
}
|
||||
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
|
||||
APPEND_SLASH = False
|
||||
|
||||
|
||||
Reference in New Issue
Block a user