reNixos/viola/services/mimir.nix
s0me1newithhand7s 793b14918a viola: upstream
Signed-off-by: s0me1newithhand7s <git+me@hand7s.org>
2026-03-25 18:48:47 +03:00

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 }}";
};
}
];
}
];
})}";
};
};
};
};
};
}