From ff088a9e46318f63f0c5db825d6d5ece1dfdec52 Mon Sep 17 00:00:00 2001 From: Martin Fischer Date: Tue, 23 Dec 2025 12:55:07 +0100 Subject: fix: set loki retention period to 1 year --- nixos/hosts/tente/default.nix | 4 ++++ nixos/shared/monitoring.nix | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/nixos/hosts/tente/default.nix b/nixos/hosts/tente/default.nix index 9a6d504..82bd498 100644 --- a/nixos/hosts/tente/default.nix +++ b/nixos/hosts/tente/default.nix @@ -128,6 +128,10 @@ in monitoring = { alloyUiPort = ports.grafanaAlloy; lokiPort = ports.grafanaLoki; + lokiRetentionStream = [ + # TODO: set same retention for nginx logs in loki and logrotate + # (set up recording rule in Loki so we can still have some stats longer than that) + ]; prometheusPort = ports.prometheus; prometheusNodeExporterPort = ports.prometheusNodeExporter; }; diff --git a/nixos/shared/monitoring.nix b/nixos/shared/monitoring.nix index eecad59..5ef10a6 100644 --- a/nixos/shared/monitoring.nix +++ b/nixos/shared/monitoring.nix @@ -9,6 +9,10 @@ in lokiPort = lib.mkOption { type = lib.types.int; }; + lokiRetentionStream = lib.mkOption { + type = lib.types.listOf lib.types.attrs; + default = []; + }; alloyUiPort = lib.mkOption { type = lib.types.int; }; @@ -83,9 +87,13 @@ in compactor = { working_directory = "/var/lib/loki"; + retention_enabled = true; + delete_request_store = "filesystem"; }; limits_config = { + retention_period = "${toString (24*365)}h"; + retention_stream = cfg.lokiRetentionStream; allow_structured_metadata = true; }; }; -- cgit v1.3.1