@cryptotaxi247 / infra / commits / 39513c3f

prometheus: fix rule file composition

Martin Weinelt committed Feb 24, 2024 at 23:15 UTC 39513c3ffe957a3604b379959a32541f2c6db0a9
5 files changed +36 -22
delft/eris/prometheus/exporters/blackbox.nix
+12 -10
@@ -61,17 +61,19 @@ in
61 ])
62 ];
63
64 - rules = [
65 - (builtins.toJSON {
66 - name = "blackbox";
67 - rules = [ {
68 - alert = "CertificateExpiry";
69 - expr = "probe_ssl_earliest_cert_expiry - time() < 86400 * 14";
70 - for = "10m";
71 - labels.severity = "warning";
72 - annotations.summary = "Certificate for {{ $labels.instance }} is expiring soon.";
64 + ruleFiles = [
65 + (pkgs.writeText "blackbox-exporter.rules" (builtins.toJSON {
66 + groups = [ {
67 + name = "blackbox";
68 + rules = [ {
69 + alert = "CertificateExpiry";
70 + expr = "probe_ssl_earliest_cert_expiry - time() < 86400 * 14";
71 + for = "10m";
72 + labels.severity = "warning";
73 + annotations.summary = "Certificate for {{ $labels.instance }} is expiring soon.";
74 + } ];
75 } ];
74 - })
76 + }))
77 ];
78 };
79 }
delft/eris/prometheus/exporters/domain.nix
+7 -3
@@ -1,3 +1,7 @@
1 +{ pkgs
2 +, ...
3 +}:
4 +
5 {
6 services.prometheus = {
7 exporters.domain = {
@@ -26,8 +30,8 @@
30 } ];
31 } ];
32
29 - rules = [
30 - (builtins.toJSON {
33 + ruleFiles = [
34 + (pkgs.writeText "domain-exporter.rules" (builtins.toJSON {
35 groups = [ {
36 name = "domain";
37 rules = [ {
@@ -38,7 +42,7 @@
42 annotations.summary = "Domain {{ $labels.domain }} will expire in less than 30 days";
43 } ];
44 } ];
41 - })
45 + }))
46 ];
47 };
48 }
delft/eris/prometheus/exporters/hydra.nix
+3 -3
@@ -79,8 +79,8 @@
79 } ];
80 } ];
81
82 - rules = [
83 - (builtins.toJSON {
82 + ruleFiles = [
83 + (pkgs.writeText "hydra-exporter.rules" (builtins.toJSON {
84 groups = [ {
85 name = "hydra";
86 rules = [ {
@@ -98,7 +98,7 @@
98 annotations.summary = "hydra-queue-runner's prometheus exporter is not up";
99 } ];
100 } ];
101 - })
101 + }))
102 ];
103 };
104 }
delft/eris/prometheus/exporters/node.nix
+7 -3
@@ -1,3 +1,7 @@
1 +{ pkgs
2 +, ...
3 +}:
4 +
5 {
6 services.prometheus = {
7 scrapeConfigs = [ {
@@ -35,11 +39,11 @@
39 } ];
40 } ];
41
38 - rules = let
42 + ruleFiles = let
43 diskSelector = ''mountpoint=~"(/|/scratch)",instance!~".*packethost.net"'';
44 relevantLabels = "device,fstype,instance,mountpoint";
45 in [
42 - (builtins.toJSON {
46 + (pkgs.writeText "node-exporter.rules" (builtins.toJSON {
47 groups = [ {
48 name = "node";
49 rules = [ {
@@ -80,7 +84,7 @@
84 annotations.grafana = "https://monitoring.nixos.org/grafana/d/fBW4tL1Wz/scheduled-task-state-channels-website?orgId=1&refresh=10s";
85 } ];
86 } ];
83 - })
87 + }))
88 ];
89 };
90 }
delft/eris/prometheus/exporters/rfc39.nix
+7 -3
@@ -1,3 +1,7 @@
1 +{ pkgs
2 +, ...
3 +}:
4 +
5 {
6 services.prometheus = {
7 scrapeConfigs = [ {
@@ -11,8 +15,8 @@
15 } ];
16 } ];
17
14 - rules = [
15 - (builtins.toJSON {
18 + ruleFiles = [
19 + (pkgs.writeText "rfc39-exporter.rules" (builtins.toJSON {
20 groups = [ {
21 name = "rfc39";
22 rules = [ {
@@ -23,7 +27,7 @@
27 annotations.grafana = "https://monitoring.nixos.org/grafana/d/fBW4tL1Wz/scheduled-task-state-channels-website?orgId=1&refresh=10s";
28 } ];
29 } ];
26 - })
30 + }))
31 ];
32 };
33 }