97 lines
2.3 KiB
Nix
97 lines
2.3 KiB
Nix
{ pkgs, ... }:
|
|
{
|
|
services.prometheus = {
|
|
enable = true;
|
|
ruleFiles = [
|
|
(pkgs.writeText "prometheus-rules.yml" (builtins.toJSON {
|
|
groups = [
|
|
{
|
|
name = "alerting-rules";
|
|
rules = import ./alert-rules.nix { inherit (pkgs) lib; };
|
|
}
|
|
];
|
|
}))
|
|
];
|
|
webExternalUrl = "https://prometheus.nix-community.org";
|
|
scrapeConfigs = [
|
|
{
|
|
job_name = "telegraf";
|
|
scrape_interval = "60s";
|
|
metrics_path = "/metrics";
|
|
static_configs = [
|
|
{
|
|
targets = map (host: "${host}:9273")
|
|
[
|
|
"build01.nix-community.org"
|
|
"build02.nix-community.org"
|
|
"build03.nix-community.org"
|
|
"build04.nix-community.org"
|
|
"darwin02.nix-community.org"
|
|
"darwin03.nix-community.org"
|
|
"web01.nix-community.org"
|
|
#"web02.nix-community.org"
|
|
"localhost"
|
|
];
|
|
labels.org = "nix-community";
|
|
}
|
|
];
|
|
}
|
|
];
|
|
alertmanagers = [
|
|
{
|
|
static_configs = [
|
|
{
|
|
targets = [ "localhost:9093" ];
|
|
}
|
|
];
|
|
}
|
|
];
|
|
};
|
|
|
|
services.nginx.virtualHosts."prometheus.nix-community.org" = {
|
|
enableACME = true;
|
|
forceSSL = true;
|
|
locations."/".proxyPass = "http://localhost:9090";
|
|
};
|
|
|
|
services.prometheus.alertmanager = {
|
|
enable = true;
|
|
webExternalUrl = "https://alertmanager.nix-community.org";
|
|
listenAddress = "[::1]";
|
|
configuration = {
|
|
route = {
|
|
receiver = "default";
|
|
routes = [
|
|
{
|
|
group_by = [ "host" ];
|
|
match_re.org = "nix-community";
|
|
group_wait = "5m";
|
|
group_interval = "5m";
|
|
repeat_interval = "4h";
|
|
receiver = "nix-community";
|
|
}
|
|
];
|
|
};
|
|
receivers = [
|
|
{
|
|
name = "nix-community";
|
|
webhook_configs = [
|
|
{
|
|
url = "http://localhost:9088/alert";
|
|
max_alerts = 5;
|
|
}
|
|
];
|
|
}
|
|
{
|
|
name = "default";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
|
|
services.nginx.virtualHosts."alertmanager.nix-community.org" = {
|
|
enableACME = true;
|
|
forceSSL = true;
|
|
locations."/".proxyPass = "http://localhost:9093";
|
|
};
|
|
}
|