diff --git a/clients/quadraticserver/stats/grafana.nix b/clients/quadraticserver/stats/grafana.nix index a695c49..dd5c946 100644 --- a/clients/quadraticserver/stats/grafana.nix +++ b/clients/quadraticserver/stats/grafana.nix @@ -61,6 +61,25 @@ in hash = "sha256-pNgn6xgZBEu6LW0lc0cXX2gRkQ8lg/rer34SPE3yEl4="; }; } + { + name = "Caddy Hosts"; + options.path = pkgs.stdenv.mkDerivation { + pname = "caddy-hosts-json"; + version = "1.0.0"; + dontUnpack = true; + + src = pkgs.fetchurl { + name = "caddy-hosts.json"; + url = "https://grafana.com/api/dashboards/24146/revisions/1/download"; + hash = "sha256-vw/O3bNKQ0tJwhsZKYvkMU6jeqkG+sfCtA7YT0vp3YY="; + }; + + installPhase = '' + mkdir -p $out + sed 's|''${DS_PROMETHEUS}|prometheus|g' $src > $out/caddy-exporter.json + ''; + }; + } ]; }; }; diff --git a/clients/quadraticserver/stats/prometheus.nix b/clients/quadraticserver/stats/prometheus.nix index 2ba8dab..3003e29 100644 --- a/clients/quadraticserver/stats/prometheus.nix +++ b/clients/quadraticserver/stats/prometheus.nix @@ -16,33 +16,23 @@ } ]; } + { + job_name = "caddy"; + static_configs = [ + { targets = [ "localhost:2019" ]; } + ]; + } ]; - exporters.node = { - enable = true; - listenAddress = "127.0.0.3"; - enabledCollectors = [ - "systemd" - "processes" - ]; - # disabledCollectors = [ - # "arp" - # "bcache" - # "bonding" - # "btrfs" - # "conntrack" - # "dmi" - # "edac" - # "entropy" - # "exec" - # "fibrechannel" - # "filefd" - # "hwmon" - # "infiniband" - # "ipvs" - # "mdadm" - # "netclass" - # ]; + exporters = { + node = { + enable = true; + listenAddress = "127.0.0.3"; + enabledCollectors = [ + "systemd" + "processes" + ]; + }; }; }; } diff --git a/modules/server/caddy.nix b/modules/server/caddy.nix index 0a25525..67a1eaa 100644 --- a/modules/server/caddy.nix +++ b/modules/server/caddy.nix @@ -25,6 +25,12 @@ hash = "sha256-t1qQtYpBKCWeHV8ML200LzB+Sc8iAGl2kc9pvOCKdac="; }; + globalConfig = '' + metrics { + per_host + } + ''; + virtualHosts = lib.mapAttrs (domain: host: { extraConfig = let