]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
daemon/ratelimiting: lint fixes docs-develop-rrl-8r8r8r/deployments/5347
authorLukáš Ondráček <lukas.ondracek@nic.cz>
Wed, 16 Oct 2024 14:43:02 +0000 (16:43 +0200)
committerLukáš Ondráček <lukas.ondracek@nic.cz>
Wed, 16 Oct 2024 14:43:02 +0000 (16:43 +0200)
doc/_static/config.schema.json
python/knot_resolver/datamodel/config_schema.py
python/knot_resolver/manager/manager.py

index 036a3ce01b2b0bc30834cc509e157b084b06f394..ca031d6023c4e509c4de8c015df6d42f647ff185 100644 (file)
                             "renum",
                             "exterr",
                             "rules",
-                            "prlayr"
+                            "prlayr",
+                            "defer"
                         ]
                     },
                     "description": "List of groups for which 'debug' logging level is set.",
                 "graphite": false
             }
         },
+        "rate-limiting": {
+            "description": "Configuration of rate limiting.",
+            "type": [
+                "object",
+                "null"
+            ],
+            "properties": {
+                "capacity": {
+                    "type": "integer",
+                    "description": "Expected maximal number of blocked networks/hosts at the same time.",
+                    "default": 524288
+                },
+                "rate-limit": {
+                    "type": "integer",
+                    "description": "Number of allowed queries per second from a single host."
+                },
+                "instant-limit": {
+                    "type": "integer",
+                    "description": "Number of allowed queries at a single point in time from a single host.",
+                    "default": 50
+                },
+                "tc-limit-perc": {
+                    "type": "integer",
+                    "minimum": 0,
+                    "maximum": 100,
+                    "description": "Percent of rate/instant limit from which responses are sent as truncated.",
+                    "default": 90
+                }
+            },
+            "default": null
+        },
         "lua": {
             "description": "Custom Lua configuration.",
             "type": "object",
index 415360b93986636dff59d55464d3020fa84903ef..16adbc16610f1abb71d64ae755fa43407bb3f946 100644 (file)
@@ -2,7 +2,6 @@ import logging
 import os
 import socket
 from typing import Any, Dict, List, Literal, Optional, Tuple, Union
-from knot_resolver.datamodel.rate_limiting_schema import RateLimitingSchema
 
 from knot_resolver.constants import API_SOCK_FILE, RUN_DIR, VERSION
 from knot_resolver.datamodel.cache_schema import CacheSchema
@@ -17,6 +16,7 @@ from knot_resolver.datamodel.management_schema import ManagementSchema
 from knot_resolver.datamodel.monitoring_schema import MonitoringSchema
 from knot_resolver.datamodel.network_schema import NetworkSchema
 from knot_resolver.datamodel.options_schema import OptionsSchema
+from knot_resolver.datamodel.rate_limiting_schema import RateLimitingSchema
 from knot_resolver.datamodel.templates import POLICY_CONFIG_TEMPLATE, WORKER_CONFIG_TEMPLATE
 from knot_resolver.datamodel.types import EscapedStr, IntPositive, WritableDir
 from knot_resolver.datamodel.view_schema import ViewSchema
@@ -107,7 +107,7 @@ class KresConfig(ConfigSchema):
         logging: Logging and debugging configuration.
         monitoring: Metrics exposisition configuration (Prometheus, Graphite)
         lua: Custom Lua configuration.
-        rate_limiting: ... TODO
+        rate_limiting: Configuration of rate limiting.
         """
 
         version: int = 1
index f295de256bf5320bb148cbfff2cf1fca6acf3e42..105b2081afa0fb24bc8b155aefe6f0dcd072aa91 100644 (file)
@@ -1,8 +1,8 @@
 import asyncio
 import logging
+import os
 import sys
 import time
-import os
 from secrets import token_hex
 from subprocess import SubprocessError
 from typing import Any, Callable, List, Optional