Use awscurl para consultar com compatibilidade com Prometheus APIs - Amazon Managed Service para Prometheus

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Use awscurl para consultar com compatibilidade com Prometheus APIs

APIas solicitações do Amazon Managed Service for Prometheus devem ser assinadas com o SigV4. Você pode usar o awscurl para simplificar o processo de consulta.

Para instalar o awscurl, você precisa ter o Python 3 e o gerenciador de pacotes pip instalados.

Em uma instância baseada no Linux, o comando a seguir instala oawscurl.

$ pip3 install awscurl

Em um computador macOS, o comando a seguir instala o awscurl.

$ brew install awscurl

O exemplo a seguir é um exemplo de awscurl consulta. Substitua o Region, Workspace-id e QUERY entradas com valores apropriados para seu 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

Sua sequência de caracteres de consulta deve ser codificada em URL.

Para uma consulta comoquery=up, você pode obter resultados como:

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

Para que o awscurl assine as solicitações fornecidas, você precisará passar as credenciais válidas de uma das seguintes formas:

  • Forneça o ID da chave de acesso e a chave secreta da IAM função. Você pode encontrar a chave de acesso e a chave secreta para a função no https://console.aws.amazon.com/iam/.

    Por exemplo:

    $ 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>"
  • Faça referência aos arquivos de configuração armazenados no .aws/credentials e no arquivo /aws/config. Você também pode optar por especificar o nome do perfil a ser utilizado. Se não for especificado, o arquivo default será utilizado. Por exemplo:

    $ 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 o perfil da instância associado à EC2 instância.

Como executar solicitações de consulta usando o contêiner awscurl

Quando a instalação de uma versão diferente do Python e das dependências associadas não for viável, um contêiner pode ser usado para empacotar a aplicação awscurl e suas dependências. O exemplo a seguir usa um tempo de execução do Docker para implantarawscurl, mas qualquer tempo de execução e imagem OCI compatíveis funcionarão.

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