使用cubism.js的其他数据源

时间:2012-05-10 00:35:45

标签: json d3.js cubism.js

我喜欢立体主义的用户体验,并希望在我们拥有的后端之上使用它。

我已经阅读了API文档和一些代码,其中大部分内容似乎已被删除。我怎样才能开始准确使用其他数据源?

我有一个大约6k台个人机器的数据存储,精度为5分钟,大约100个左右的统计数据。

我想查询一些具有该机器特定标识符的Web应用程序,然后通过查询特定的mongo数据存储来呈现类似于立体主义的仪表板。

将webapp或查询写入mongo不是问题。

这个问题更符合这样一个事实,即立体主义似乎需要查询您用于每个单独数据点的任何数据存储(假设您在一周的窗口中有100个统计数据......昂贵)。

我是否有另一种方法可以利用此工具查看使用类似下面代码加载的数据?

var data = [];
d3.json("/initial", function(json) { data.concat(json); });
d3.json("/update", function(json) { data.push(json); });

1 个答案:

答案 0 :(得分:19)

Cubism负责初始化和更新:初始请求是完整的可见窗口(开始停止,通常是1,440个数据点),而后续请求仅针对一些最新的度量标准(7个数据点)。 / p>

查看context.metric有关如何实施新数据源的信息。最简单的实现是这样的:

var foo = context.metric(function(start, stop, step, callback) {
  d3.json("/data", function(data) {
    if (!data) return callback(new Error("unable to load data"));
    callback(null, data);
  });
});

你会扩展它来改变" / data"适当的URL,传递开始,停止和步骤时间,以及您要用于识别指标的任何其他内容。例如,Cube和Graphite都使用度量表达式作为附加查询参数。