コード例 #1
0
<?php

include dirname(__FILE__) . '/../inc/init.php';
fAuthorization::requireLoggedIn();
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
$debug = fRequest::get('debug', 'boolean');
if (!$debug) {
    header('Content-type: application/json');
}
$check_id = fRequest::get('check_id', 'integer');
$check = new Check($check_id);
$url = GRAPHITE_URL . '/graphlot/rawdata?&from=-24hour&until=-0hour' . '&target=' . $check->prepareTarget() . '&target=keepLastValue(threshold(' . $check->prepareWarn() . '))';
//       '&target=threshold(' . $check->prepareError() . ')';
$contents = file_get_contents($url);
//$contents = file_get_contents(GRAPHITE_URL . '/graphlot/rawdata?&from=-24hour&until=-0hour&target=' . $check->prepareTarget() . '&target=' . $check->prepareWarn() . '&target=' . $check->prepareError());
print $contents;
コード例 #2
0
ファイル: Check.php プロジェクト: nagyist/Tattle
 /**
  * Requests Graphite Data for check
  *
  * @param  Check $obj   The Check object to get the graphite data for
  * @return array either a Graphite json_data array or an empty one
  */
 public static function getData($obj = NULL)
 {
     if ($obj->getType() == 'threshold') {
         if ($GLOBALS['PRIMARY_SOURCE'] == "GANGLIA") {
             $check_url = $GLOBALS['GANGLIA_URL'] . '/graph.php/?' . 'target=' . $obj->prepareTarget() . '&cs=-' . $obj->prepareSample() . 'minutes' . '&ce=now&format=json';
         } else {
             $target = Check::constructTarget($obj);
             $target = str_replace("&quot;", "\"", $target);
             $target = urlencode($target);
             $check_url = $GLOBALS['PROCESSOR_GRAPHITE_URL'];
             if ($check_url == "") {
                 $check_url = $GLOBALS['GRAPHITE_URL'];
             }
             $check_url = "{$check_url}/render/?target={$target}&format=json";
             if ($GLOBALS['ALERTS_TIME_OFFSET'] > 0) {
                 $check_url .= "&from=-" . ($obj->getSample() + $GLOBALS['ALERTS_TIME_OFFSET']) . "minutes" . "&until=-" . $GLOBALS['ALERTS_TIME_OFFSET'] . "minutes";
             } else {
                 $check_url .= '&from=-' . $obj->prepareSample() . 'minutes';
             }
         }
         $json_data = @file_get_contents($check_url);
         if ($json_data) {
             $data = json_decode($json_data);
             if (count($data) <= 0) {
                 fCore::debug("bad json data for {$check_url}\n", FALSE);
                 fCore::debug("Json: {$json_data}\n");
             }
         } else {
             fCore::debug("no data for {$check_url}\n", FALSE);
             $data = array();
         }
         return $data;
     } elseif ($obj->getType() == 'predictive') {
         $data = array();
         for ($i = $obj->getNumberOfRegressions(); $i >= 0; $i--) {
             $regression_size = 0;
             if ($obj->getRegressionType() == 'daily') {
                 $regression_size = self::MINUTES_PER_DAY * $i;
             } elseif ($obj->getRegressionType() == 'weekly') {
                 $regression_size = self::MINUTES_PER_WEEK * $i;
             } elseif ($obj->getRegressionType() == 'monthly') {
                 $regression_size = self::MINUTES_PER_MONTH * $i;
             }
             $from = $regression_size + $obj->getSample();
             $until = $regression_size;
             $check_url = $GLOBALS['PROCESSOR_GRAPHITE_URL'] . '/render/?' . 'target=' . $obj->prepareTarget() . '&from=-' . $from . 'minutes' . '&until=-' . $until . 'minutes' . '&format=json';
             $json_data = @file_get_contents($check_url);
             if ($json_data) {
                 $temp_data = json_decode($json_data);
                 $value = 0;
                 if ($obj->getBaseline() == 'average') {
                     $value = subarray_average($temp_data[0]->datapoints);
                 } elseif ($obj->getBaseline() == 'median') {
                     $value = subarray_median($temp_data[0]->datapoints);
                 }
                 array_push($data, $value);
                 //$temp_data = $temp_data[0]->datapoints;
                 //fCore::debug("Iteration: " . $i,FALSE);
                 //for($j=0; $j < count($temp_data); $j++) {
                 //  if($temp_data[$j][0] != 0) {
                 //    fCore::debug($temp_data[$j][0],FALSE);
                 //  }
                 //}
                 //fCore::debug("\n",FALSE);
                 //$data = array_merge($data, $temp_data);
             }
         }
         return $data;
     }
 }
コード例 #3
0
$tmpl->place('header');

 try {
        $check = new Check($check_id);
	$affected = fMessaging::retrieve('affected', fURL::get());
  } catch (fEmptySetException $e) {
?>
        <p class="info">There are currently no Tattle checks. <a href="<?php echo Check::makeURL('add') ?>">Add one now</a></p>
        <?php

  }
	?>

<fieldset>
        <span>Name : <?php echo $check->prepareName(); ?></span> | 
        <span>Target : <?php echo $check->prepareTarget(); ?></span>
        <div class="graphite">
                <div id="canvas" style="padding:1px">
                    <div id="graphcontainer" style="float:left;">
                        <div id="graph" style="width:600px;height:300px"></div>
                        <div id="overview" style="width:600px;height:66px"></div>
                    </div>
                     <p style="clear:left">&nbsp</p>

                      <div class="metricrow" style="display:none">
                         <span id="target" class="metricName"><?php echo $check->prepareTarget();?></span>.
                         <span id="error_threshold"><?php echo $check->prepareError();?></span>
                         <span id="warn_threshold"><?php echo $check->prepareWarn();?></span>
                         <span id="check_id"><?php echo $check->prepareCheckId();?></span> 
                      </div>
コード例 #4
0
ファイル: Check.php プロジェクト: nleskiw/Graphite-Tattle
        /**
	 * Requests Graphite Data for check
	 * 
	 * @param  Check $obj   The Check object to get the graphite data for
	 * @return array either a Graphite json_data array or an empty one  
	 */
	static public function getData($obj=NULL)
	{
          if ( $GLOBALS['PRIMARY_SOURCE'] == "GANGLIA" ) {
            $check_url = $GLOBALS['GANGLIA_URL'] . '/graph.php/?' .
                        'target=' . $obj->prepareTarget() . 
                        '&cs='. $obj->prepareSample() . 
                        '&ce=now&format=json';
          } else {
            $check_url = $GLOBALS['GRAPHITE_URL'] . '/render/?' .
                        'target=' . $obj->prepareTarget() . 
                        '&from='. $obj->prepareSample() . 
                        '&format=json';
          }
          $json_data = @file_get_contents($check_url);
          if ($json_data) {
            $data = json_decode($json_data);
          } else {
            $data = array();
          }
      return $data;
	}   
コード例 #5
0
ファイル: Check.php プロジェクト: rberger/Graphite-Tattle
        /**
	 * Requests Graphite Data for check
	 * 
	 * @param  Check $obj   The Check object to get the graphite data for
	 * @return array either a Graphite json_data array or an empty one  
	 */
	static public function getData($obj=NULL)
	{
          $check_url = GRAPHITE_URL . '/render/?target=' . $obj->prepareTarget() . '&from='. $obj->prepareSample() . '&format=json';
          $json_data = @file_get_contents($check_url);
          if ($json_data) {
            $data = json_decode($json_data);
          } else {
            $data = array();
          }
      return $data;
	}   
コード例 #6
0
ファイル: get_rawdata.php プロジェクト: nagyist/Tattle
<?php

include '../inc/init.php';
fAuthorization::requireLoggedIn();
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
$debug = fRequest::get('debug', 'boolean');
if (!$debug) {
    header('Content-type: application/json');
}
$check_id = fRequest::get('check_id', 'integer');
$check = new Check($check_id);
if ($GLOBALS['PRIMARY_SOURCE'] == "GANGLIA") {
    $parts = explode("_|_", $check->prepareTarget());
    $url = $GLOBALS['GANGLIA_URL'] . "/graph.php?graphlot=1&cs=-1day&ce=now&c=" . $parts[0] . "&h=" . $parts[1] . "&m=" . $parts[2];
} else {
    $url = $GLOBALS['GRAPHITE_URL'] . '/graphlot/rawdata?&from=-24hour&until=-0hour' . '&target=' . $check->prepareTarget() . '&target=keepLastValue(threshold(' . $check->prepareWarn() . '))';
}
$contents = file_get_contents($url);
print $contents;