70 lines
1.7 KiB
Nix
70 lines
1.7 KiB
Nix
{ config, pkgs, modulesPath, lib, ... }:
|
|
|
|
let
|
|
monitor_ip = "monitor.local";
|
|
traefik_ip = "traefik.local";
|
|
sandbox_ip = "sandbox.local";
|
|
forgejo_ip = "forgejo.local";
|
|
|
|
prometheus_exporter_port = 9100;
|
|
promtail_port = 9080;
|
|
traefik_monitor_port = 8082;
|
|
forgejo_monitor_port = 3000;
|
|
in {
|
|
networking.firewall.allowedTCPPorts = [ 9090 ];
|
|
|
|
services.prometheus = {
|
|
enable = true;
|
|
retentionTime = "7d";
|
|
globalConfig = {
|
|
scrape_timeout = "10s";
|
|
scrape_interval = "30s";
|
|
};
|
|
scrapeConfigs = [
|
|
{
|
|
job_name = "node";
|
|
static_configs = [
|
|
{
|
|
targets = [
|
|
"${monitor_ip}:${toString prometheus_exporter_port}"
|
|
"${traefik_ip}:${toString prometheus_exporter_port}"
|
|
"${sandbox_ip}:${toString prometheus_exporter_port}"
|
|
"${forgejo_ip}:${toString prometheus_exporter_port}"
|
|
];
|
|
}
|
|
];
|
|
}
|
|
{
|
|
job_name = "traefik";
|
|
static_configs = [
|
|
{ targets = [ "${traefik_ip}:${toString traefik_monitor_port}" ]; }
|
|
];
|
|
}
|
|
{
|
|
job_name = "gitea";
|
|
static_configs = [
|
|
{ targets = [ "${forgejo_ip}:${toString forgejo_monitor_port}" ]; }
|
|
];
|
|
}
|
|
{
|
|
job_name = "postgres";
|
|
static_configs = [
|
|
{ targets = [ "${forgejo_ip}:9187" ]; }
|
|
];
|
|
}
|
|
{
|
|
job_name = "promtail";
|
|
static_configs = [
|
|
{
|
|
targets = [
|
|
"${monitor_ip}:${toString promtail_port}"
|
|
"${traefik_ip}:${toString promtail_port}"
|
|
"${sandbox_ip}:${toString promtail_port}"
|
|
"${forgejo_ip}:${toString promtail_port}"
|
|
];
|
|
}
|
|
];
|
|
}
|
|
];
|
|
};
|
|
}
|