2014-12-02 6 views
0

Я использую графит, чтобы получить статистику, и хочу, чтобы рендер определялся для переменной. Графит может выплюнуть значения, используя либо JSON:Как я могу получить значение с другой веб-страницы и сохранить его как переменную?

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

или сырье:

snmp.ssbSubstation.realEnergy.1,1417540860,1417540920,60|4511552439.0

Это все одна линия источника возвращается в зависимости от того, если вы указать либо JSON или сырье. URL-адрес отформатирован как http://<graphite server>/render?target=snmp.ssbSubstation.realEnergy.1&format=raw&from=-1min

В любом случае, я хотел бы взять 4511552439.0 и установить его как значение для датчика и визуализировать его на панели html в grafana. Есть ли простой способ сделать это?

ответ

0

Вы можете сделать это с помощью ajax JSONP. Пожалуйста, ознакомьтесь с приведенным ниже примером (в качестве отправной точки для вашего приложения).

Вы можете найти то же демо-версию, что и 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>