Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Obtenir des statistiques auprès d'Amazon CloudWatch avec AWS SDK for PHP la version 3
Les métriques sont des données sur les performances de vos systèmes. Vous pouvez activer la surveillance détaillée de certaines ressources, telles que vos instances Amazon EC2, ou de vos propres indicateurs d'application.
Les exemples suivants montrent comment :
-
Répertoriez les métriques en utilisant ListMetrics.
-
Récupérez les alarmes d'une métrique à l'aide de DescribeAlarmsForMetric.
-
Obtenez des statistiques pour une métrique spécifiée à l'aide de GetMetricStatistics.
Tous les exemples de code pour le AWS SDK for PHP sont disponibles ici GitHub
Informations d’identification
Avant d'exécuter l'exemple de code, configurez vos AWS informations d'identification, comme décrit dansInformations d'identification. Importez ensuite leAWS SDK for PHP, comme décrit dansUtilisation de base.
Répertorier les métriques
Importations
require 'vendor/autoload.php'; use Aws\CloudWatch\CloudWatchClient; use Aws\Exception\AwsException;
Exemple de code
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();
Récupérer les alarmes pour une métrique
Importations
require 'vendor/autoload.php'; use Aws\CloudWatch\CloudWatchClient; use Aws\Exception\AwsException;
Exemple de code
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();
Obtenir des statistiques de métriques
Importations
require 'vendor/autoload.php'; use Aws\CloudWatch\CloudWatchClient; use Aws\Exception\AwsException;
Exemple de code
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();