summary refs log tree commit diff
path: root/modules/foundation/monitoring/client.nix
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;
    };
  };
}