我正在尝试使用这个JS片段生成图表。我似乎遇到了metrics2的问题。
如果我将metrics2设置为此值,则会在浏览器中呈现图表。
[1]
var metrics2 = [
graphite.metric("servers.<HOSTNAME>-1_domain_local.load.load.shortterm"),
graphite.metric("servers.<HOSTNAME>-2_domain_local.load.load.shortterm"),
graphite.metric("servers.<HOSTNAME>-3_domain_local.load.load.shortterm"),
graphite.metric("servers.<HOSTNAME>-4_domain_local.load.load.shortterm")
]
但是,在以下js代码中,图形不会在我的浏览器中呈现。
[2]
var metrics = [];
graphite.find("servers.*.load.load.shortterm", function(error, results) {
for (var i = 0; i < results.length; i++) {
metrics[i] = results[i];
}
});
var metrics2 = metrics.map(function(i) {
return graphite.metric(i);
});
这是调用metrics2并生成图形的立体主题片段。
d3.select(".span4").call(function(div) {
a = metrics.length;
div.select(".charts2").call(context.axis().orient("top"));
div.select(".charts2").selectAll(".horizon")
.data(metrics2)
.enter().append("div")
.attr("class", "horizon")
.call(context.horizon().height(30));
});
为什么不[2]实际生成图表? metrics2数组有什么东西吗?
答案 0 :(得分:1)
我明白了。这件JS将使必要的事情发生。
graphite.find("servers.???-in-?-*.load.load.shortterm", function(error, results) {
var metrics = results.map(function(i) {
return graphite.metric(i);
});
d3.select(".span4").call(function(div) {
div.select(".charts2").call(context.axis().orient("top"));
div.select(".charts2").selectAll(".horizon")
.data(metrics)
.enter().append("div")
.attr("class", "horizon")
.call(context.horizon().height(30));
});
});