Publication de métriques personnalisées dans Amazon CloudWatch avec AWS SDK for PHP la version 3 - AWS SDK for PHP

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.

Publication de métriques personnalisées dans Amazon CloudWatch avec AWS SDK for PHP la version 3

Les métriques sont des données sur les performances de vos systèmes. Une alarme surveille une métrique sur la période que vous spécifiez. Elle réalise une ou plusieurs actions en fonction de la valeur de la métrique, par rapport à un seuil donné sur un certain nombre de périodes.

Les exemples suivants montrent comment :

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.

Publier des données métriques

Importations

require 'vendor/autoload.php'; use Aws\CloudWatch\CloudWatchClient; use Aws\Exception\AwsException;

Exemple de code

function putMetricData( $cloudWatchClient, $cloudWatchRegion, $namespace, $metricData ) { try { $result = $cloudWatchClient->putMetricData([ 'Namespace' => $namespace, 'MetricData' => $metricData ]); if (isset($result['@metadata']['effectiveUri'])) { if ( $result['@metadata']['effectiveUri'] == 'https://monitoring.' . $cloudWatchRegion . '.amazonaws.com' ) { return 'Successfully published datapoint(s).'; } else { return 'Could not publish datapoint(s).'; } } else { return 'Error: Could not publish datapoint(s).'; } } catch (AwsException $e) { return 'Error: ' . $e->getAwsErrorMessage(); } } function putTheMetricData() { $namespace = 'MyNamespace'; $metricData = [ [ 'MetricName' => 'MyMetric', 'Timestamp' => 1589228818, // 11 May 2020, 20:26:58 UTC. 'Dimensions' => [ [ 'Name' => 'MyDimension1', 'Value' => 'MyValue1' ], [ 'Name' => 'MyDimension2', 'Value' => 'MyValue2' ] ], 'Unit' => 'Count', 'Value' => 1 ] ]; $cloudWatchRegion = 'us-east-1'; $cloudWatchClient = new CloudWatchClient([ 'profile' => 'default', 'region' => $cloudWatchRegion, 'version' => '2010-08-01' ]); echo putMetricData( $cloudWatchClient, $cloudWatchRegion, $namespace, $metricData ); } // Uncomment the following line to run this code in an AWS account. // putTheMetricData();

Créer une alarme

Importations

require 'vendor/autoload.php'; use Aws\CloudWatch\CloudWatchClient; use Aws\Exception\AwsException;

Exemple de code

function putMetricAlarm( $cloudWatchClient, $cloudWatchRegion, $alarmName, $namespace, $metricName, $dimensions, $statistic, $period, $comparison, $threshold, $evaluationPeriods ) { try { $result = $cloudWatchClient->putMetricAlarm([ 'AlarmName' => $alarmName, 'Namespace' => $namespace, 'MetricName' => $metricName, 'Dimensions' => $dimensions, 'Statistic' => $statistic, 'Period' => $period, 'ComparisonOperator' => $comparison, 'Threshold' => $threshold, 'EvaluationPeriods' => $evaluationPeriods ]); if (isset($result['@metadata']['effectiveUri'])) { if ( $result['@metadata']['effectiveUri'] == 'https://monitoring.' . $cloudWatchRegion . '.amazonaws.com' ) { return 'Successfully created or updated specified alarm.'; } else { return 'Could not create or update specified alarm.'; } } else { return 'Could not create or update specified alarm.'; } } catch (AwsException $e) { return 'Error: ' . $e->getAwsErrorMessage(); } } function putTheMetricAlarm() { $alarmName = 'my-ec2-resources'; $namespace = 'AWS/Usage'; $metricName = 'ResourceCount'; $dimensions = [ [ 'Name' => 'Type', 'Value' => 'Resource' ], [ 'Name' => 'Resource', 'Value' => 'vCPU' ], [ 'Name' => 'Service', 'Value' => 'EC2' ], [ 'Name' => 'Class', 'Value' => 'Standard/OnDemand' ] ]; $statistic = 'Average'; $period = 300; $comparison = 'GreaterThanThreshold'; $threshold = 1; $evaluationPeriods = 1; $cloudWatchRegion = 'us-east-1'; $cloudWatchClient = new CloudWatchClient([ 'profile' => 'default', 'region' => $cloudWatchRegion, 'version' => '2010-08-01' ]); echo putMetricAlarm( $cloudWatchClient, $cloudWatchRegion, $alarmName, $namespace, $metricName, $dimensions, $statistic, $period, $comparison, $threshold, $evaluationPeriods ); } // Uncomment the following line to run this code in an AWS account. // putTheMetricAlarm();