From 2cca676e6962cb3618c91ba4103b6a03ff66d9e8 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Sun, 19 Jun 2022 11:26:55 +0200 Subject: [PATCH 1/5] nixos/grafana-agent: replace `settings.prometheus` with `settings.metrics` According to https://github.com/grafana/agent/pull/1540, -prometheus.* flages were deprecated in 0.19.0 in favor of the -metrics.* counterparts. Same applies to `loki` being renamed to `logs`. I'm not sure if the config file format is still supported (it could be), but we shouldn't use deprecated configs. --- nixos/modules/services/monitoring/grafana-agent.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/monitoring/grafana-agent.nix b/nixos/modules/services/monitoring/grafana-agent.nix index 021ddaa8ee0d..c8d45c37b4d2 100644 --- a/nixos/modules/services/monitoring/grafana-agent.nix +++ b/nixos/modules/services/monitoring/grafana-agent.nix @@ -56,7 +56,7 @@ in # Don't bind on the default port 80 http_listen_port = 9090; }; - prometheus = { + metrics = { wal_directory = "\${STATE_DIRECTORY}"; global.scrape_interval = "5s"; }; @@ -69,7 +69,7 @@ in }; example = { - loki.configs = [{ + logs.configs = [{ name = "default"; scrape_configs = [ { From e578b4d3ed8068b85a27c5c7b9e135f2af2d7f21 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Sun, 19 Jun 2022 11:33:19 +0200 Subject: [PATCH 2/5] nixos/grafana-agent: drop server.{grpc,http}_listen_address,http_listen_port According to https://grafana.com/docs/agent/latest/upgrade-guide/#v0240, this has been deprecated/moved to -server.http.address and -server.grpc.address (accepting ip and port) config options in v0.24.0, and already listens on localhost and not port 80 by default. --- nixos/modules/services/monitoring/grafana-agent.nix | 7 ------- 1 file changed, 7 deletions(-) diff --git a/nixos/modules/services/monitoring/grafana-agent.nix b/nixos/modules/services/monitoring/grafana-agent.nix index c8d45c37b4d2..887dce0113a3 100644 --- a/nixos/modules/services/monitoring/grafana-agent.nix +++ b/nixos/modules/services/monitoring/grafana-agent.nix @@ -49,13 +49,6 @@ in }; default = { - server = { - # Don't bind on 0.0.0.0 - grpc_listen_address = "127.0.0.1"; - http_listen_address = "127.0.0.1"; - # Don't bind on the default port 80 - http_listen_port = 9090; - }; metrics = { wal_directory = "\${STATE_DIRECTORY}"; global.scrape_interval = "5s"; From b09836593ede3de62cf2caf0351501a9575bbd06 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Sun, 19 Jun 2022 11:41:44 +0200 Subject: [PATCH 3/5] nixos/grafana-agent: move remote write config from integrations.prometheus_remote_write to metrics.global.remote_write remote_write config in integrations.prometheus_remote_write is only applied for integrations, so static configurations won't get written anywhere. --- nixos/modules/services/monitoring/grafana-agent.nix | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/nixos/modules/services/monitoring/grafana-agent.nix b/nixos/modules/services/monitoring/grafana-agent.nix index 887dce0113a3..fcc028b1b9c4 100644 --- a/nixos/modules/services/monitoring/grafana-agent.nix +++ b/nixos/modules/services/monitoring/grafana-agent.nix @@ -62,6 +62,11 @@ in }; example = { + metrics.global.remote_write = [{ + url = "\${METRICS_REMOTE_WRITE_URL}"; + basic_auth.username = "\${METRICS_REMOTE_WRITE_USERNAME}"; + basic_auth.password_file = "\${CREDENTIALS_DIRECTORY}/metrics_remote_write_password"; + }]; logs.configs = [{ name = "default"; scrape_configs = [ @@ -94,13 +99,6 @@ in basic_auth.password_file = "\${CREDENTIALS_DIRECTORY}/logs_remote_write_password"; }]; }]; - integrations = { - prometheus_remote_write = [{ - url = "\${METRICS_REMOTE_WRITE_URL}"; - basic_auth.username = "\${METRICS_REMOTE_WRITE_USERNAME}"; - basic_auth.password_file = "\${CREDENTIALS_DIRECTORY}/metrics_remote_write_password"; - }]; - }; }; }; }; From 5f297c164eed6f4b72ca0337698037a003354d28 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Sun, 19 Jun 2022 11:49:34 +0200 Subject: [PATCH 4/5] nixos/grafana-agent: add myself as maintainer --- nixos/modules/services/monitoring/grafana-agent.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/monitoring/grafana-agent.nix b/nixos/modules/services/monitoring/grafana-agent.nix index fcc028b1b9c4..bbeda1846470 100644 --- a/nixos/modules/services/monitoring/grafana-agent.nix +++ b/nixos/modules/services/monitoring/grafana-agent.nix @@ -7,7 +7,7 @@ let in { meta = { - maintainers = with maintainers; [ zimbatm ]; + maintainers = with maintainers; [ flokli zimbatm ]; }; options.services.grafana-agent = { From 8b926cad93f2b5a6d265312d415918cd80bed3f6 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Sun, 19 Jun 2022 12:23:06 +0200 Subject: [PATCH 5/5] nixos/tests/grafana-agent: update port We now don't explicitly configure a self-chosen port, but use the default port choosen by grafana, 12345. --- nixos/tests/grafana-agent.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nixos/tests/grafana-agent.nix b/nixos/tests/grafana-agent.nix index 97f752b350b0..a9f34d8cea31 100644 --- a/nixos/tests/grafana-agent.nix +++ b/nixos/tests/grafana-agent.nix @@ -23,9 +23,9 @@ import ./make-test-python.nix ({ lib, pkgs, ... }: with subtest("Grafana-agent is running"): machine.wait_for_unit("grafana-agent.service") - machine.wait_for_open_port(9090) + machine.wait_for_open_port(12345) machine.succeed( - "curl -sSfN http://127.0.0.1:9090/-/healthy" + "curl -sSfN http://127.0.0.1:12345/-/healthy" ) machine.shutdown() '';