diff --git a/morph/lib/monitoring.nix b/morph/lib/monitoring.nix
index 0cedcf6498e485a69075c964ce3d4064baeadcae..64f26c92c4e0e8f7cc961b98972ec6c3ce8f2c89 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";
   };