diff options
author | Azat Bahawi <azat@bahawi.net> | 2024-04-21 02:15:42 +0300 |
---|---|---|
committer | Azat Bahawi <azat@bahawi.net> | 2024-04-21 02:15:42 +0300 |
commit | e6ed60548397627bf10f561f9438201dbba0a36e (patch) | |
tree | f9a84c5957d2cc4fcd148065ee9365a0c851ae1c /modules/nixos/promtail.nix | |
parent | 2024-04-18 (diff) |
2024-04-21
Diffstat (limited to 'modules/nixos/promtail.nix')
-rw-r--r-- | modules/nixos/promtail.nix | 135 |
1 files changed, 0 insertions, 135 deletions
diff --git a/modules/nixos/promtail.nix b/modules/nixos/promtail.nix deleted file mode 100644 index 65d88d4..0000000 --- a/modules/nixos/promtail.nix +++ /dev/null @@ -1,135 +0,0 @@ -{ - config, - lib, - this, - ... -}: -with lib; -let - cfg = config.nixfiles.modules.promtail; -in -{ - options.nixfiles.modules.promtail = { - enable = mkEnableOption "Promtail"; - - port = mkOption { - description = "Port."; - type = with types; port; - default = 30181; - }; - - loki.url = mkOption { - description = "Address of a listening Loki service."; - type = with types; str; - default = "https://${config.nixfiles.modules.loki.domain}"; - }; - - filters = mkOption { - description = ''Filters to use with "scrape_config.pipeline_stages".''; - type = with types; listOf attrs; - default = [ ]; - }; - }; - - config = mkIf cfg.enable { - services.promtail = { - enable = true; - - configuration = { - server = rec { - http_listen_address = this.wireguard.ipv4.address; - http_listen_port = cfg.port; - - grpc_listen_address = this.wireguard.ipv4.address; - grpc_listen_port = http_listen_port + 1; - - log_level = "warn"; - }; - - clients = [ - { - url = "${cfg.loki.url}/loki/api/v1/push"; - batchwait = "30s"; - batchsize = 100000; - external_labels.host_id = config.networking.hostId; - } - ]; - - positions = { - filename = "/tmp/positions.yaml"; - sync_period = "30s"; - ignore_invalid_yaml = true; - }; - - scrape_configs = [ - { - job_name = "journal"; - journal.max_age = "24h"; - relabel_configs = - map - ( - n: - let - label = toLower n; - in - { - source_labels = [ "__journal_${label}" ]; - target_label = if hasPrefix "_" label then substring 1 (stringLength label - 1) label else label; - } - ) - [ - # Derived from systemd.journal fields[1]. - # - # [1]: https://github.com/coreos/go-systemd/blob/main/sdjournal/journal.go#L335 - # [1]: https://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html - - "MESSAGE" - # "MESSAGE_ID" - "PRIORITY" - # "CODE_FILE" - # "CODE_LINE" - # "CODE_FUNC" - # "ERRNO" - "SYSLOG_FACILITY" - "SYSLOG_IDENTIFIER" - # "SYSLOG_PID" - # "_PID" - # "_UID" - # "_GID" - # "_COMM" - # "_EXE" - "_CMDLINE" - # "_CAP_EFFECTIVE" - # "_AUDIT_SESSION" - # "_AUDIT_LOGINUID" - # "_SYSTEMD_CGROUP" - # "_SYSTEMD_SESSION" - # "_SYSTEMD_UNIT" - # "_SYSTEMD_USER_UNIT" - # "_SYSTEMD_OWNER_UID" - # "_SYSTEMD_SLICE" - # "_SELINUX_CONTEXT" - # "_SOURCE_REALTIME_TIMESTAMP" - # "_BOOT_ID" - # "_MACHINE_ID" - "_HOSTNAME" - # "_TRANSPORT" - # "__CURSOR" - # "__REALTIME_TIMESTAMP" - # "__MONOTONIC_TIMESTAMP" - ] - ++ [ - { - # This is weird. I can't find where is this defined in the - # source code but apparently it exists. - source_labels = [ "__journal_priority_keyword" ]; - target_label = "level"; - } - ]; - pipeline_stages = cfg.filters; - } - ]; - }; - }; - }; -} |