6

私は cubism.js を使い始めたばかりです

サンプル コードを削除すると、2 つのメトリクスを表示できます。1e3 に変更するとすぐに、1e4 のコンテキスト ステップで完全に機能します。計算されたもの (ランダム) は 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>
4

1 に答える 1

4

Cubism.js はすべてのステップをサポートしますが、Cube バックエンド システムは、次の 5 つのステップのいずれかでストレージからのメトリクス集計のみをサポートします。

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

これらの間またはそれ以下のステップを使用する場合、Cube は、ピラミッド型レデューサーを使用して、サポートされているより低いレベルおよび最も低いレベルで行われた事前計算を利用できません。

于 2013-03-26T17:57:30.313 に答える