diff --git a/modules/alloy.nix b/modules/alloy.nix new file mode 100644 index 0000000..60a5c4e --- /dev/null +++ b/modules/alloy.nix @@ -0,0 +1,27 @@ +{ pkgs, ... }: { + services.alloy = { + enable = true; + configPath = pkgs.writeText "config.alloy" '' + loki.relabel "journal" { + forward_to = [] + + rule { + source_labels = ["__journal__systemd_unit"] + target_label = "unit" + } + } + + loki.source.journal "read" { + forward_to = [loki.write.endpoint.receiver] + relabel_rules = loki.relabel.journal.rules + labels = {component = "loki.source.journal"} + } + + loki.write "endpoint" { + endpoint { + url = "tgsatan.tg.lan:3100/api/v1/push" + } + } + ''; + }; +} diff --git a/modules/base.nix b/modules/base.nix index 67630c0..ba8e416 100755 --- a/modules/base.nix +++ b/modules/base.nix @@ -7,6 +7,7 @@ imports = [ ./node-exporter.nix ./systemd-exporter.nix + ./alloy.nix ]; environment.variables."FLAKE" = "${self}"; diff --git a/systems/game-servers/systems/tgsatan/modules/grafana/default.nix b/systems/game-servers/systems/tgsatan/modules/grafana/default.nix index c7e9e40..1689539 100644 --- a/systems/game-servers/systems/tgsatan/modules/grafana/default.nix +++ b/systems/game-servers/systems/tgsatan/modules/grafana/default.nix @@ -71,7 +71,13 @@ type = "prometheus"; access = "proxy"; url = "http://tgsatan.tg.lan:9090"; # Change when prometheus is moved - isDefault = true; + isDefault = true; # dead var? + } + { + name = "loki"; + type = "loki"; + proxy = "proxy"; + url = "http://tgsatan.tg.lan:3100"; # Change when Loki is moved } ]; diff --git a/systems/game-servers/systems/tgsatan/modules/monitoring/default.nix b/systems/game-servers/systems/tgsatan/modules/monitoring/default.nix index 77d0bbb..ea901b5 100644 --- a/systems/game-servers/systems/tgsatan/modules/monitoring/default.nix +++ b/systems/game-servers/systems/tgsatan/modules/monitoring/default.nix @@ -1,5 +1,6 @@ {...}: { imports = [ ./prometheus.nix + ./loki.nix ]; } diff --git a/systems/game-servers/systems/tgsatan/modules/monitoring/loki.nix b/systems/game-servers/systems/tgsatan/modules/monitoring/loki.nix new file mode 100644 index 0000000..a7fdcf7 --- /dev/null +++ b/systems/game-servers/systems/tgsatan/modules/monitoring/loki.nix @@ -0,0 +1,41 @@ +{ ... }: { + services.loki = { + enable = true; + dataDir = "/persist/loki"; + configuration = { + auth_enabled = false; + server = { + http_listen_port = 3100; + }; + common = { + instance_addr = "127.0.0.1"; + path_prefix = "/tmp/loki"; + storage.filesystem = { + chunks_directory = "/tmp/loki/chunks"; + rules_directory = "/tmp/loki/rules"; + }; + replication_factor = 1; + ring.kvstore.store = "inmemory"; + }; + query_range.results_cache.cache.embedded_cache = { + enabled = true; + max_size_mb = 100; + }; + schema_config.configs = [ + { + from = "2020-10-24"; + store = "tsdb"; + object_store = "filesystem"; + schema = "v13"; + index = { + prefix = "index_"; + period = "24h"; + }; + } + ]; + # Enable this if we ever use services.prometheus.alertManager.enable = true; + # ruler.alertmanager_url = "http://localhost:9093"; + frontend.encoding = "protobuf"; + }; + }; +} diff --git a/systems/game-servers/systems/tgsatan/modules/monitoring/prometheus.nix b/systems/game-servers/systems/tgsatan/modules/monitoring/prometheus.nix index b77d655..9b183d9 100644 --- a/systems/game-servers/systems/tgsatan/modules/monitoring/prometheus.nix +++ b/systems/game-servers/systems/tgsatan/modules/monitoring/prometheus.nix @@ -23,6 +23,11 @@ in { job_name = "caddy"; static_configs = [{targets = ["tgsatan.tg.lan:2019"];}]; } + { + job_name = "loki"; + metrics_path = "/metrics"; + static_configs = [{targets = ["tgsatan.tg.lan:3100"];}]; + } # { # job_name = "tgsatan_forgejo"; # static_configs [ { targets= [ "tgsatan.tg.lan:9001" ]; } ];