如何从其他网页获取值并将其存储为变量?

时间:2014-12-02 17:25:53

标签: javascript graphite justgage grafana

我正在使用石墨获取统计数据,并希望为变量渲染一个计量器。 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面板中渲染。有一种非常简单的方法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用JSONP ajax请求执行此操作。请查看下面的示例(作为您应用的起点)。

你也可以找到与jsFiddle here相同的演示。

也许可以更好地完成数据访问。二维访问看起来有点奇怪,但它确实有效。

我使用mocky.io来模拟您的数据。

&#13;
&#13;
// 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;
&#13;
&#13;