blob: d4a2e585f3794178a4c15ccb1678bd3d05c2e695 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
{
config,
lib,
...
}:
let
cfg = config.nixfiles.modules.alloy;
in
{
options.nixfiles.modules.alloy.enable = lib.mkEnableOption "Alloy";
config = lib.mkIf cfg.enable {
services.alloy.enable = true;
environment.etc."alloy/config.alloy".text = ''
logging {
level = "warn"
format = "logfmt"
}
prometheus.remote_write "default" {
endpoint {
url = "https://${config.nixfiles.modules.mimir.domain}/api/v1/push"
}
}
prometheus.exporter.self "default" { }
prometheus.scrape "self" {
targets = prometheus.exporter.self.default.targets
forward_to = [prometheus.relabel.default.receiver]
}
prometheus.exporter.unix "default" { }
prometheus.scrape "unix" {
targets = prometheus.exporter.unix.default.targets
forward_to = [prometheus.relabel.default.receiver]
}
prometheus.relabel "default" {
rule {
action = "replace"
regex = "([^:]+):[0-9]+"
replacement = "$1"
source_labels = ["__address__"]
target_label = "instance"
}
forward_to = [prometheus.remote_write.default.receiver]
}
loki.write "default" {
endpoint {
url = "https://${config.nixfiles.modules.loki.domain}/loki/api/v1/push"
}
}
discovery.relabel "journal" {
targets = []
rule {
source_labels = ["__journal__systemd_unit"]
target_label = "unit"
}
rule {
source_labels = ["__journal_priority_keyword"]
target_label = "level"
}
rule {
action = "labeldrop"
regex = "service_name"
}
rule {
action = "drop"
source_labels = ["unit"]
regex = "^acme.*"
}
rule {
action = "drop"
source_labels = ["unit"]
regex = "^home-manager.*"
}
rule {
action = "drop"
source_labels = ["unit"]
regex = ".*\\.scope$"
}
rule {
action = "drop"
source_labels = ["unit"]
regex = "^user@.*"
}
rule {
action = "drop"
source_labels = ["unit"]
regex = "^serial-getty@.*"
}
rule {
action = "drop"
source_labels = ["unit"]
regex = "^nixos-rebuild.*"
}
}
loki.source.journal "default" {
forward_to = [loki.write.default.receiver]
relabel_rules = discovery.relabel.journal.rules
}
'';
};
}
|