diff --git a/xos/core/xoslib/methods/hpcview.py b/xos/core/xoslib/methods/hpcview.py
index 77ca7ed..e4b39d7 100644
--- a/xos/core/xoslib/methods/hpcview.py
+++ b/xos/core/xoslib/methods/hpcview.py
@@ -39,6 +39,11 @@
     else:
         return None
 
+def json_default(d, default):
+    if not d:
+        return default
+    return json.loads(d)
+
 def compute_config_run(d):
     if not d:
         return "null"
@@ -178,6 +183,7 @@
                      "watcher.HPC-hb.time": lookup_time(hpc_service, sliver, "watcher.HPC-hb.time"),
                      "watcher.HPC-fetch.msg": lookup_tag(hpc_service, sliver, "watcher.HPC-fetch.msg"),
                      "watcher.HPC-fetch.time": lookup_time(hpc_service, sliver, "watcher.HPC-fetch.time"),
+                     "watcher.HPC-fetch.urls": json_default(lookup_tag(hpc_service, sliver, "watcher.HPC-fetch-urls.msg"), []),
                      "config_age": compute_config_run(watcherd_hpc),
 
         })
diff --git a/xos/observers/hpc/hpc_watcher.py b/xos/observers/hpc/hpc_watcher.py
index 177d17f..2af9d00 100644
--- a/xos/observers/hpc/hpc_watcher.py
+++ b/xos/observers/hpc/hpc_watcher.py
@@ -269,6 +269,7 @@
                         raise
                 response_code = c.getinfo(c.RESPONSE_CODE)
                 bytes_downloaded = int(c.getinfo(c.SIZE_DOWNLOAD))
+                total_time = float(c.getinfo(c.TOTAL_TIME))
             except Exception, e:
                 #traceback.print_exc()
                 job["status"] = self.curl_error_message(e)
@@ -285,6 +286,8 @@
             return
 
         job["status"] = "success"
+        job["bytes_downloaded"] = bytes_downloaded
+        job["total_time"] = total_time
 
 class WatcherWorker(Thread):
     def __init__(self, queue):
@@ -507,6 +510,7 @@
     def fetch_hpc(self, service, slivers):
         for sliver in slivers:
             sliver.has_error = False
+            sliver.url_status = []
 
             checks = HpcHealthCheck.objects.filter(kind="http")
             if not checks:
@@ -524,10 +528,13 @@
         while self.fetch_queue.outstanding > 0:
             result = self.fetch_queue.get_result()
             sliver = result["sliver"]
+            if (result["status"] == "success"):
+                sliver.url_status.append( (result["url"], "success", result["bytes_downloaded"], result["total_time"]) )
             if (result["status"]!="success") and (not sliver.has_error):
                 self.set_status(sliver, service, "watcher.HPC-fetch", result["status"])
 
         for sliver in slivers:
+            self.set_status(sliver, service, "watcher.HPC-fetch-urls", json.dumps(sliver.url_status))
             if not sliver.has_error:
                 self.set_status(sliver, service, "watcher.HPC-fetch", "success")
 
