host/tatos: configure prometheus

This commit is contained in:
Dmitriy Pleshevskiy 2025-01-30 01:26:09 +03:00
parent 3025145ec6
commit d1f8cc2e84
Signed by: pleshevskiy
GPG key ID: 17041163DA10A9A2
3 changed files with 41 additions and 1 deletions

View file

@ -2,10 +2,11 @@
{
imports = [
./grafana
./miniflux
./wireguard
./nginx.nix
./dns.nix
./grafana.nix
./prometheus.nix
];
}

View file

@ -0,0 +1,39 @@
{ config, hostsPath, ... }:
let
istalData = import (hostsPath + "/istal/data.secret.nix");
nodeExporterPort = 40000;
in
{
services.prometheus.exporters.node = {
enable = true;
port = nodeExporterPort;
# https://github.com/NixOS/nixpkgs/blob/nixos-24.05/nixos/modules/services/monitoring/prometheus/exporters.nix
enabledCollectors = [ "systemd" ];
# /nix/store/zgsw0yx18v10xa58psanfabmg95nl2bb-node_exporter-1.8.1/bin/node_exporter --help
extraFlags = [ "--collector.ethtool" "--collector.softirqs" "--collector.tcpstat" "--collector.wifi" ];
};
# https://wiki.nixos.org/wiki/Prometheus
# https://nixos.org/manual/nixos/stable/#module-services-prometheus-exporters-configuration
# https://github.com/NixOS/nixpkgs/blob/nixos-24.05/nixos/modules/services/monitoring/prometheus/default.nix
services.prometheus = {
enable = true;
listenAddress = "127.0.0.1";
port = 33010;
globalConfig.scrape_interval = "15s"; # "1m"
scrapeConfigs = [
{
job_name = "node_dev";
static_configs = [
{
targets = [
"localhost:${toString nodeExporterPort}"
"${istalData.addr}:${toString nodeExporterPort}"
];
}
];
}
];
};
}