chore: nf-fmt-nix

This commit is contained in:
arcnmx 2024-05-17 18:58:32 -07:00
parent 1d806cd552
commit 3099654a97
8 changed files with 297 additions and 257 deletions

View file

@ -1,11 +1,11 @@
_: {
services.grafana = {
#enable = true;
settings.server = {
domain = "gensokyo.zone";
http_port = 9092;
http_addr = "0.0.0.0";
root_url = "https://mon.gensokyo.zone";
};
services.grafana = {
#enable = true;
settings.server = {
domain = "gensokyo.zone";
http_port = 9092;
http_addr = "0.0.0.0";
root_url = "https://mon.gensokyo.zone";
};
}
};
}

View file

@ -1,61 +1,75 @@
{ pkgs, config, lib, access, gensokyo-zone, ... }: let
{
pkgs,
config,
lib,
access,
gensokyo-zone,
...
}: let
inherit (gensokyo-zone) systems;
inherit (lib.attrsets) filterAttrs mapAttrsToList attrNames;
promtailSystems = filterAttrs (_: system:
system.config.exporters.promtail.enable or false
) systems;
inherit (builtins) toJSON;
inherit (lib.options) mkOption;
inherit (lib.types) port;
cfg = config.services.loki;
promtailSystems =
filterAttrs (
_: system:
system.config.exporters.promtail.enable or false
)
systems;
inherit (builtins) toJSON;
inherit (lib.options) mkOption;
inherit (lib.types) port;
cfg = config.services.loki;
in {
options.services.loki.settings = {
httpListenPort = mkOption {
type = port;
description = "Port to listen on over HTTP";
default = 9093;
};
grpcListenPort = mkOption {
type = port;
description = "Port to listen on over gRPC";
default = 0;
};
};
config = {
services.loki = {
#enable = true;
configFile = pkgs.writeTextFile {
name = "config.yaml";
executable = false;
text = (toJSON {
server = {
http_listen_port = cfg.settings.httpListenPort;
grpc_listen_port = cfg.settings.grpcListenPort;
};
positions = {
filename = "/tmp/positions.yaml";
};
clients = mapAttrsToList (system: systemConfig: {
url = "${access.getAddressFor system.config.name "local"}:${system.config.exporters.promtail.port}";
}) promtailSystems;
scrape_configs = mapAttrsToList (system: systemConfig: {
job_name = "${system.config.name}-journal";
journal = {
max_age = "${24*7}h";
labels = {
job = "systemd-journal";
host = system.config.name;
};
};
relabel_configs = [
{
source_labels = [ "__journal__systemd_unit" ];
target_label = "unit";
}
];
}) promtailSystems;
});
};
};
options.services.loki.settings = {
httpListenPort = mkOption {
type = port;
description = "Port to listen on over HTTP";
default = 9093;
};
}
grpcListenPort = mkOption {
type = port;
description = "Port to listen on over gRPC";
default = 0;
};
};
config = {
services.loki = {
#enable = true;
configFile = pkgs.writeTextFile {
name = "config.yaml";
executable = false;
text = toJSON {
server = {
http_listen_port = cfg.settings.httpListenPort;
grpc_listen_port = cfg.settings.grpcListenPort;
};
positions = {
filename = "/tmp/positions.yaml";
};
clients =
mapAttrsToList (system: systemConfig: {
url = "${access.getAddressFor system.config.name "local"}:${system.config.exporters.promtail.port}";
})
promtailSystems;
scrape_configs =
mapAttrsToList (system: systemConfig: {
job_name = "${system.config.name}-journal";
journal = {
max_age = "${24 * 7}h";
labels = {
job = "systemd-journal";
host = system.config.name;
};
};
relabel_configs = [
{
source_labels = ["__journal__systemd_unit"];
target_label = "unit";
}
];
})
promtailSystems;
};
};
};
};
}

View file

@ -1,20 +1,30 @@
{ access, lib, gensokyo-zone, ... }: let
{
access,
lib,
gensokyo-zone,
...
}: let
inherit (gensokyo-zone) systems;
inherit (lib.attrsets) filterAttrs mapAttrsToList attrNames;
nodeExporterSystems = filterAttrs (_: system:
system.config.exporters.prometheus-exporters-node.enable or false
) systems;
in {
services.prometheus = {
#enable = true;
port = 9090;
scrapeConfigs = mapAttrsToList (system: systemConfig: {
job_name = "${system.config.name}-node-exporter";
static_configs = {
targets = [
"${access.getAddressFor system.config.name "local"}:${system.config.exporters.prometheus-exporters-node.port}"
];
};
}) nodeExporterSystems;
};
}
nodeExporterSystems =
filterAttrs (
_: system:
system.config.exporters.prometheus-exporters-node.enable or false
)
systems;
in {
services.prometheus = {
#enable = true;
port = 9090;
scrapeConfigs =
mapAttrsToList (system: systemConfig: {
job_name = "${system.config.name}-node-exporter";
static_configs = {
targets = [
"${access.getAddressFor system.config.name "local"}:${system.config.exporters.prometheus-exporters-node.port}"
];
};
})
nodeExporterSystems;
};
}

View file

@ -1,53 +1,57 @@
{ config, lib, ... }: let
inherit (lib.modules) mkIf mkMerge;
in {
config = {
services.prometheus.exporters = {
node = mkMerge [
{
#enable = true;
port = 9091;
enabledCollectors = [
"nfs"
];
}
(mkIf config.services.nfs.server.enable {
enabledCollectors = [
"nfsd"
];
})
(mkIf (!config.boot.isContainer) {
enabledCollectors = [
"nvme"
"hwmon"
];
})
{
enabledCollectors = [
"arp"
"boottime"
"cpu"
"cpufreq"
"diskstats"
"dmi"
"entropy"
"filesystem"
"netdev"
"systemd"
"sysctl"
"systemd"
"loadavg"
"meminfo"
"netstat"
"os"
"stat"
"time"
"uname"
"vmstat"
"zfs"
];
}
];
};
{
config,
lib,
...
}: let
inherit (lib.modules) mkIf mkMerge;
in {
config = {
services.prometheus.exporters = {
node = mkMerge [
{
#enable = true;
port = 9091;
enabledCollectors = [
"nfs"
];
}
(mkIf config.services.nfs.server.enable {
enabledCollectors = [
"nfsd"
];
})
(mkIf (!config.boot.isContainer) {
enabledCollectors = [
"nvme"
"hwmon"
];
})
{
enabledCollectors = [
"arp"
"boottime"
"cpu"
"cpufreq"
"diskstats"
"dmi"
"entropy"
"filesystem"
"netdev"
"systemd"
"sysctl"
"systemd"
"loadavg"
"meminfo"
"netstat"
"os"
"stat"
"time"
"uname"
"vmstat"
"zfs"
];
}
];
};
}
};
}

View file

@ -1,19 +1,23 @@
{ config, lib, ... }: let
inherit (builtins) toJSON;
inherit (lib.options) mkOption;
inherit (lib.types) port;
cfg = config.services.promtail;
{
config,
lib,
...
}: let
inherit (builtins) toJSON;
inherit (lib.options) mkOption;
inherit (lib.types) port;
cfg = config.services.promtail;
in {
options.services.promtail.settings = {
httpListenPort = mkOption {
type = port;
description = "Port to listen on over HTTP";
default = 9094;
};
options.services.promtail.settings = {
httpListenPort = mkOption {
type = port;
description = "Port to listen on over HTTP";
default = 9094;
};
config.services.promtail = {
extraFlags = [
"--server.http-listen-port=${cfg.settings.httpListenPort}"
];
};
}
};
config.services.promtail = {
extraFlags = [
"--server.http-listen-port=${cfg.settings.httpListenPort}"
];
};
}