Skip to content
This repository has been archived by the owner on Nov 26, 2022. It is now read-only.

Commit

Permalink
Metric deltas will now update on every request (not just when the met…
Browse files Browse the repository at this point in the history
…ric changes). If the metric is the same, the delta will be 0, which makes it easier to focus on things that are changing.
  • Loading branch information
jstanden committed Mar 22, 2012
1 parent 37d04fe commit db79a4a
Showing 1 changed file with 24 additions and 20 deletions.
44 changes: 24 additions & 20 deletions api/dao/datacenter_sensor.php
Expand Up @@ -100,30 +100,34 @@ static function _processUpdateEvents($objects) {
// Delta
@$metric = $changes[DAO_DatacenterSensor::METRIC];

if(!empty($metric) && in_array($model[DAO_DatacenterSensor::METRIC_TYPE], array('updown','decimal','percent','number'))) {
if(in_array($model[DAO_DatacenterSensor::METRIC_TYPE], array('updown','decimal','percent','number'))) {
$delta = 0;

switch($model[DAO_DatacenterSensor::METRIC_TYPE]) {
case 'updown':
$delta = (0 == strcasecmp($metric['to'],'UP')) ? 1 : -1;
break;
case 'number':
$delta = intval($metric['to']) - intval($metric['from']);
break;
case 'decimal':
$delta = floatval($metric['to']) - floatval($metric['from']);
break;
case 'percent':
$delta = intval($metric['to']) - intval($metric['from']);
break;
if(!empty($metric)) {
switch($model[DAO_DatacenterSensor::METRIC_TYPE]) {
case 'updown':
$delta = (0 == strcasecmp($metric['to'],'UP')) ? 1 : -1;
break;
case 'number':
$delta = intval($metric['to']) - intval($metric['from']);
break;
case 'decimal':
$delta = floatval($metric['to']) - floatval($metric['from']);
break;
case 'percent':
$delta = intval($metric['to']) - intval($metric['from']);
break;
}
}

$sql = sprintf("UPDATE datacenter_sensor SET metric_delta = %s WHERE id = %d",
$db->qstr($delta),
$model[DAO_DatacenterSensor::ID]
);

$db->Execute($sql);
if(isset($model[DAO_DatacenterSensor::METRIC_DELTA])
&& $model[DAO_DatacenterSensor::METRIC_DELTA] != $delta) {
$sql = sprintf("UPDATE datacenter_sensor SET metric_delta = %s WHERE id = %d",
$db->qstr($delta),
$model[DAO_DatacenterSensor::ID]
);
$db->Execute($sql);
}
}

// This can also detect when the status changes OK->PROBLEM or PROBLEM->OK
Expand Down

0 comments on commit db79a4a

Please sign in to comment.