mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-07-16 17:41:09 +02:00
feat: format via 'ls **/*.nix | each { |it| nixfmt $it.name }'
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
{config, ...}: {
|
||||
{ config, ... }:
|
||||
{
|
||||
services.prometheus.alertmanager = {
|
||||
enable = true;
|
||||
listenAddress = "127.0.0.1";
|
||||
@@ -22,7 +23,7 @@
|
||||
receiver = "default";
|
||||
routes = [
|
||||
{
|
||||
group_by = ["host"];
|
||||
group_by = [ "host" ];
|
||||
group_wait = "5m";
|
||||
group_interval = "5m";
|
||||
repeat_interval = "4h";
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{mylib, ...}: {
|
||||
{ mylib, ... }:
|
||||
{
|
||||
imports = [
|
||||
./victoriametrics.nix
|
||||
./alertmanager.nix
|
||||
|
||||
@@ -2,10 +2,11 @@
|
||||
lib,
|
||||
myvars,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
# Since victoriametrics use DynamicUser, the user & group do not exists before the service starts.
|
||||
# this group is used as a supplementary Unix group for the service to access our data dir(/data/apps/xxx)
|
||||
users.groups.victoriametrics-data = {};
|
||||
users.groups.victoriametrics-data = { };
|
||||
|
||||
# Workaround for victoriametrics to store data in another place
|
||||
# https://www.freedesktop.org/software/systemd/man/latest/tmpfiles.d.html#Type
|
||||
@@ -16,8 +17,8 @@
|
||||
# Symlinks do not work with DynamicUser, so we should use bind mount here.
|
||||
# https://github.com/systemd/systemd/issues/25097#issuecomment-1929074961
|
||||
systemd.services.victoriametrics.serviceConfig = {
|
||||
SupplementaryGroups = ["victoriametrics-data"];
|
||||
BindPaths = ["/data/apps/victoriametrics:/var/lib/victoriametrics:rbind"];
|
||||
SupplementaryGroups = [ "victoriametrics-data" ];
|
||||
BindPaths = [ "/data/apps/victoriametrics:/var/lib/victoriametrics:rbind" ];
|
||||
};
|
||||
|
||||
# https://victoriametrics.io/docs/victoriametrics/latest/configuration/configuration/
|
||||
@@ -36,87 +37,83 @@
|
||||
# specifies a set of targets and parameters describing how to scrape metrics from them.
|
||||
# https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config
|
||||
prometheusConfig = {
|
||||
scrape_configs =
|
||||
[
|
||||
# --- Homelab Applications --- #
|
||||
scrape_configs = [
|
||||
# --- Homelab Applications --- #
|
||||
|
||||
{
|
||||
job_name = "dnsmasq-exporter";
|
||||
scrape_interval = "30s";
|
||||
metrics_path = "/metrics";
|
||||
static_configs = [
|
||||
{
|
||||
targets = ["${myvars.networking.hostsAddr.suzi.ipv4}:9153"];
|
||||
labels.type = "app";
|
||||
labels.app = "dnsmasq";
|
||||
labels.host = "suzi";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
job_name = "dnsmasq-exporter";
|
||||
scrape_interval = "30s";
|
||||
metrics_path = "/metrics";
|
||||
static_configs = [
|
||||
{
|
||||
targets = [ "${myvars.networking.hostsAddr.suzi.ipv4}:9153" ];
|
||||
labels.type = "app";
|
||||
labels.app = "dnsmasq";
|
||||
labels.host = "suzi";
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
{
|
||||
job_name = "v2ray-exporter";
|
||||
scrape_interval = "30s";
|
||||
metrics_path = "/metrics";
|
||||
static_configs = [
|
||||
{
|
||||
targets = [ "${myvars.networking.hostsAddr.aquamarine.ipv4}:9153" ];
|
||||
labels.type = "app";
|
||||
labels.app = "v2ray";
|
||||
labels.host = "aquamarine";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
job_name = "postgres-exporter";
|
||||
scrape_interval = "30s";
|
||||
metrics_path = "/metrics";
|
||||
static_configs = [
|
||||
{
|
||||
targets = [ "${myvars.networking.hostsAddr.aquamarine.ipv4}:9187" ];
|
||||
labels.type = "app";
|
||||
labels.app = "postgresql";
|
||||
labels.host = "aquamarine";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
job_name = "sftpgo-embedded-exporter";
|
||||
scrape_interval = "30s";
|
||||
metrics_path = "/metrics";
|
||||
static_configs = [
|
||||
{
|
||||
targets = [ "${myvars.networking.hostsAddr.aquamarine.ipv4}:10000" ];
|
||||
labels.type = "app";
|
||||
labels.app = "sftpgo";
|
||||
labels.host = "aquamarine";
|
||||
}
|
||||
];
|
||||
}
|
||||
]
|
||||
# --- Hosts --- #
|
||||
++ (lib.attrsets.foldlAttrs (
|
||||
acc: hostname: addr:
|
||||
acc
|
||||
++ [
|
||||
{
|
||||
job_name = "v2ray-exporter";
|
||||
job_name = "node-exporter-${hostname}";
|
||||
scrape_interval = "30s";
|
||||
metrics_path = "/metrics";
|
||||
static_configs = [
|
||||
{
|
||||
targets = ["${myvars.networking.hostsAddr.aquamarine.ipv4}:9153"];
|
||||
labels.type = "app";
|
||||
labels.app = "v2ray";
|
||||
labels.host = "aquamarine";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
job_name = "postgres-exporter";
|
||||
scrape_interval = "30s";
|
||||
metrics_path = "/metrics";
|
||||
static_configs = [
|
||||
{
|
||||
targets = ["${myvars.networking.hostsAddr.aquamarine.ipv4}:9187"];
|
||||
labels.type = "app";
|
||||
labels.app = "postgresql";
|
||||
labels.host = "aquamarine";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
job_name = "sftpgo-embedded-exporter";
|
||||
scrape_interval = "30s";
|
||||
metrics_path = "/metrics";
|
||||
static_configs = [
|
||||
{
|
||||
targets = ["${myvars.networking.hostsAddr.aquamarine.ipv4}:10000"];
|
||||
labels.type = "app";
|
||||
labels.app = "sftpgo";
|
||||
labels.host = "aquamarine";
|
||||
# All my NixOS hosts.
|
||||
targets = [ "${addr.ipv4}:9100" ];
|
||||
labels.type = "node";
|
||||
labels.host = hostname;
|
||||
}
|
||||
];
|
||||
}
|
||||
]
|
||||
# --- Hosts --- #
|
||||
++ (
|
||||
lib.attrsets.foldlAttrs
|
||||
(acc: hostname: addr:
|
||||
acc
|
||||
++ [
|
||||
{
|
||||
job_name = "node-exporter-${hostname}";
|
||||
scrape_interval = "30s";
|
||||
metrics_path = "/metrics";
|
||||
static_configs = [
|
||||
{
|
||||
# All my NixOS hosts.
|
||||
targets = ["${addr.ipv4}:9100"];
|
||||
labels.type = "node";
|
||||
labels.host = hostname;
|
||||
}
|
||||
];
|
||||
}
|
||||
])
|
||||
[]
|
||||
myvars.networking.hostsAddr
|
||||
);
|
||||
) [ ] myvars.networking.hostsAddr);
|
||||
};
|
||||
};
|
||||
|
||||
@@ -124,7 +121,7 @@
|
||||
enable = true;
|
||||
settings = {
|
||||
"datasource.url" = "http://localhost:9090";
|
||||
"notifier.url" = ["http://localhost:9093"]; # alertmanager's api
|
||||
"notifier.url" = [ "http://localhost:9093" ]; # alertmanager's api
|
||||
|
||||
# Whether to disable long-lived connections to the datasource.
|
||||
"datasource.disableKeepAlive" = true;
|
||||
|
||||
Reference in New Issue
Block a user