Verwenden Sie awscurl für Abfragen mit Prometheus-Compatible APIs - Amazon Managed Service für Prometheus

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden Sie awscurl für Abfragen mit Prometheus-Compatible APIs

APIAnfragen für Amazon Managed Service for Prometheus müssen mit SigV4 signiert werden. Sie können awscurl verwenden, um den Abfrageprozess zu vereinfachen.

Für die Installation von awscurl müssen Python 3 und der Pip-Package-Manager installiert sein.

Auf einer Linux-basierten Instance installiert der folgende Befehl awscurl.

$ pip3 install awscurl

Auf einem macOS-Computer installiert der folgende Befehl awscurl.

$ brew install awscurl

Das folgende Beispiel ist eine Beispielabfrage. awscurl Ersetzen Sie die Region, Workspace-id and QUERY Eingaben durch entsprechende Werte für Ihren Anwendungsfall:

# 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'
Anmerkung

Ihre Abfragezeichenfolge muss URL-codiert sein.

Für eine Abfrage wie query=up könnten Sie Ergebnisse erhalten wie:

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

Um die bereitgestellten Anfragen für awscurl zu signieren, müssen Sie die gültigen Anmeldeinformationen auf eine der folgenden Arten weitergeben:

  • Geben Sie die Zugriffsschlüssel-ID und den geheimen Schlüssel für die IAM Rolle an. Den Zugriffsschlüssel und den geheimen Schlüssel für die Rolle finden Sie in der https://console.aws.amazon.com/iam/.

    Beispielsweise:

    $ 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>"
  • Verweisen Sie auf die Konfigurationsdateien, die in der .aws/credentialsund /aws/config Datei gespeichert sind. Sie können auch den Namen des zu verwendenden Profils angeben. Falls nicht angegeben, wird die default Datei verwendet. Beispielsweise:

    $ 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>"
  • Verwenden Sie das der Instanz zugeordnete EC2 Instanzprofil.

Ausführen von Abfrageanforderungen mithilfe des awscurl-Containers

Wenn die Installation einer anderen Version von Python und der zugehörigen Abhängigkeiten nicht möglich ist, kann ein Container verwendet werden, um die awscurl Anwendung und ihre Abhängigkeiten zu packen. Im folgenden Beispiel wird für die Bereitstellung eine Docker-Laufzeit verwendetawscurl, aber jede OCI konforme Laufzeit und jedes Image funktionieren.

$ 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"