diff options
Diffstat (limited to '')
-rw-r--r-- | modules/alloy.nix | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/modules/alloy.nix b/modules/alloy.nix new file mode 100644 index 0000000..d4a2e58 --- /dev/null +++ b/modules/alloy.nix @@ -0,0 +1,103 @@ +{ + config, + lib, + ... +}: +let + cfg = config.nixfiles.modules.alloy; +in +{ + options.nixfiles.modules.alloy.enable = lib.mkEnableOption "Alloy"; + + config = lib.mkIf cfg.enable { + services.alloy.enable = true; + + environment.etc."alloy/config.alloy".text = '' + logging { + level = "warn" + format = "logfmt" + } + + prometheus.remote_write "default" { + endpoint { + url = "https://${config.nixfiles.modules.mimir.domain}/api/v1/push" + } + } + prometheus.exporter.self "default" { } + prometheus.scrape "self" { + targets = prometheus.exporter.self.default.targets + forward_to = [prometheus.relabel.default.receiver] + } + prometheus.exporter.unix "default" { } + prometheus.scrape "unix" { + targets = prometheus.exporter.unix.default.targets + forward_to = [prometheus.relabel.default.receiver] + } + prometheus.relabel "default" { + rule { + action = "replace" + regex = "([^:]+):[0-9]+" + replacement = "$1" + source_labels = ["__address__"] + target_label = "instance" + } + forward_to = [prometheus.remote_write.default.receiver] + } + + loki.write "default" { + endpoint { + url = "https://${config.nixfiles.modules.loki.domain}/loki/api/v1/push" + } + } + discovery.relabel "journal" { + targets = [] + rule { + source_labels = ["__journal__systemd_unit"] + target_label = "unit" + } + rule { + source_labels = ["__journal_priority_keyword"] + target_label = "level" + } + rule { + action = "labeldrop" + regex = "service_name" + } + rule { + action = "drop" + source_labels = ["unit"] + regex = "^acme.*" + } + rule { + action = "drop" + source_labels = ["unit"] + regex = "^home-manager.*" + } + rule { + action = "drop" + source_labels = ["unit"] + regex = ".*\\.scope$" + } + rule { + action = "drop" + source_labels = ["unit"] + regex = "^user@.*" + } + rule { + action = "drop" + source_labels = ["unit"] + regex = "^serial-getty@.*" + } + rule { + action = "drop" + source_labels = ["unit"] + regex = "^nixos-rebuild.*" + } + } + loki.source.journal "default" { + forward_to = [loki.write.default.receiver] + relabel_rules = discovery.relabel.journal.rules + } + ''; + }; +} |