Gerenciar o custo da consulta no Amazon Managed Service for Prometheus - Amazon Managed Service for Prometheus

Gerenciar o custo da consulta no Amazon Managed Service for Prometheus

O Amazon Managed Service for Prometheus oferece a capacidade de limitar o custo da consulta fornecendo limites para a quantidade de amostras de consulta processadas (QSP) que podem ser usadas por uma única consulta. Você pode configurar dois tipos de limites para QSP, aviso e erro, para gerenciar e controlar os custos de consulta de modo eficaz.

Quando as consultas atingem o limite de aviso, uma mensagem de aviso aparece na resposta da consulta da API. Para consultas exibidas no Amazon Managed Grafana, o aviso estará visível na IU do Amazon Managed Grafana, ajudando os usuários a identificar consultas caras. As consultas que atingirem o limite de erro não serão cobradas e serão rejeitadas com um erro.

Além do controle de utilização de consultas, o Amazon Managed Service for Prometheus oferece a capacidade de registrar dados de desempenho de consultas no CloudWatch Logs. Esse recurso permite que você analise as consultas em detalhes para otimizar suas consultas do Amazon Managed Service for Prometheus e gerenciar os custos com mais eficiência. O registro em log de consultas captura informações sobre consultas que excedem os limites especificados de amostras de consulta processadas (QSP). Esses dados são então publicados no CloudWatch Logs, permitindo que você investigue e analise o desempenho da consulta. As consultas registradas incluem consultas de API e consultas de regras. Por padrão, o registro em log de consultas está desativado para minimizar o uso desnecessário do CloudWatch Logs. Você pode ativar esse recurso quando necessário para análise de consultas.

Configurar o registro em log de consultas

Você pode configurar o registro em log de consultas no console do Amazon Managed Service for Prometheus ou na CLI AWS chamando a solicitação de API create-query-logging-configuration . Esse corpo da API contém uma lista de destinos, mas, por enquanto, oferecemos suporte apenas ao CloudWatch Logs como destino e os destinos devem conter exatamente um elemento com as configurações do CloudWatch.

Pré-requisitos

Verifique se o logGroup já foi criado. O ID ou o perfil usado para configurar deve ter a política ou as permissões equivalentes a seguir.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:GetLogDelivery", "logs:UpdateLogDelivery", "logs:DeleteLogDelivery", "logs:ListLogDeliveries", "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups", "aps:CreateQueryLoggingConfiguration", "aps:UpdateQueryLoggingConfiguration", "aps:DescribeQueryLoggingConfiguration", "aps:DeleteQueryLoggingConfiguration" ], "Resource": "*" } ] }

Configurar CloudWatch Logs

Você pode configurar o CloudWatch Logs entrando no Amazon Managed Service for Prometheus usando o Console de gerenciamento da AWS ou a AWS CLI.

Como configurar o registro em log de consultas usando o console do Amazon Managed Service for Prometheus
  1. Navegue até a guia Logs no painel de detalhes do seu espaço de trabalho.

  2. Em Insights de consultas, escolha Criar.

  3. Selecione o menu suspenso Grupo de logs e escolha o grupo de logs para publicar seus logs.

    Você também pode criar um novo grupo de logs no console do CloudWatch.

  4. Insira o Limite (QSP).

  5. Escolha Salvar.

Como configurar o registro em log de consultas usando a AWS CLI, use o comando

aws amp create-query-logging-configuration \ --workspace-id my_workspace_ID \ --destinations '[{"cloudWatchLogs":{"logGroupArn":"$my-log-group-arn"},"filters":{"qspThreshold":$qspThreshold}}]'

Para obter informações sobre como atualizar, excluir e descrever operações, consulte Referência da API do Amazon Managed Service for Prometheus.

Configurar limites de controle de utilização de consultas

Para configurar os limites de QSP, você deve fornecer os parâmetros de consulta na API QueryMetrics.

  • max_samples_processed_warning_threshold: define o limite de avisos para amostras de consulta processadas

  • max_samples_processed_error_threshold: define o limite de erros para as amostras de consulta processadas.

Usuários do Amazon Managed Grafana podem usar a configuração da fonte de dados grafana para aplicar limites a todas as consultas da fonte de dados:

  1. Navegue até a configuração da fonte de dados do Amazon Managed Service for Prometheus no Amazon Managed Grafana.

  2. Em Parâmetros de consulta personalizados, adicione os cabeçalhos de limite.

  3. Escolha Salvar.

Conteúdo do log

Para consultas originadas de regras, você verá as seguintes informações sobre a consulta no CloudWatch Logs:

{ workspaceId: "workspace_id", message: { query: "avg(rate(go_goroutines[1m])) > 1", name: "alert_rule", kind: "alerting", group: "test-alert", namespace: "test", samples: "59321", }, component: "ruler" }

Para consultas que se originam de chamadas de API, você verá as seguintes informações sobre a consulta nos CloudWatch Logs:

{ workspaceId: "ws-5e7658c2-7ccf-4c30-9de9-2ab26fa30639", message: { query: "sum by (instance) (go_memstats_alloc_bytes{job=\"node\"})", queryType: "range", start: "1683308700000", end: "1683913500000", step: "300000", samples: "11496", userAgent: "AWSPrometheusDPJavaClient/2.0.436.0 ", dashboardUid: "11234", panelId: "12" }, component: "query-frontend" }

Limitações

Limites de tamanho de políticas: as políticas de recursos do CloudWatch Logs são limitadas a 5.120 caracteres. Quando o CloudWatch Logs detecta que a política está se aproximando do limite de tamanho, ele habilita automaticamente grupos de logs que começam com /aws/vendedlogs/. Quando você ativa o registro em log de consultas, o Amazon Managed Service for Prometheus precisa atualizar a política de recursos do CloudWatch Logs com o grupo de logs que você especificar. Para evitar que o limite de tamanho de políticas de recursos do CloudWatch Logs seja atingido, insira o prefixo /aws/vendedlogs/ nos nomes de grupos de logs do CloudWatch Logs.