

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.

# Consulta mediante Prometheus compatible APIs
<a name="AMP-onboard-query-APIs"></a>

Aunque utilizar una herramienta como [Amazon Managed Grafana](AMP-amg.md) es la forma más sencilla de ver y consultar tus métricas, Amazon Managed Service for Prometheus también admite varias compatibles con Prometheus que puedes utilizar para consultar tus métricas APIs . Para obtener más información sobre todos los dispositivos compatibles con Prometheus disponibles, consulte APIs. [Compatible con Prometheus APIs](AMP-APIReference-Prometheus-Compatible-Apis.md)

Los compatibles con Prometheus utilizan APIs el lenguaje de consulta Prometheus, ProMQL, para especificar los datos que desea devolver. Para obtener detalles sobre PromQL y la sintaxis, consulte [Consultas de Prometheus](https://prometheus.io/docs/prometheus/latest/querying/basics/) en la documentación de Prometheus.

Cuando los utilice APIs para consultar sus métricas, las solicitudes deberán firmarse con el proceso de firma de la versión 4 de Signature. AWS Puede configurar la [AWS Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) para simplificar el proceso de firma. Para obtener más información, consulte [aws-sigv4-proxy](https://github.com/awslabs/aws-sigv4-proxy).

La firma a través del proxy AWS SigV4 se puede realizar utilizando`awscurl`. En el siguiente tema [Uso de awscurl para realizar consultas compatibles con Prometheus, se explica cómo APIs](AMP-compatible-APIs.md) configurar SigV4. `awscurl` AWS 

**Topics**
+ [Usa awscurl para realizar consultas con Prometheus compatible APIs](AMP-compatible-APIs.md)

# Usa awscurl para realizar consultas con Prometheus compatible APIs
<a name="AMP-compatible-APIs"></a>

Las solicitudes de API para Amazon Managed Service para Prometheus deben firmarse con [SigV4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). Puede utilizar [awscurl](https://github.com/okigan/awscurl) para simplificar el proceso de consulta.

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 entradas *Workspace-id* y las *QUERY* entradas por los *Region* 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 --region Region \
                  --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/](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/credentials` y `/aws/config`. También puede optar por especificar el nombre del perfil que va a utilizar. Si no se especifica, se utilizará el archivo ` default `. 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
<a name="awscurl-container"></a>

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 \ --region Region --service aps "$AMP_QUERY_ENDPOINT?query=QUERY"
```