diff --git a/morph/lib/monitoring.nix b/morph/lib/monitoring.nix
index 84d6fa561c43eca28286d9e0e97f6f86d18d5fb5..3cf1680e1e1d0d1399b3e5741cc8b3850f68c2e5 100644
--- a/morph/lib/monitoring.nix
+++ b/morph/lib/monitoring.nix
@@ -24,7 +24,7 @@ let
   vpnClientIPs = lib.remove monitoringvpnIPv4 (map (node: node.vpnIPv4) monitoringHosts);
   # A list of VPN clients (IP addresses or hostnames) as strings indicating
   # which nodes to scrape "nodeExporter" metrics from.
-  nodeExporterTargets = map (node: node.name) monitoringHosts;
+  nodeExporterTargets = map (node: node.vpnHostName) monitoringHosts;
 in {
   imports = [
     ../../nixos/modules/monitoring/vpn/server.nix
diff --git a/nixos/modules/monitoring/server/prometheus.nix b/nixos/modules/monitoring/server/prometheus.nix
index 3bb00a5b95855859e455b5df8fb065b3d70bc855..2a78dd3e797c0b28d14fc9e9e0858811ac86ef76 100644
--- a/nixos/modules/monitoring/server/prometheus.nix
+++ b/nixos/modules/monitoring/server/prometheus.nix
@@ -10,7 +10,7 @@ let
   cfg = config.services.private-storage.monitoring.prometheus;
   dropPortNumber = {
     source_labels = [ "__address__" ];
-    regex = "^(.*):\\d+$";
+    regex = "^(.*)(?:\\.monitoringvpn):\\d+$";
     target_label = "instance";
   };