

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 métriques à partir de CloudWatch
<a name="examples-cloudwatch-get-metrics"></a>

## Conditions préalables
<a name="codeExamplePrereq"></a>

Avant de commencer, nous vous recommandons de lire [Commencer à utiliser le AWS SDK pour C\$1\$1](getting-started.md). 

Téléchargez l'exemple de code et créez la solution comme décrit dans[Commencer par des exemples de code](getting-started-code-examples.md). 

Pour exécuter les exemples, le profil utilisateur que votre code utilise pour effectuer les demandes doit disposer des autorisations appropriées AWS (pour le service et l'action). Pour plus d'informations, consultez la section [Fourniture AWS d'informations d'identification](credentials.md).

## Affichage de la liste des métriques
<a name="listing-metrics"></a>

Pour répertorier CloudWatch les métriques, créez une fonction [ListMetricsRequest](https://docs.aws.amazon.com/sdk-for-cpp/latest/api/aws-cpp-sdk-monitoring/html/class_aws_1_1_cloud_watch_1_1_model_1_1_list_metrics_request.html)et appelez CloudWatchClient la `ListMetrics` fonction. Vous pouvez utiliser `ListMetricsRequest` pour filtrer les métriques renvoyées par espace de noms, nom de métrique ou dimension.

**Note**  
Une liste des mesures et des dimensions publiées par les AWS services se trouve dans la [référence Amazon CloudWatch Metrics and Dimensions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CW_Support_For_AWS.html) du guide de CloudWatch l'utilisateur Amazon.

 **Comprend** 

```
#include <aws/core/Aws.h>
#include <aws/monitoring/CloudWatchClient.h>
#include <aws/monitoring/model/ListMetricsRequest.h>
#include <aws/monitoring/model/ListMetricsResult.h>
#include <iomanip>
#include <iostream>
```

 **Code** 

```
        Aws::CloudWatch::CloudWatchClient cw;
        Aws::CloudWatch::Model::ListMetricsRequest request;

        if (argc > 1)
        {
            request.SetMetricName(argv[1]);
        }

        if (argc > 2)
        {
            request.SetNamespace(argv[2]);
        }

        bool done = false;
        bool header = false;
        while (!done)
        {
            auto outcome = cw.ListMetrics(request);
            if (!outcome.IsSuccess())
            {
                std::cout << "Failed to list CloudWatch metrics:" <<
                    outcome.GetError().GetMessage() << std::endl;
                break;
            }

            if (!header)
            {
                std::cout << std::left << std::setw(48) << "MetricName" <<
                    std::setw(32) << "Namespace" << "DimensionNameValuePairs" <<
                    std::endl;
                header = true;
            }

            const auto &metrics = outcome.GetResult().GetMetrics();
            for (const auto &metric : metrics)
            {
                std::cout << std::left << std::setw(48) <<
                    metric.GetMetricName() << std::setw(32) <<
                    metric.GetNamespace();
                const auto &dimensions = metric.GetDimensions();
                for (auto iter = dimensions.cbegin();
                    iter != dimensions.cend(); ++iter)
                {
                    const auto &dimkv = *iter;
                    std::cout << dimkv.GetName() << " = " << dimkv.GetValue();
                    if (iter + 1 != dimensions.cend())
                    {
                        std::cout << ", ";
                    }
                }
                std::cout << std::endl;
            }

            const auto &next_token = outcome.GetResult().GetNextToken();
            request.SetNextToken(next_token);
            done = next_token.empty();
        }
```

Les métriques sont renvoyées dans un [ListMetricsResult](https://docs.aws.amazon.com/sdk-for-cpp/latest/api/aws-cpp-sdk-monitoring/html/class_aws_1_1_cloud_watch_1_1_model_1_1_list_metrics_result.html)en appelant sa `GetMetrics` fonction. Les résultats peuvent être *paginés*. Pour récupérer le lot de résultats suivant, appelez `SetNextToken` l'objet de demande d'origine avec la valeur de retour de la `GetNextToken` fonction de l'`ListMetricsResult`objet et retransmettez l'objet de demande modifié à un autre appel à`ListMetrics`.

Consultez l'[exemple complet](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/cloudwatch/list_metrics.cpp).

## En savoir plus
<a name="more-information"></a>
+  [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/ListMetrics.html)dans le Amazon CloudWatch API Reference.