blob: 9881f9303e5c4c4d95ec0bae19b9ab13479b7b0c (
plain)
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
|
{
lib,
config,
services,
listenAddress,
nodeExporterPort,
nginxExporterPort,
nginxLogExporterPort,
cadvisorExporterPort,
dnsmasqExporterPort,
...
}:
{
services = {
prometheus.exporters = {
node = {
enable = true;
openFirewall = false;
port = nodeExporterPort;
inherit listenAddress;
};
nginx = {
enable = true;
openFirewall = false;
port = nginxExporterPort;
inherit listenAddress;
};
nginxlog = {
enable = true;
openFirewall = false;
port = nginxLogExporterPort;
inherit listenAddress;
user = "nginx";
group = "nginx";
settings.namespaces =
let
namespace = name: log: {
inherit name;
source_files = [ log ];
parser = "json";
metrics_override.prefix = "nginx";
namespace_label = "vhost";
};
vhost = name: (namespace name "/var/log/nginx/${name}.access.log");
in
[
(namespace "default" "/var/log/nginx/access.log")
]
++ (map vhost services);
};
dnsmasq = lib.mkIf config.services.dnsmasq.enable {
enable = true;
port = dnsmasqExporterPort;
inherit listenAddress;
};
};
cadvisor = {
enable = true;
port = cadvisorExporterPort;
inherit listenAddress;
};
};
}
|