117 lines
3.0 KiB
Nix
117 lines
3.0 KiB
Nix
{
|
|
service_configs,
|
|
lib,
|
|
...
|
|
}:
|
|
let
|
|
textfileDir = "/var/lib/prometheus-node-exporter-textfiles";
|
|
in
|
|
{
|
|
imports = [
|
|
(lib.serviceMountWithZpool "prometheus" service_configs.zpool_ssds [
|
|
"/var/lib/prometheus"
|
|
])
|
|
(lib.serviceFilePerms "prometheus" [
|
|
"Z /var/lib/prometheus 0700 prometheus prometheus"
|
|
])
|
|
];
|
|
|
|
services.prometheus = {
|
|
enable = true;
|
|
port = service_configs.ports.private.prometheus.port;
|
|
listenAddress = "127.0.0.1";
|
|
stateDir = "prometheus";
|
|
retentionTime = "0d"; # 0 disables time-based retention (keep forever)
|
|
|
|
exporters = {
|
|
node = {
|
|
enable = true;
|
|
port = service_configs.ports.private.prometheus_node.port;
|
|
listenAddress = "127.0.0.1";
|
|
enabledCollectors = [
|
|
"hwmon"
|
|
"systemd"
|
|
"textfile"
|
|
];
|
|
extraFlags = [
|
|
"--collector.textfile.directory=${textfileDir}"
|
|
];
|
|
};
|
|
|
|
apcupsd = {
|
|
enable = true;
|
|
port = service_configs.ports.private.prometheus_apcupsd.port;
|
|
listenAddress = "127.0.0.1";
|
|
apcupsdAddress = "127.0.0.1:3551";
|
|
};
|
|
|
|
zfs = {
|
|
enable = true;
|
|
port = service_configs.ports.private.prometheus_zfs.port;
|
|
listenAddress = "127.0.0.1";
|
|
};
|
|
};
|
|
|
|
scrapeConfigs = [
|
|
{
|
|
job_name = "prometheus";
|
|
static_configs = [
|
|
{ targets = [ "127.0.0.1:${toString service_configs.ports.private.prometheus.port}" ]; }
|
|
];
|
|
}
|
|
{
|
|
job_name = "node";
|
|
static_configs = [
|
|
{ targets = [ "127.0.0.1:${toString service_configs.ports.private.prometheus_node.port}" ]; }
|
|
];
|
|
}
|
|
{
|
|
job_name = "apcupsd";
|
|
static_configs = [
|
|
{ targets = [ "127.0.0.1:${toString service_configs.ports.private.prometheus_apcupsd.port}" ]; }
|
|
];
|
|
}
|
|
{
|
|
job_name = "llama-cpp";
|
|
static_configs = [
|
|
{ targets = [ "127.0.0.1:${toString service_configs.ports.private.llama_cpp.port}" ]; }
|
|
];
|
|
}
|
|
{
|
|
job_name = "jellyfin";
|
|
static_configs = [
|
|
{ targets = [ "127.0.0.1:${toString service_configs.ports.private.jellyfin_exporter.port}" ]; }
|
|
];
|
|
}
|
|
{
|
|
job_name = "qbittorrent";
|
|
static_configs = [
|
|
{ targets = [ "127.0.0.1:${toString service_configs.ports.private.qbittorrent_exporter.port}" ]; }
|
|
];
|
|
}
|
|
{
|
|
job_name = "igpu";
|
|
static_configs = [
|
|
{ targets = [ "127.0.0.1:${toString service_configs.ports.private.igpu_exporter.port}" ]; }
|
|
];
|
|
}
|
|
{
|
|
job_name = "minecraft";
|
|
static_configs = [
|
|
{ targets = [ "127.0.0.1:${toString service_configs.ports.private.minecraft_exporter.port}" ]; }
|
|
];
|
|
}
|
|
{
|
|
job_name = "zfs";
|
|
static_configs = [
|
|
{ targets = [ "127.0.0.1:${toString service_configs.ports.private.prometheus_zfs.port}" ]; }
|
|
];
|
|
}
|
|
];
|
|
};
|
|
|
|
systemd.tmpfiles.rules = [
|
|
"d ${textfileDir} 0755 root root -"
|
|
];
|
|
}
|