Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mendapatkan metrik dari Amazon CloudWatch dengan AWS SDK for PHP Versi 3
Metrik adalah data tentang performa sistem Anda. Anda dapat mengaktifkan pemantauan terperinci dari beberapa sumber daya, seperti instans Amazon EC2, atau metrik aplikasi Anda sendiri.
Contoh berikut menunjukkan cara:
-
Daftar metrik menggunakan ListMetrics.
-
Ambil alarm untuk menggunakan metrik. DescribeAlarmsForMetric
-
Dapatkan statistik untuk metrik tertentu menggunakan GetMetricStatistics.
Semua kode contoh untuk AWS SDK for PHP tersedia di sini GitHub
Kredensial
Sebelum menjalankan kode contoh, konfigurasikan AWS kredenal Anda, seperti yang dijelaskan dalam. Kredensial Kemudian imporAWS SDK for PHP, seperti yang dijelaskan dalamPenggunaan dasar.
Membuat daftar metrik
Impor
require 'vendor/autoload.php'; use Aws\CloudWatch\CloudWatchClient; use Aws\Exception\AwsException;
Kode Sampel
function listMetrics($cloudWatchClient) { try { $result = $cloudWatchClient->listMetrics(); $message = ''; if (isset($result['@metadata']['effectiveUri'])) { $message .= 'For the effective URI at ' . $result['@metadata']['effectiveUri'] . ":\n\n"; if ( (isset($result['Metrics'])) and (count($result['Metrics']) > 0) ) { $message .= "Metrics found:\n\n"; foreach ($result['Metrics'] as $metric) { $message .= 'For metric ' . $metric['MetricName'] . ' in namespace ' . $metric['Namespace'] . ":\n"; if ( (isset($metric['Dimensions'])) and (count($metric['Dimensions']) > 0) ) { $message .= "Dimensions:\n"; foreach ($metric['Dimensions'] as $dimension) { $message .= 'Name: ' . $dimension['Name'] . ', Value: ' . $dimension['Value'] . "\n"; } $message .= "\n"; } else { $message .= "No dimensions.\n\n"; } } } else { $message .= 'No metrics found.'; } } else { $message .= 'No metrics found.'; } return $message; } catch (AwsException $e) { return 'Error: ' . $e->getAwsErrorMessage(); } } function listTheMetrics() { $cloudWatchClient = new CloudWatchClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-08-01' ]); echo listMetrics($cloudWatchClient); } // Uncomment the following line to run this code in an AWS account. // listTheMetrics();
Ambil alarm untuk metrik
Impor
require 'vendor/autoload.php'; use Aws\CloudWatch\CloudWatchClient; use Aws\Exception\AwsException;
Kode Sampel
function describeAlarmsForMetric( $cloudWatchClient, $metricName, $namespace, $dimensions ) { try { $result = $cloudWatchClient->describeAlarmsForMetric([ 'MetricName' => $metricName, 'Namespace' => $namespace, 'Dimensions' => $dimensions ]); $message = ''; if (isset($result['@metadata']['effectiveUri'])) { $message .= 'At the effective URI of ' . $result['@metadata']['effectiveUri'] . ":\n\n"; if ( (isset($result['MetricAlarms'])) and (count($result['MetricAlarms']) > 0) ) { $message .= 'Matching alarms for ' . $metricName . ":\n\n"; foreach ($result['MetricAlarms'] as $alarm) { $message .= $alarm['AlarmName'] . "\n"; } } else { $message .= 'No matching alarms found for ' . $metricName . '.'; } } else { $message .= 'No matching alarms found for ' . $metricName . '.'; } return $message; } catch (AwsException $e) { return 'Error: ' . $e->getAwsErrorMessage(); } } function describeTheAlarmsForMetric() { $metricName = 'BucketSizeBytes'; $namespace = 'AWS/S3'; $dimensions = [ [ 'Name' => 'StorageType', 'Value' => 'StandardStorage' ], [ 'Name' => 'BucketName', 'Value' => 'my-bucket' ] ]; $cloudWatchClient = new CloudWatchClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-08-01' ]); echo describeAlarmsForMetric( $cloudWatchClient, $metricName, $namespace, $dimensions ); } // Uncomment the following line to run this code in an AWS account. // describeTheAlarmsForMetric();
Ambil statistik metrik
Impor
require 'vendor/autoload.php'; use Aws\CloudWatch\CloudWatchClient; use Aws\Exception\AwsException;
Kode Sampel
function getMetricStatistics( $cloudWatchClient, $namespace, $metricName, $dimensions, $startTime, $endTime, $period, $statistics, $unit ) { try { $result = $cloudWatchClient->getMetricStatistics([ 'Namespace' => $namespace, 'MetricName' => $metricName, 'Dimensions' => $dimensions, 'StartTime' => $startTime, 'EndTime' => $endTime, 'Period' => $period, 'Statistics' => $statistics, 'Unit' => $unit ]); $message = ''; if (isset($result['@metadata']['effectiveUri'])) { $message .= 'For the effective URI at ' . $result['@metadata']['effectiveUri'] . "\n\n"; if ( (isset($result['Datapoints'])) and (count($result['Datapoints']) > 0) ) { $message .= "Datapoints found:\n\n"; foreach ($result['Datapoints'] as $datapoint) { foreach ($datapoint as $key => $value) { $message .= $key . ' = ' . $value . "\n"; } $message .= "\n"; } } else { $message .= 'No datapoints found.'; } } else { $message .= 'No datapoints found.'; } return $message; } catch (AwsException $e) { return 'Error: ' . $e->getAwsErrorMessage(); } } function getTheMetricStatistics() { // Average number of Amazon EC2 vCPUs every 5 minutes within // the past 3 hours. $namespace = 'AWS/Usage'; $metricName = 'ResourceCount'; $dimensions = [ [ 'Name' => 'Service', 'Value' => 'EC2' ], [ 'Name' => 'Resource', 'Value' => 'vCPU' ], [ 'Name' => 'Type', 'Value' => 'Resource' ], [ 'Name' => 'Class', 'Value' => 'Standard/OnDemand' ] ]; $startTime = strtotime('-3 hours'); $endTime = strtotime('now'); $period = 300; // Seconds. (5 minutes = 300 seconds.) $statistics = ['Average']; $unit = 'None'; $cloudWatchClient = new CloudWatchClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-08-01' ]); echo getMetricStatistics( $cloudWatchClient, $namespace, $metricName, $dimensions, $startTime, $endTime, $period, $statistics, $unit ); // Another example: average number of bytes of standard storage in the // specified Amazon S3 bucket each day for the past 3 days. /* $namespace = 'AWS/S3'; $metricName = 'BucketSizeBytes'; $dimensions = [ [ 'Name' => 'StorageType', 'Value'=> 'StandardStorage' ], [ 'Name' => 'BucketName', 'Value' => 'my-bucket' ] ]; $startTime = strtotime('-3 days'); $endTime = strtotime('now'); $period = 86400; // Seconds. (1 day = 86400 seconds.) $statistics = array('Average'); $unit = 'Bytes'; $cloudWatchClient = new CloudWatchClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-08-01' ]); echo getMetricStatistics($cloudWatchClient, $namespace, $metricName, $dimensions, $startTime, $endTime, $period, $statistics, $unit); */ } // Uncomment the following line to run this code in an AWS account. // getTheMetricStatistics();