

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.

# Requête utilisant Prometheus-compatible APIs
<a name="AMP-onboard-query-APIs"></a>

Bien que l'utilisation d'un outil tel qu'[Amazon Managed Grafana](AMP-amg.md) soit le moyen le plus simple de consulter et d'interroger vos statistiques, Amazon Managed Service for Prometheus prend également en charge plusieurs versions compatibles avec Prometheus que vous pouvez utiliser pour interroger vos statistiques. APIs Pour plus d'informations sur tous les modèles compatibles avec Prometheus disponibles, consultez. APIs [Compatible avec Prometheus APIs](AMP-APIReference-Prometheus-Compatible-Apis.md)

Les fichiers compatibles avec Prometheus utilisent APIs le langage de requête Prometheus, ProMQL, pour spécifier les données que vous souhaitez renvoyer. Pour plus de détails sur ProMQL et sa syntaxe, consultez la section [Querying Prometheus dans la documentation de Prometheus](https://prometheus.io/docs/prometheus/latest/querying/basics/).

Lorsque vous les utilisez APIs pour interroger vos indicateurs, les demandes doivent être signées selon le processus de AWS signature Signature Version 4. Vous pouvez configurer [AWS Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) pour simplifier le processus de signature. Pour plus d’informations, consultez [aws-sigv4-proxy](https://github.com/awslabs/aws-sigv4-proxy).

La signature via le proxy AWS SigV4 peut être effectuée à l'aide `awscurl` de. La rubrique suivante [Utiliser awscurl pour effectuer une requête compatible avec Prometheus vous explique comment configurer APIs SigV4](AMP-compatible-APIs.md). `awscurl` AWS 

**Topics**
+ [Utilisez awscurl pour effectuer une requête compatible avec Prometheus APIs](AMP-compatible-APIs.md)

# Utilisez awscurl pour effectuer une requête compatible avec Prometheus APIs
<a name="AMP-compatible-APIs"></a>

Les demandes d’API pour Amazon Managed Service for Prometheus doivent être signées avec [SigV4.](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) Vous pouvez utiliser [awscurl](https://github.com/okigan/awscurl) pour simplifier le processus d’interrogation.

Pour installer `awscurl`, Python 3 et le gestionnaire de package PIP doivent être installés. 

Sur une instance Linux, la commande suivante installe `awscurl`.

```
$ pip3 install awscurl
```

Sur un ordinateur macOS, la commande suivante installe `awscurl`.

```
$ brew install awscurl
```

L'exemple suivant est un exemple de `awscurl` requête. Remplacez *Region* les *QUERY* entrées *Workspace-id* et par les valeurs appropriées à votre cas d'utilisation :

```
# Define the Prometheus query endpoint URL. This can be found in the Amazon Managed Service for Prometheus console page 
# under the respective workspace. 

$ export AMP_QUERY_ENDPOINT=https://aps-workspaces.Region.amazonaws.com/workspaces/Workspace-id/api/v1/query

# credentials are infered from the default profile
$ awscurl -X POST --region Region \
                  --service aps "${AMP_QUERY_ENDPOINT}" -d 'query=QUERY'  --header 'Content-Type: application/x-www-form-urlencoded'
```

**Note**  
Votre chaîne de requête doit être codée en URL.

Pour une requête comme`query=up`, vous pouvez obtenir des résultats tels que :

```
{
  "status": "success",
  "data": {
    "resultType": "vector",
    "result": [
      {
        "metric": {
          "__name__": "up",
          "instance": "localhost:9090",
          "job": "prometheus",
          "monitor": "monitor"
        },
        "value": [
          1652452637.636,
          "1"
        ]
      },
    ]
  }
}
```

Pour qu’`awscurl` signe les requêtes fournies, vous devez transmettre les informations d’identification valides de l’une des manières suivantes :
+ Fournissez l’ID de clé d’accès et la clé secrète du rôle IAM. Vous trouverez la clé d'accès et la clé secrète du rôle dans le [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/). 

  Par exemple : 

  ```
  $ export AMP_QUERY_ENDPOINT=https://aps-workspaces.Region.amazonaws.com/workspaces/Workspace_id/api/v1/query
  
  $ awscurl -X POST --region <Region> \
                    --access_key <ACCESS_KEY> \
                    --secret_key <SECRET_KEY> \
                    --service aps "$AMP_QUERY_ENDPOINT?query=<QUERY>"
  ```
+ Référencez les fichiers de configuration stockés dans `.aws/credentials` et le fichier `/aws/config`. Vous pouvez également choisir de spécifier le nom du profil à utiliser. S’il n’est pas spécifié, le fichier ` default ` sera utilisé. Par exemple :

  ```
  $ export AMP_QUERY_ENDPOINT=https://aps-workspaces.<Region>.amazonaws.com/workspaces/<Workspace_ID>/api/v1/query
  $ awscurl -X POST --region <Region> \
                    --profile <PROFILE_NAME> 
                    --service aps "$AMP_QUERY_ENDPOINT?query=<QUERY>"
  ```
+ Utilisez le profil d’instance associé à l’instance EC2.

## Exécution de demandes de requête à l’aide du conteneur awscurl
<a name="awscurl-container"></a>

Lorsqu’il n’est pas possible d’installer une version différente de **Python** et les dépendances associées, un conteneur peut être utilisé pour empaqueter l’application `awscurl` et ses dépendances. L’exemple suivant utilise un environnement d’exécution **Docker** pour le déploiement d’`awscurl`, mais tout environnement d’exécution et image conformes à l’OCI fonctionneront.

```
$ docker pull okigan/awscurl
$ export AMP_QUERY_ENDPOINT=https://aps-workspaces.Region.amazonaws.com/workspaces/Workspace_id/api/v1/query
$ docker run --rm -it okigan/awscurl --access_key $AWS_ACCESS_KEY_ID  --secret_key $AWS_SECRET_ACCESS_KEY \ --region Region --service aps "$AMP_QUERY_ENDPOINT?query=QUERY"
```