main
nix 61 lines 1.46 KB
Raw
1 { pkgs, ... }:
2
3 {
4 imports = [
5 ./alertmanager.nix
6 ./exporters/blackbox.nix
7 ./exporters/channel.nix
8 ./exporters/domain.nix
9 ./exporters/elasticsearch.nix
10 ./exporters/fastly.nix
11 ./exporters/github.nix
12 ./exporters/hydra.nix
13 ./exporters/iocaine.nix
14 ./exporters/json.nix
15 ./exporters/matrix-synapse.nix
16 ./exporters/nixos.nix
17 ./exporters/node.nix
18 ./exporters/owncast.nix
19 ./exporters/postgresql.nix
20 ./exporters/rasdaemon.nix
21 ./exporters/storagebox.nix
22 ./exporters/sql.nix
23 ./exporters/up.nix
24 ./exporters/zfs.nix
25 ./exporters/zrepl.nix
26 ];
27
28 services.backup.includesZfsDatasets = [ "/var/lib/prometheus2" ];
29
30 services.prometheus = {
31 enable = true;
32 extraFlags = [
33 "--storage.tsdb.retention.time=${toString (720 * 24)}h"
34 "--web.external-url=https://prometheus.nixos.org/"
35 ];
36 globalConfig.scrape_interval = "15s";
37
38 ruleFiles = [
39 (pkgs.writeText "up.rules" (
40 builtins.toJSON {
41 groups = [
42 {
43 name = "up";
44 rules = [
45 {
46 alert = "NotUp";
47 expr = ''
48 up == 0
49 '';
50 for = "10m";
51 labels.severity = "warning";
52 annotations.summary = "scrape job {{ $labels.job }} is failing on {{ $labels.instance }}";
53 }
54 ];
55 }
56 ];
57 }
58 ))
59 ];
60 };
61 }