Init
This commit is contained in:
parent
d7b9c40c07
commit
0e7f26f7e8
63
promPHPWeathermap.php
Normal file
63
promPHPWeathermap.php
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
<?php
|
||||||
|
// Pluggable datasource for PHP Weathermap 0.9
|
||||||
|
// - return a static value
|
||||||
|
|
||||||
|
// TARGET static:10M
|
||||||
|
// TARGET static:2M:256K
|
||||||
|
|
||||||
|
class WeatherMapDataSource_prometheus extends WeatherMapDataSource {
|
||||||
|
|
||||||
|
function Recognise($targetstring)
|
||||||
|
{
|
||||||
|
if( preg_match("/^prometheus:.*$/", $targetstring) )
|
||||||
|
{
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function ReadData($targetstring, &$map, &$item)
|
||||||
|
{
|
||||||
|
$parts = explode(':', $targetstring);
|
||||||
|
$router = $parts[1];
|
||||||
|
$device = $parts[2];
|
||||||
|
|
||||||
|
$query_rx = "irate(node_network_receive_bytes{instance='$router:9100',device='$device'}[5m])";
|
||||||
|
$query_tx = "irate(node_network_transmit_bytes{instance='$router:9100',device='$device'}[5m])";
|
||||||
|
|
||||||
|
$rx_rate = $this->prometheus_query($query_rx) * 8;
|
||||||
|
$tx_rate = $this->prometheus_query($query_tx) * 8;
|
||||||
|
|
||||||
|
return ( array($rx_rate, $tx_rate, 0) );
|
||||||
|
}
|
||||||
|
|
||||||
|
function prometheus_query($query)
|
||||||
|
{
|
||||||
|
$time = time();
|
||||||
|
$query = urlencode($query);
|
||||||
|
$url = "http://localhost:9090/api/v1/query?time=$time&query=$query";
|
||||||
|
$ch = curl_init();
|
||||||
|
curl_setopt($ch, CURLOPT_URL, $url);
|
||||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
|
||||||
|
$content = curl_exec($ch);
|
||||||
|
$data = json_decode($content, true);
|
||||||
|
|
||||||
|
if ($data['status'] != "success")
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($data['data']['resultType'] != "vector")
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $data['data']['result'][0]['value'][1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// vim:ts=4:sw=4:
|
||||||
|
?>
|
Loading…
Reference in a new issue