124 lines
3.4 KiB
Nix
124 lines
3.4 KiB
Nix
{
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}: {
|
|
services = {
|
|
mimir = {
|
|
enable = true;
|
|
|
|
configuration = {
|
|
multitenancy_enabled = false;
|
|
|
|
target = "all";
|
|
server = {
|
|
http_listen_port = 9009;
|
|
};
|
|
|
|
common = {
|
|
storage = {
|
|
backend = "filesystem";
|
|
filesystem = {
|
|
dir = "/var/lib/mimir";
|
|
};
|
|
};
|
|
};
|
|
|
|
blocks_storage = {
|
|
backend = "filesystem";
|
|
filesystem = {
|
|
dir = "/var/lib/mimir/blocks";
|
|
};
|
|
|
|
tsdb = {
|
|
dir = "/var/lib/mimir/tsdb";
|
|
};
|
|
};
|
|
|
|
compactor = {
|
|
data_dir = "/var/lib/mimir/compactor";
|
|
};
|
|
|
|
ingester = {
|
|
ring = {
|
|
instance_addr = "127.0.0.1";
|
|
replication_factor = 1;
|
|
kvstore = {
|
|
store = "memberlist";
|
|
};
|
|
};
|
|
};
|
|
|
|
store_gateway = {
|
|
sharding_ring = {
|
|
replication_factor = 1;
|
|
};
|
|
};
|
|
|
|
ruler = {
|
|
alertmanager_url = "http://127.0.0.1:9093";
|
|
};
|
|
|
|
ruler_storage = {
|
|
backend = "local";
|
|
local = {
|
|
directory = "${pkgs.writeTextDir "anonymous/homelab.yml" (lib.generators.toYAML {} {
|
|
groups = [
|
|
{
|
|
name = "homelab";
|
|
interval = "1m";
|
|
rules = [
|
|
{
|
|
alert = "HighDiskUsage";
|
|
expr = ''
|
|
(1 - node_btrfs_device_unused_bytes / node_btrfs_device_size_bytes) * 100 > 85
|
|
'';
|
|
for = "5m";
|
|
labels = {severity = "warning";};
|
|
annotations = {
|
|
summary = "High disk usage on {{ $labels.instance }}";
|
|
};
|
|
}
|
|
{
|
|
alert = "HighMemoryUsage";
|
|
expr = ''
|
|
(1 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100 > 90
|
|
'';
|
|
for = "5m";
|
|
labels = {severity = "warning";};
|
|
annotations = {
|
|
summary = "High memory usage on {{ $labels.instance }}";
|
|
};
|
|
}
|
|
{
|
|
alert = "HighCpuUsage";
|
|
expr = ''
|
|
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
|
|
'';
|
|
for = "5m";
|
|
labels = {severity = "warning";};
|
|
annotations = {
|
|
summary = "High CPU usage on {{ $labels.instance }}";
|
|
};
|
|
}
|
|
{
|
|
alert = "ServiceDown";
|
|
expr = ''
|
|
node_systemd_unit_state{state="active"} == 0
|
|
'';
|
|
for = "2m";
|
|
labels = {severity = "critical";};
|
|
annotations = {
|
|
summary = "Service {{ $labels.name }} is down on {{ $labels.instance }}";
|
|
};
|
|
}
|
|
];
|
|
}
|
|
];
|
|
})}";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|