

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Kueri menggunakan Prometheus-kompatibel APIs
<a name="AMP-onboard-query-APIs"></a>

Meskipun menggunakan alat seperti [Amazon Managed Grafana](AMP-amg.md) adalah cara termudah untuk melihat dan menanyakan metrik Anda, Amazon Managed Service for Prometheus juga mendukung beberapa Prometheus yang kompatibel dengan Prometheus yang dapat Anda gunakan untuk menanyakan metrik Anda. APIs Untuk informasi selengkapnya tentang semua yang kompatibel dengan Prometheus APIs yang tersedia, lihat. [Kompatibel dengan Prometheus APIs](AMP-APIReference-Prometheus-Compatible-Apis.md)

Prometheus kompatibel menggunakan APIs bahasa query Prometheus, PromQL, untuk menentukan data yang ingin Anda kembalikan. Untuk detail tentang PromQL dan sintaksnya, lihat Meminta Prometheus di dokumentasi [Prometheus](https://prometheus.io/docs/prometheus/latest/querying/basics/).

Saat Anda menggunakan ini APIs untuk menanyakan metrik Anda, permintaan harus ditandatangani dengan proses penandatanganan Versi AWS Tanda Tangan 4. Anda dapat mengatur [AWS Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) untuk menyederhanakan proses penandatanganan. Untuk informasi selengkapnya, lihat [aws-sigv4-proxy](https://github.com/awslabs/aws-sigv4-proxy).

Penandatanganan melalui proxy AWS SiGv4 dapat dilakukan dengan menggunakan. `awscurl` Topik berikut [Menggunakan awscurl untuk membuat kueri yang kompatibel dengan Prometheus APIs](AMP-compatible-APIs.md) memandu Anda menggunakan untuk menyiapkan SigV4. `awscurl` AWS 

**Topics**
+ [Gunakan awscurl untuk melakukan kueri dengan kompatibel dengan Prometheus APIs](AMP-compatible-APIs.md)

# Gunakan awscurl untuk melakukan kueri dengan kompatibel dengan Prometheus APIs
<a name="AMP-compatible-APIs"></a>

[Permintaan API untuk Amazon Managed Service untuk Prometheus harus ditandatangani dengan SigV4.](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) Anda dapat menggunakan [awscurl](https://github.com/okigan/awscurl) untuk menyederhanakan proses kueri.

Untuk menginstal`awscurl`, Anda harus menginstal manajer paket Python 3 dan pip. 

Pada instance berbasis Linux, perintah berikut diinstal`awscurl`.

```
$ pip3 install awscurl
```

Pada mesin macOS, perintah berikut diinstal. `awscurl`

```
$ brew install awscurl
```

Contoh berikut adalah contoh `awscurl` query. Ganti*Region*, *Workspace-id* dan *QUERY* input dengan nilai yang sesuai untuk kasus penggunaan Anda:

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

**catatan**  
String kueri Anda harus dikodekan url.

Untuk kueri seperti`query=up`, Anda bisa mendapatkan hasil seperti:

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

`awscurl`Untuk menandatangani permintaan yang diberikan, Anda harus melewati kredensyal yang valid dengan salah satu cara berikut:
+ Berikan ID kunci akses dan kunci Rahasia untuk peran IAM. Anda dapat menemukan kunci akses dan kunci rahasia untuk peran dalam [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/). 

  Contoh: 

  ```
  $ 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>"
  ```
+ Referensi file konfigurasi yang disimpan dalam `/aws/config` file `.aws/credentials` dan. Anda juga dapat memilih untuk menentukan nama profil yang akan digunakan. Jika tidak ditentukan, ` default ` file akan digunakan. Contoh:

  ```
  $ 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>"
  ```
+ Gunakan profil instans yang terkait dengan instans EC2.

## Menjalankan permintaan kueri menggunakan wadah awscurl
<a name="awscurl-container"></a>

Saat menginstal versi **Python** yang berbeda dan dependensi terkait tidak layak, wadah dapat digunakan untuk mengemas aplikasi dan dependensinya. `awscurl` Contoh berikut menggunakan runtime **Docker** untuk menerapkan`awscurl`, tetapi runtime dan gambar yang sesuai dengan OCI akan berfungsi.

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