【问题标题】:How can I get a value from another webpage and store it as a variable?如何从另一个网页获取值并将其存储为变量?
【发布时间】:2015-01-31 01:11:18
【问题描述】:

我正在使用石墨来获取统计数据,并希望为变量呈现一个 justgage 仪表。 Graphite 可以使用任一 json 吐出值:

[{"target": "snmp.ssbSubstation.realEnergy.1", "datapoints": [[4511552439.0, 1417540920]]}]

或原始:

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 面板中呈现。有没有一种非常简单的方法可以做到这一点?

【问题讨论】:

    标签: javascript graphite justgage grafana


    【解决方案1】:

    您可以使用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);
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <pre id='data'></pre>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多