如何根據使用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下載到我們的數據庫中,但寧可在實例本身的任何設置之外完成,以便實例管理員不會導致帶寬報告問題。
是不是意味着CloudWatch NetworkIn和NetworkOut統計信息不準確? –
CloudWatch NetworkIn和NetworkOut將包含一些未收費或計費的數據傳輸類別。它曾用於在此頁面上描述,但現在我無法在其中找到它:https://aws.amazon.com/ec2/pricing/on-demand/在「數據傳輸」下。像Windows許可,DNS等類別不應該對您從CloudWatch提取的數據傳輸號碼產生巨大影響 –