diff --git a/edge-monitoring-server/edge_monitoring_server.py b/edge-monitoring-server/edge_monitoring_server.py
index a467fee..398fedf 100755
--- a/edge-monitoring-server/edge_monitoring_server.py
+++ b/edge-monitoring-server/edge_monitoring_server.py
@@ -321,23 +321,32 @@
         ping_status = edge['status']['user_plane']
 
         # Add ping dns latency results if available
-        if edge['speedtest']['ping']['dns']['avg']:
-            ping_dns_min.labels(edge['name']).set(edge['speedtest']['ping']['dns']['min'])
-            ping_dns_avg.labels(edge['name']).set(edge['speedtest']['ping']['dns']['avg'])
-            ping_dns_max.labels(edge['name']).set(edge['speedtest']['ping']['dns']['max'])
-            ping_dns_stddev.labels(edge['name']).set(edge['speedtest']['ping']['dns']['stddev'])
+        try:
+            if edge['speedtest']['ping']['dns']['avg']:
+                ping_dns_min.labels(edge['name']).set(edge['speedtest']['ping']['dns']['min'])
+                ping_dns_avg.labels(edge['name']).set(edge['speedtest']['ping']['dns']['avg'])
+                ping_dns_max.labels(edge['name']).set(edge['speedtest']['ping']['dns']['max'])
+                ping_dns_stddev.labels(edge['name']).set(edge['speedtest']['ping']['dns']['stddev'])
+        except KeyError:
+            pass
 
         # Add ping iperf_server latency results if available
-        if edge['speedtest']['ping']['iperf_server']['avg']:
-            ping_iperf_server_min.labels(edge['name']).set(edge['speedtest']['ping']['iperf_server']['min'])
-            ping_iperf_server_avg.labels(edge['name']).set(edge['speedtest']['ping']['iperf_server']['avg'])
-            ping_iperf_server_max.labels(edge['name']).set(edge['speedtest']['ping']['iperf_server']['max'])
-            ping_iperf_server_stddev.labels(edge['name']).set(edge['speedtest']['ping']['iperf_server']['stddev'])
+        try:
+            if edge['speedtest']['ping']['iperf_server']['avg']:
+                ping_iperf_server_min.labels(edge['name']).set(edge['speedtest']['ping']['iperf_server']['min'])
+                ping_iperf_server_avg.labels(edge['name']).set(edge['speedtest']['ping']['iperf_server']['avg'])
+                ping_iperf_server_max.labels(edge['name']).set(edge['speedtest']['ping']['iperf_server']['max'])
+                ping_iperf_server_stddev.labels(edge['name']).set(edge['speedtest']['ping']['iperf_server']['stddev'])
+        except KeyError:
+            pass
 
         # Add iperf bandwidth results if available
-        if edge['speedtest']['iperf']['cluster']['downlink']:
-            iperf_cluster_downlink.labels(edge['name']).set(edge['speedtest']['iperf']['cluster']['downlink'])
-            iperf_cluster_uplink.labels(edge['name']).set(edge['speedtest']['iperf']['cluster']['uplink'])
+        try:
+            if edge['speedtest']['iperf']['cluster']['downlink']:
+                iperf_cluster_downlink.labels(edge['name']).set(edge['speedtest']['iperf']['cluster']['downlink'])
+                iperf_cluster_uplink.labels(edge['name']).set(edge['speedtest']['iperf']['cluster']['uplink'])
+        except KeyError:
+            pass
 
         cp_status.labels(edge['name']).set(status_codes[connect_status])
         up_status.labels(edge['name']).set(status_codes[ping_status])
