Esempio n. 1
0
        /**
	 * Creates all Check related URLs for the site
	 * 
	 * @param  string $type  The type of URL to make: 'list', 'add', 'edit', 'delete'
	 * @param  Meetup $obj   The Check object for the edit and delete URL types
	 * @return string  The URL requested
	 */
	static public function getResultValue($data,$obj=NULL)
	{
          $value = false;
          if ($obj->getBaseline() == 'average') {
            $value = subarray_average($data[0]->datapoints);
          } elseif ($obj->getBaseline() == 'median') {
            $value = subarray_median($data[0]->datapoints);
          } 
         
     return $value;
        }        
Esempio n. 2
0
 /**
  * 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(""", "\"", $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;
     }
 }
Esempio n. 3
0
function generate_comparison_value($data, $alert_config){
  if ($alert_config->baseline == 'average') {
    $compare_value = subarray_average($data[0]->datapoints);
  } elseif ($alert_config->baseline == 'median') {
    //print_r($data[0]->datapoints);
    $compare_value = subarray_median($data[0]->datapoints);
  }
 return $compare_value;
}