1[server]
2# Address to bind tcp/udp to.
3address = "127.0.0.1"
4# Port to bind tcp/udp to.
5port = 2053
6# Location of root hints file.
7root_hints_file = "/etc/dns/root.hints"
8
9[logging]
10# Logging output: "stdout" or "file".
11output = "stdout"
12# This is used only if logging.output is "file".
13file_path = "/var/log/alky.log"
14
15[ratelimit]
16# rate: The steady-state rate of requests allowed (r in GCRA)
17# Defines how many requests are allowed per second in normal conditions
18# Type: Integer
19rate = 250
20
21# burst: Maximum number of requests allowed to exceed the steady-state rate temporarily
22# Allows for short bursts of traffic above the defined rate
23# Type: Integer
24burst = 500
25
26# window: The interval (in seconds) at which the rate limit is checked and potentially reset
27# Implements a sliding window rate limit mechanism
28# Type: Integer
29window = 3
30
31# expiration_time: Duration (in seconds) for keeping a client's rate limit data in memory
32# After this period of inactivity, a client's rate limit data is removed to free up memory
33# Type: Integer
34expiration_time = 300
35
36[metrics]
37# ClickHouse connection string
38dsn = "clickhouse://default:clickhouse@localhost:9000/default"
39
40# Number of metricsto buffer before sending to ClickHouse
41batch_size = 1000
42
43# How often to flush metrics to ClickHouse
44flush_interval = "10s"
45
46# How long to retain metrics data
47# This uses time.ParseDuration semantics
48retention_period = "720h"
49
50[cache]
51# The maximum number of items to store in the cache.
52max_items = 5000
53
54# How often the cache will evict items.
55cleanup_interval = "5m"
56
57[advanced]
58# Timeout (in milliseconds) for outgoing queries before being cancelled.
59query_timeout = 100