From cc3d9ace43cd7f9bfc938bcf263dc41e684d73c6 Mon Sep 17 00:00:00 2001 From: diamondburned Date: Wed, 6 Mar 2024 04:34:52 -0800 Subject: [PATCH] Experiment with netdata --- secrets/netdata-key | Bin 0 -> 59 bytes servers/cirno/configuration.nix | 1 + servers/cirno/services.nix | 31 ----------------- servers/cirno/telemetry.nix | 60 ++++++++++++++++++++++++++++++++ servers/cs306/telemetry.nix | 20 +++++++++++ 5 files changed, 81 insertions(+), 31 deletions(-) create mode 100644 secrets/netdata-key create mode 100644 servers/cirno/telemetry.nix diff --git a/secrets/netdata-key b/secrets/netdata-key new file mode 100644 index 0000000000000000000000000000000000000000..e421fd288309f46eff3a4b3861bc753a513bb3c2 GIT binary patch literal 59 zcmV-B0L1?QM@dveQdv+`0KO;&((J8d^v%e%CdNfvMZ}oiWBkJ0fyzBqp ./services.nix + ./telemetry.nix ]; networking.hostName = "cirno"; diff --git a/servers/cirno/services.nix b/servers/cirno/services.nix index 6ce5149..4f17219 100644 --- a/servers/cirno/services.nix +++ b/servers/cirno/services.nix @@ -48,37 +48,6 @@ in }; }; - # Gather system metrics using Telegraf into cirno's VictoriaMetrics. - services.telegraf = { - enable = true; - extraConfig = { - inputs = { - net = {}; - mem = {}; - disk = {}; - swap = {}; - system = {}; - diskio = {}; - processes = {}; - prometheus = { - urls = [ - "http://localhost:2019/metrics" # Caddy - ]; - }; - systemd_units = {}; - internet_speed = { - interval = "2h"; - }; - }; - outputs = { - influxdb = { - database = "telegraf"; - urls = [ "http://cs306:8428" ]; - }; - }; - }; - }; - services.christmasd-test = { enable = true; ledPointsFile = builtins.fetchurl diff --git a/servers/cirno/telemetry.nix b/servers/cirno/telemetry.nix new file mode 100644 index 0000000..0eb52ac --- /dev/null +++ b/servers/cirno/telemetry.nix @@ -0,0 +1,60 @@ +{ config, lib, pkgs, ... }: + +{ + # Enable netdata, which is a lightweight alternative to Grafana. + # https://nixos.wiki/wiki/Netdata + # https://dataswamp.org/~solene/2022-09-16-netdata-cloud-nixos.html + services.netdata = { + enable = true; + config = { + global = { + # Disable storage of metrics on disk. + "memory mode" = "none"; + }; + web = { + # Disable the web UI. + "mode" = "none"; + "accept a streaming request every seconds" = 0; + }; + }; + configDir = { + "stream.conf" = pkgs.writeText "stream.conf" '' + [stream] + enabled = yes + api key = ${builtins.readFile } + destination = cs306:19999 + ''; + }; + }; + + # Gather system metrics using Telegraf into cirno's VictoriaMetrics. + services.telegraf = { + enable = true; + extraConfig = { + inputs = { + net = {}; + mem = {}; + disk = {}; + swap = {}; + system = {}; + diskio = {}; + processes = {}; + prometheus = { + urls = [ + "http://localhost:2019/metrics" # Caddy + ]; + }; + systemd_units = {}; + internet_speed = { + interval = "2h"; + }; + }; + outputs = { + influxdb = { + database = "telegraf"; + urls = [ "http://cs306:8428" ]; + }; + }; + }; + }; +} diff --git a/servers/cs306/telemetry.nix b/servers/cs306/telemetry.nix index 7172f0a..3ebb73e 100644 --- a/servers/cs306/telemetry.nix +++ b/servers/cs306/telemetry.nix @@ -65,4 +65,24 @@ }; }; }; + + # Enable netdata, which is a lightweight alternative to Grafana. + # https://nixos.wiki/wiki/Netdata + # https://dataswamp.org/~solene/2022-09-16-netdata-cloud-nixos.html + services.netdata = { + enable = true; + configDir = { + "stream.conf" = pkgs.writeText "stream.conf" '' + [stream] + enabled = yes + enable compression = yes + + [${builtins.readFile }] + enabled = yes + allow from = 100.* + default memory mode = dbengine + health enabled by default = yes + ''; + }; + }; }