Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Use awscurl para realizar consultas con las API Prometheus-compatible
Las solicitudes de API para Amazon Managed Service para Prometheus deben firmarse con SigV4. Puede utilizar awscurl
Para instalar awscurl, debe tener instalado Python 3 y el administrador de paquetes pip.
En una instancia basada en Linux, el siguiente comando instala awscurl.
$pip3 install awscurl
En una máquina macOS, el siguiente comando instala awscurl.
$brew install awscurl
El siguiente ejemplo es una consulta awscurl de muestra. Sustituya las Region QUERY entradas Workspace-id y las entradas por los valores adecuados para su caso de uso:
# 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 --regionRegion\ --service aps "${AMP_QUERY_ENDPOINT}" -d 'query=QUERY' --header 'Content-Type: application/x-www-form-urlencoded'
nota
La cadena de consulta debe estar codificada en URL.
En el caso de una consulta como query=up, podría obtener resultados como los siguientes:
{ "status": "success", "data": { "resultType": "vector", "result": [ { "metric": { "__name__": "up", "instance": "localhost:9090", "job": "prometheus", "monitor": "monitor" }, "value": [ 1652452637.636, "1" ] }, ] } }
Para que awscurl pueda firmar las solicitudes proporcionadas, tendrá que pasar las credenciales válidas de una de las siguientes maneras:
-
Proporcione el ID de clave de acceso y la clave secreta del rol de IAM. Puede encontrar la clave de acceso y la clave secreta del rol en https://console.aws.amazon.com/iam/
. Por ejemplo:
$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>"
-
Consulte los archivos de configuración almacenados en los archivos
.aws/credentialsy/aws/config. También puede optar por especificar el nombre del perfil que va a utilizar. Si no se especifica, se utilizará el archivodefault. Por ejemplo:$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>" -
Use el perfil de instancia asociado a la instancia de EC2.
Ejecución de solicitudes de consulta mediante el contenedor awscurl
Si no es posible instalar una versión diferente de Python y de las dependencias asociadas, puede utilizarse un contenedor para empaquetar la aplicación awscurl y sus dependencias. En el siguiente ejemplo, se utiliza un tiempo de ejecución de Docker para implementar awscurl, pero cualquier tiempo de ejecución e imagen compatibles con OCI funcionará.
$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 \ --regionRegion--service aps "$AMP_QUERY_ENDPOINT?query=QUERY"