Utilisez awscurl pour effectuer une requête compatible avec Prometheus APIs - Amazon Managed Service for Prometheus

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.

Utilisez awscurl pour effectuer une requête compatible avec Prometheus APIs

Les demandes d’API pour Amazon Managed Service for Prometheus doivent être signées avec SigV4. Vous pouvez utiliser 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 commequery=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/.

    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' EC2 instance.

Exécution de demandes de requête à l’aide du conteneur awscurl

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"