2017-01-24 84 views
0

如何根據使用PHP SDK的實例ID獲取EC2實例的NetworkIn和NetworkOut的實例帶寬使用情況。通過實例ID獲取EC2帶寬使用情況

到目前爲止,我是什麼...

<?php 
require_once("../aws/Sdk.php"); 

use Aws\CloudWatch\CloudWatchClient; 

$client = CloudWatchClient::factory(array(
    'profile' => 'default', 
    'region' => 'ap-southeast-2' 
)); 

$dimensions = array(
    array('Name' => 'Prefix', 'Value' => ""), 
); 

$result = $client->getMetricStatistics(array(
    'Namespace' => 'AWSSDKPHP', 
    'MetricName' => 'NetworkIn', 
    'Dimensions' => $dimensions, 
    'StartTime' => strtotime('-1 hour'), 
    'EndTime' => strtotime('now'), 
    'Period'  => 3000, 
    'Statistics' => array('Maximum', 'Minimum'), 
)); 

我有一個PHP cron作業運行每隔一小時,我需要能夠獲得的帶寬進出特定EC2實例記錄一個內部數據庫。

上面我已經能夠從SDK文檔拼湊起來,但從這裏我有點難住。

我相信我需要的是cloudwatch,所以寧可通過它來完成。我知道我可以在每臺服務器上安裝一個小程序,將帶寬使用情況報告給服務器上的一個文件,然後我將SFTP下載到我們的數據庫中,但寧可在實例本身的任何設置之外完成,以便實例管理員不會導致帶寬報告問題。

回答

0

設法得到它的工作...

<?php 
require '../../aws.phar'; 
use Aws\CloudWatch\CloudWatchClient; 

$cw = CloudWatchClient::factory(array(
    'key' => 'your-key-here', 
    'secret' => 'your-secret-here', 
    'region' => 'your-region-here', 
    'version' => 'latest' 
)); 

$metrics = $cw->listMetrics(array('Namespace' => 'AWS/EC2')); 

//print_r($metrics); 

$statsyo = $cw->getMetricStatistics(array(
    'Namespace'  => 'AWS/EC2', 
    'MetricName' => 'NetworkIn', 
    'Dimensions' => array(array('Name' => 'InstanceId', 'Value' => 'your-instance-id-here')), 
    'StartTime'  => strtotime("2017-01-23 00:00:00"), 
    'EndTime'  => strtotime("2017-01-23 23:59:59"), 
    'Period'  => 86400, 
    'Statistics' => array('Average'), 
    'Unit'   => 'Bytes' 
)); 

echo($statsyo); 
0

如果你想計算您的帶寬收取方式AWS會,更好,更確鑿的方式是使用VPC流量日誌相同。您可以將您的ENI訂閱到VPC流日誌(應該很便宜,它們只收取CloudWatch Logs成本,流日誌是免費的),然後使用AWS SDK從CloudWatch中用GetLogEvents提取,然後總計字節總數。

+0

是不是意味着CloudWatch NetworkIn和NetworkOut統計信息不準確? –

+0

CloudWatch NetworkIn和NetworkOut將包含一些未收費或計費的數據傳輸類別。它曾用於在此頁面上描述,但現在我無法在其中找到它:https://aws.amazon.com/ec2/pricing/on-demand/在「數據傳輸」下。像Windows許可,DNS等類別不應該對您從CloudWatch提取的數據傳輸號碼產生巨大影響 –

相關問題