in services/ec2/drivers/ec2_ebs.class.php [90:170]
function __checkLowEBSLowUtilization(){
global $CW;
$verifyDay = 7;
$block = $this->block;
$createTime = $block['CreateTime'];
$createDay = (strtotime('now') - strtotime($createTime)) / (60 * 60 * 24);
if($createDay < $verifyDay){
return;
}
$cwClient = $CW->getClient();
$blockId = $this->block['VolumeId'];
$dimensions = [
[
'Name' => 'VolumeId',
'Value'=> $blockId
]
];
$results = $cwClient->getMetricStatistics([
'Dimensions' => $dimensions,
'Namespace' => 'AWS/EBS',
'MetricName' => 'VolumeReadOps',
'StartTime' => strtotime('-'.$verifyDay.' days'),
'EndTime' => strtotime('now'),
'Period' => 24 * 60 * 60,
'Statistics' => ['Average'],
# 'Unit' => 'None'
]);
$cnt = 0;
$readDatapoints = $results['Datapoints'];
if(sizeof($readDatapoints) < $verifyDay){
$cnt = $verifyDay - sizeof($readDatapoints);
}
foreach($readDatapoints as $data){
if($data['Average'] < 1){
$cnt++;
}
}
if($cnt < $verifyDay){
return;
}
$cnt = 0;
$results = $cwClient->getMetricStatistics([
'Dimensions' => $dimensions,
'Namespace' => 'AWS/EBS',
'MetricName' => 'VolumeWriteOps',
'StartTime' => strtotime('-'.$verifyDay.' days'),
'EndTime' => strtotime('now'),
'Period' => 24 * 60 * 60,
'Statistics' => ['Average'],
# 'Unit' => 'None'
]);
$writeDatapoints = $results['Datapoints'];
if(sizeof($writeDatapoints) < $verifyDay){
$cnt = $verifyDay - sizeof($writeDatapoints);
}
foreach($writeDatapoints as $data){
if($data['Average'] < 1){
$cnt++;
}
}
if($cnt < $verifyDay){
return;
}
$this->results['EBSLowUtilization'] = [-1, ''];
return;
}