diff --git a/modules/nixos/loki/default.nix b/modules/nixos/loki/default.nix index f6f6045..8baaa0a 100644 --- a/modules/nixos/loki/default.nix +++ b/modules/nixos/loki/default.nix @@ -3,7 +3,12 @@ enable = true; configuration = { auth_enabled = false; - server.http_listen_port = 3100; + + server = { + http_listen_address = "0.0.0.0"; + http_listen_port = 3100; + grpc_listen_port = 9096; + }; common = { ring = { @@ -14,10 +19,32 @@ path_prefix = "/var/lib/loki"; }; + ingester = { + wal = { + enabled = true; + dir = "/var/lib/loki/wal"; + }; + chunk_encoding = "snappy"; + chunk_idle_period = "30m"; + max_chunk_age = "2h"; + chunk_target_size = 1572864; + chunk_block_size = 262144; + }; + + limits_config = { + reject_old_samples = true; + reject_old_samples_max_age = "168h"; + ingestion_rate_mb = 10; + ingestion_burst_size_mb = 20; + per_stream_rate_limit = "3MB"; + per_stream_rate_limit_burst = "15MB"; + max_line_size = "256KB"; + }; + schema_config = { configs = [ { - from = "2020-10-24"; + from = "2026-01-01"; store = "tsdb"; object_store = "filesystem"; schema = "v13"; @@ -34,6 +61,15 @@ directory = "/var/lib/loki/chunks"; }; }; + + compactor = { + working_directory = "/var/lib/loki/compactor"; + compaction_interval = "10m"; + retention_enabled = true; + retention_delete_delay = "2h"; + retention_delete_worker_count = 150; + delete_request_store = "filesystem"; + }; }; }; @@ -71,4 +107,6 @@ ]; }; }; + + networking.firewall.allowedTCPPorts = [ 3100 ]; }