about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2022-02-28 19:13:31 -0800
committerFranck Cuny <franck@fcuny.net>2022-02-28 19:14:30 -0800
commitea50f9d68c48415883a9f9cb2e014526bb4236ff (patch)
treee62bae9b116376dbeb28ca6b51f67d3903fe7f2e
parentusers: change my ssh key for the laptop (diff)
downloadworld-ea50f9d68c48415883a9f9cb2e014526bb4236ff.tar.gz
prometheus: initial configuration for the server
Run prometheus via systemd, and configure to pull node-exporter's
metrics from two hosts.

The retention is set for 3 years.
-rw-r--r--hosts/common/nas.nix1
-rw-r--r--hosts/common/server/prometheus.nix29
2 files changed, 30 insertions, 0 deletions
diff --git a/hosts/common/nas.nix b/hosts/common/nas.nix
index 3f38792..8ab11a8 100644
--- a/hosts/common/nas.nix
+++ b/hosts/common/nas.nix
@@ -4,5 +4,6 @@
   imports = [
     ./server/default.nix
     ./server/samba.nix
+    ./server/prometheus.nix
   ];
 }
diff --git a/hosts/common/server/prometheus.nix b/hosts/common/server/prometheus.nix
new file mode 100644
index 0000000..1c7c906
--- /dev/null
+++ b/hosts/common/server/prometheus.nix
@@ -0,0 +1,29 @@
+{ config, pkgs, lib, ... }:
+
+let
+  # Scrape a list of static targets for a job.
+  staticScrape = (job_name: targets: {
+    inherit job_name;
+    static_configs = [{ inherit targets; }];
+  });
+in
+{
+  services.prometheus = {
+    enable = true;
+
+    globalConfig.scrape_interval = "15s";
+
+    extraFlags = [
+      # 3 years of retention
+      "--storage.tsdb.retention=1095d"
+      "--web.enable-admin-api"
+    ];
+
+    scrapeConfigs = [
+      (staticScrape "node" [
+        "rtr:9100"
+        "tahoe:9100"
+      ])
+    ];
+  };
+}