50 lines
1.1 KiB
Nix
50 lines
1.1 KiB
Nix
|
_:
|
||
|
let
|
||
|
inherit (import ../../../shared/caddy-helpers.nix) logFormat;
|
||
|
domainName = "alertmanager.labs.adtya.xyz";
|
||
|
in
|
||
|
{
|
||
|
services = {
|
||
|
caddy = {
|
||
|
virtualHosts."${domainName}" = {
|
||
|
logFormat = logFormat "${domainName}";
|
||
|
extraConfig = ''
|
||
|
reverse_proxy 127.0.0.1:9093
|
||
|
'';
|
||
|
};
|
||
|
};
|
||
|
prometheus.alertmanager = {
|
||
|
enable = true;
|
||
|
listenAddress = "127.0.0.1";
|
||
|
port = 9093;
|
||
|
webExternalUrl = "https://${domainName}/";
|
||
|
configuration = {
|
||
|
route = {
|
||
|
group_by = [ "alertname" ];
|
||
|
group_wait = "30s";
|
||
|
group_interval = "5m";
|
||
|
repeat_interval = "1h";
|
||
|
receiver = "web.hook";
|
||
|
};
|
||
|
receivers = [
|
||
|
{
|
||
|
name = "web.hook";
|
||
|
webhook_configs = [
|
||
|
{ url = "http://127.0.0.1:5001/"; }
|
||
|
];
|
||
|
}
|
||
|
];
|
||
|
inhibit_rules = [
|
||
|
{
|
||
|
source_match =
|
||
|
{ severity = "critical"; };
|
||
|
target_match =
|
||
|
{ severity = "warning"; };
|
||
|
equal = [ "alertname" "dev" "instance" ];
|
||
|
}
|
||
|
];
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
}
|