我正在使用石墨获取统计数据,并希望为变量渲染一个计量器。 Graphite可以使用json:
吐出值 [{"target": "snmp.ssbSubstation.realEnergy.1", "datapoints": [[4511552439.0, 1417540920]]}]
或raw:
snmp.ssbSubstation.realEnergy.1,1417540860,1417540920,60|4511552439.0
根据您是否指定json或raw,返回源的整行。该网址格式为http://<graphite server>/render?target=snmp.ssbSubstation.realEnergy.1&format=raw&from=-1min
无论哪种方式,我都想抓住4511552439.0
并将其设置为指标的值,并在grafana的html面板中渲染。有一种非常简单的方法吗?
答案 0 :(得分:0)
您可以使用JSONP ajax请求执行此操作。请查看下面的示例(作为您应用的起点)。
你也可以找到与jsFiddle here相同的演示。
也许可以更好地完成数据访问。二维访问看起来有点奇怪,但它确实有效。
我使用mocky.io来模拟您的数据。
// data format [{"target": "snmp.ssbSubstation.realEnergy.1", "datapoints": [[4511552439.0, 1417540920]]}]
// http://www.mocky.io/v2/547df7d558eb49190856a759
(function ($) {
var url = 'http://www.mocky.io/v2/547df7d558eb49190856a759'; // mocky.io demo source
var jsonCallback = function (data) {
var gauge = data[0].datapoints[0][0];
console.log(gauge);
$('#data').html(JSON.stringify(data, null, 2));
$("</p>").text('value for gauge ' + gauge).appendTo('#data');
};
$.ajax({
type: 'GET',
url: url,
contentType: "application/json",
dataType: 'jsonp'
}).done(jsonCallback)
.fail(function (xhr) {
alert("error" + xhr.responseText);
});
})(jQuery);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<pre id='data'></pre>
&#13;