我喜欢立体主义的用户体验,并希望在我们拥有的后端之上使用它。
我已经阅读了 API 文档和一些代码,其中大部分似乎都被提取了。我怎样才能开始准确地使用其他数据源?
我有大约 6k 台机器的数据存储,在大约 100 个左右的统计数据上具有 5 分钟的精度。
我想用该机器的特定标识符查询一些 Web 应用程序,然后通过查询特定的 mongo 数据存储来呈现类似于立体主义的仪表板。
编写 webapp 或查询 mongo 不是问题。
这个问题更符合立体主义似乎需要查询您为每个单独的数据点使用的任何数据存储的事实(例如,您在一周的窗口中拥有 100 个统计数据……昂贵)。
有没有另一种方法可以利用这个工具来查看使用类似于下面的代码加载的数据?
var data = [];
d3.json("/initial", function(json) { data.concat(json); });
d3.json("/update", function(json) { data.push(json); });
最佳答案
Cubism 会为您处理初始化和更新:初始请求是完整的可见窗口(开始到停止,通常为 1,440 个数据点),而后续请求仅针对一些最近的指标(7 个数据点)。
看看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 都使用度量表达式作为附加查询参数。
关于json - 为 cubism.js 使用其他数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10526058/