【问题标题】:How do I change the step for Cube metrics?如何更改多维数据集指标的步骤?
【发布时间】:2012-10-14 17:01:21
【问题描述】:

我刚刚开始使用 cubism.js

剥离示例代码,我可以显示两个指标.. 一个计算的 (kpi1) -- 随机函数,一个来自 Cube (kpi2)。它在 1e4 的上下文步骤中完美运行,只要我将其更改为 1e3 计算的一个 - 随机 - 在 1 秒的分辨率下显示良好,而来自 Cube 的那个则根本不显示。

这行得通:

var context = cubism.context()
    .serverDelay(0)
    .clientDelay(0)
    .step(1e4)
    .size(960);

这不是:

var context = cubism.context()
    .serverDelay(0)
    .clientDelay(0)
    .step(1e3)
    .size(960);

我做错了什么?

<!DOCTYPE html>
<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><meta charset="utf-8">

<title>Dashboard</title>

</head><body><div id="body">


<div id="kpi1"></div>
<div id="kpi2"></div>


<script src="../d3.v2.js"></script>
<script src="../cubism.v1.js"></script>

<script>function random(name) {
  var value = 0,
      values = [],
      i = 0,
      last;
  return context.metric(function(start, stop, step, callback) {
    start = +start, stop = +stop;
    if (isNaN(last)) last = start;
    while (last < stop) {
      last += step;
      value = Math.max(-10, Math.min(10, value + .8 * Math.random() - .4 + .2 * Math.cos(i += .2)));
      values.push(value);
    }
    callback(null, values = values.slice((start - stop) / step));
  }, name);
}</script>

<script>

var context = cubism.context()
    .serverDelay(0)
    .clientDelay(0)
    .step(1e4)
    .size(960);

var foo = random("foo");
var cube = context.cube();

d3.select("#kpi1").call(function(div) {

   div.selectAll(".horizon")
      .data([foo])
    .enter().append("div")
      .attr("class", "horizon")
      .call(context.horizon());

});

d3.select("#kpi2").call(function(div) {

   div.selectAll(".horizon")
      .data([cube.metric("median(cube_compute(ms))")])
    .enter().append("div")
      .attr("class", "horizon")
      .call(context.horizon());

});

</script>

</body></html>

【问题讨论】:

    标签: cubism.js


    【解决方案1】:

    Cubism.js 支持任何步骤,但 Cube 后端系统仅支持通过以下五个步骤之一从存储中聚合指标:

      1e4 or 10 seconds
      6e4 or 1 minute
      3e5 or 5 minutes
      36e5 or 1 hour
      864e5 or 1 day
    

    如果您要使用介于或低于这些之间的步骤,Cube 将无法利用使用pyramidal reducers 在支持的较低和最低级别进行的预先计算。

    【讨论】:

    • 您知道这提供了哪些性能改进因素吗?
    猜你喜欢
    • 2013-02-01
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 2019-04-12
    • 2020-06-09
    • 2019-04-26
    相关资源
    最近更新 更多