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
}