From e868b2863265530cd85f9b0eef49471d6ac074cd Mon Sep 17 00:00:00 2001 From: Tim Buckley Date: Wed, 5 Aug 2015 17:27:21 -0600 Subject: [PATCH 1/2] Minor formatting fix --- stackviz/static/js/timeline.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stackviz/static/js/timeline.js b/stackviz/static/js/timeline.js index b224ad8..fe9bce9 100644 --- a/stackviz/static/js/timeline.js +++ b/stackviz/static/js/timeline.js @@ -532,9 +532,9 @@ function loadTimeline(path, options) { // eslint-disable-line no-unused-vars data = data.filter(function (d) { return d.duration > 0; }); var nested = d3.nest() - .key(function(d) { return parseWorker(d.tags); }) - .sortKeys(d3.ascending) - .entries(data); + .key(function(d) { return parseWorker(d.tags); }) + .sortKeys(d3.ascending) + .entries(data); // include dstat if available if (options.dstatPath && !options.dstatData) { From 73903ee48ea6c28512715007de58e79d4b8e65c0 Mon Sep 17 00:00:00 2001 From: Tim Buckley Date: Wed, 5 Aug 2015 17:53:16 -0600 Subject: [PATCH 2/2] Add labels to DStat lanes --- stackviz/static/js/timeline.js | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/stackviz/static/js/timeline.js b/stackviz/static/js/timeline.js index fe9bce9..0acb235 100644 --- a/stackviz/static/js/timeline.js +++ b/stackviz/static/js/timeline.js @@ -100,13 +100,15 @@ var getDstatLanes = function(data) { value: function(d) { return d.total_cpu_usage_wai; }, - color: "#e0bcbc" + color: "#e0bcbc", + text: "CPU wait" }, { scale: d3.scale.linear().domain([0, 100]), value: function(d) { return d.total_cpu_usage_usr + d.total_cpu_usage_sys; }, - color: "#668cb2" + color: "#668cb2", + text: "CPU (user+sys)" }]); } @@ -179,10 +181,28 @@ var initTimeline = function(options, data, timeExtents) { dstatLanes.forEach(function(lane, i) { var laneGroup = dstatGroup.append("g"); + var text = laneGroup.append("text") + .attr("y", function(d) { return y3(i + 0.5); }) + .attr("dy", ".5ex") + .attr("text-anchor", "end") + .style("font", "10px sans-serif"); + + var dy = 0; + // precompute some known info for each lane's paths lane.forEach(function(pathDef) { var laneHeight = 0.8 * y3(1); + if ('text' in pathDef) { + text.append("tspan") + .attr("x", -margin.right) + .attr("dy", dy) + .text(pathDef.text) + .attr("fill", function(d) { return pathDef.color; }); + + dy += 10; + } + pathDef.scale.range([laneHeight, 0]); pathDef.area = d3.svg.area() .x(function(d) { return x1(d.system_time); })