Scalr_Scaling_Sensor::get PHP 메소드

get() 공개 정적인 메소드

Gets metric
public static get ( string $metricAlias ) : Scalr_Scaling_Sensor
$metricAlias string An alias
리턴 Scalr_Scaling_Sensor
    public static function get($metricAlias)
    {
        if (empty(self::$sensors[$metricAlias])) {
            switch ($metricAlias) {
                case "la":
                    self::$sensors[$metricAlias] = new Scalr_Scaling_Sensors_LoadAverage();
                    break;
                case "bw":
                    self::$sensors[$metricAlias] = new Scalr_Scaling_Sensors_BandWidth();
                    break;
                case "custom":
                    self::$sensors[$metricAlias] = new Scalr_Scaling_Sensors_Custom();
                    break;
                case "sqs":
                    self::$sensors[$metricAlias] = new Scalr_Scaling_Sensors_Sqs();
                    break;
                case "http":
                    self::$sensors[$metricAlias] = new Scalr_Scaling_Sensors_Http();
                    break;
                case "ram":
                    self::$sensors[$metricAlias] = new Scalr_Scaling_Sensors_FreeRam();
                    break;
            }
        }
        return isset(self::$sensors[$metricAlias]) ? self::$sensors[$metricAlias] : null;
    }

Usage Example

예제 #1
0
 function getScalingDecision()
 {
     $algo = Scalr_Scaling_Algorithm::get($this->getMetric()->algorithm);
     $sensor = Scalr_Scaling_Sensor::get($this->getMetric()->alias);
     $dbFarmRole = DBFarmRole::LoadByID($this->farmRoleId);
     if ($sensor) {
         try {
             $sensorValue = $sensor->getValue($dbFarmRole, $this);
         } catch (Exception $e) {
             $this->logger->warn(new FarmLogMessage($dbFarmRole->FarmID, sprintf("Unable to read Scaling Metric value: %s", $e->getMessage())));
             return Scalr_Scaling_Decision::NOOP;
         }
         $this->logger->info(sprintf(_("Raw sensor value (id: %s, metric_id: %s, metric name: %s): %s"), $this->id, $this->metricId, $this->getMetric()->name, serialize($sensorValue)));
         switch ($this->getMetric()->calcFunction) {
             default:
                 $value = $sensorValue[0];
                 break;
             case "avg":
                 $value = count($sensorValue) != 0 ? @array_sum($sensorValue) / count($sensorValue) : 0;
                 break;
             case "sum":
                 $value = @array_sum($sensorValue);
                 break;
         }
         $this->lastValue = round($value, 5);
         $this->save();
         $invert = $sensor->isInvert;
     } else {
         $invert = false;
     }
     return $algo->makeDecision($dbFarmRole, $this, $invert);
 }
All Usage Examples Of Scalr_Scaling_Sensor::get
Scalr_Scaling_Sensor