[LNT][PATCH] Include the date a sample was taken in the graph view

Chris Matthews chris.matthews at apple.com
Thu Aug 8 19:33:05 PDT 2013


This patch displays the date and time which a sample was taken inside the point mouseover in the LNT graph view.

Index: lnt/server/ui/templates/v4_graph.html
===================================================================
--- lnt/server/ui/templates/v4_graph.html	(revision 188037)
+++ lnt/server/ui/templates/v4_graph.html	(working copy)
@@ -117,10 +117,14 @@
     var tip_body = '<div id="tooltip">';
 
     if ("label" in meta_data) {
-        tip_body += "<b>Revision:</b>" + meta_data.label + "<br>";
+        tip_body += "<b>Revision:</b> " + meta_data.label + "<br>";
     }
-    tip_body += "<b>Value:</b>" + data[1].toFixed(4) + "</div>";
+    tip_body += "<b>Value:</b> " + data[1].toFixed(4) + "<br>";
 
+    if ("date" in meta_data) {
+        tip_body += "<b>Date:</b> " + meta_data.date;
+    }
+    tip_body += "</div>";
     var tooltip_div = $(tip_body).css( {
         position: 'absolute',
         display: 'none',
Index: lnt/server/ui/views.py
===================================================================
--- lnt/server/ui/views.py	(revision 188037)
+++ lnt/server/ui/views.py	(working copy)
@@ -513,7 +513,7 @@
         # we want to load. Actually, we should just make this a single query.
         #
         # FIXME: Don't hard code field name.
-        q = ts.query(field.column, ts.Order.llvm_project_revision).\
+        q = ts.query(field.column, ts.Order.llvm_project_revision, ts.Run.start_time).\
             join(ts.Run).join(ts.Order).\
             filter(ts.Run.machine_id == machine.id).\
             filter(ts.Sample.test == test).\
@@ -526,7 +526,7 @@
                              (field.status_field.column == None))
 
         # Aggregate by revision.
-        data = util.multidict((rev, val) for val,rev in q).items()
+        data = util.multidict((rev, (val, date)) for val,rev,date in q).items()
         data.sort(key=lambda sample: convert_revision(sample[0]))
 
         # Compute the graph points.
@@ -536,25 +536,34 @@
         moving_median_data = []
         moving_average_data = []
         if normalize_by_median:
-            normalize_by = 1.0/stats.median([min(values)
+            normalize_by = 1.0/stats.median([min([d[0] for d in values])
                                            for _,values in data])
         else:
             normalize_by = 1.0
-        for pos, (point_label, orig_values) in enumerate(data):
+        for pos, (point_label, datapoints) in enumerate(data):
+            # Get the samples.
+            data = [data_date[0] for data_date in datapoints]
+            # And the date on which they were taken.
+            dates = [data_date[1] for data_date in datapoints]
+
             metadata = {"label":point_label}
             # on simple revisions use rev number for x else start from
             # 0
             rev_x = convert_revision(point_label)
             x = rev_x if len(rev_x)==1 else pos
-            values = [v*normalize_by for v in orig_values]
-            min_value = min(values)
+
+            values = [v*normalize_by for v in data]
+            min_index,min_value = min(enumerate(values))
+            metadata["date"] = str(dates[min_index])
             pts.append((x, min_value, metadata))
 
             # Add the individual points, if requested.
             # For each point add a text label for the mouse over.
             if show_all_points:
-                for v in values:
-                    points_data.append((x, v, metadata))
+                for i,v in enumerate(values):
+                    point_metadata = dict(metadata)
+                    point_metadata["date"] = str(dates[i]) 
+                    points_data.append((x, v, point_metadata))
             elif show_points:
                 points_data.append((x, min_value, metadata))
     



Chris Matthews
chris.matthews at apple.com
(408) 783-6335

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130808/56a8f153/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: lnt-graph-dates.patch
Type: application/octet-stream
Size: 3683 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130808/56a8f153/attachment.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130808/56a8f153/attachment-0001.html>


More information about the llvm-commits mailing list