Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Import the generated Prometheus rule to activate SLOs

Última atualização: Jun 28, 2026

Ao configurar objetivos de nível de serviço (SLOs) para uma aplicação no Service Mesh (ASM), o sistema gera automaticamente uma regra do Prometheus. Essa regra define regras de gravação para métricas de SLO e regras de alerta para taxas de consumo do budget de erro. Para ativar esses SLOs, importe a regra gerada para o seu sistema Prometheus.

O procedimento a seguir aborda a importação da regra para uma instância gerenciada pelo Prometheus Operator e a verificação do funcionamento correto das métricas e dos alertas de SLO.

Pré-requisitos

Antes de começar, verifique se você tem:

Como o Prometheus Operator seleciona regras

O Prometheus Operator utiliza definições de recursos personalizados (CRDs) para gerenciar configurações do Prometheus. Para adicionar regras de gravação e de alerta, crie um recurso personalizado (CR) PrometheusRule. O Prometheus Operator determina quais objetos PrometheusRule carregar com base no campo ruleSelector do CR do Prometheus:

  • Se o ruleSelector especificar matchLabels, o PrometheusRule deve conter os mesmos rótulos.

  • Caso o ruleSelector esteja vazio, os rótulos são opcionais.

Nota

Se a sua implantação do Prometheus não utilizar o Prometheus Operator, importe a regra gerada usando um método adequado à sua configuração. Consulte a documentação do Prometheus para obter orientações.

Etapa 1: Obter os rótulos do ruleSelector

Verifique o campo ruleSelector no CR do Prometheus para determinar quais rótulos o Prometheus Operator exige nos objetos PrometheusRule.

  1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique em nome do cluster que deseja gerenciar e escolha Workloads > Custom Resources no painel de navegação à esquerda.

  3. Na aba CRDs, clique em PrometheusRule.

  4. Na aba Resource Objects, selecione monitoring na lista suspensa Namespace. Localize ack-prometheus-operator-prometheus e clique em Edit YAML na coluna Actions.

  5. Localize o campo ruleSelector. Uma configuração típica se parece com o exemplo abaixo. Nesse caso, qualquer PrometheusRule deve incluir ambos os rótulos (app: ack-prometheus-operator e release: ack-prometheus-operator) para ser selecionado.

       ruleSelector:
         matchLabels:
           app: ack-prometheus-operator
           release: ack-prometheus-operator

Etapa 2: Implantar o PrometheusRule

  1. Crie um arquivo chamado prometheusrule.yaml com o seguinte conteúdo:

    • Defina o campo labels para corresponder aos valores de matchLabels da Etapa 1.

    • Substitua o conteúdo de spec pela regra do Prometheus gerada no console do ASM.

       apiVersion: monitoring.coreos.com/v1
       kind: PrometheusRule
       metadata:
         labels:
           app: ack-prometheus-operator
           release: ack-prometheus-operator
         name: asm-rules
         namespace: monitoring
       spec:
         # Replace with the generated Prometheus rule.
  2. Aplique o PrometheusRule ao cluster ACK:

       kubectl apply -f prometheusrule.yaml

Etapa 3: Verificar se a regra foi carregada

Após a aplicação do PrometheusRule, o controlador do Prometheus Operator grava automaticamente as configurações da regra no ConfigMap do Prometheus. Verifique isso por meio do console do ACK ou da linha de comando.

Opção A: Console do ACK

  1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique em nome do cluster que deseja gerenciar e escolha Configurations > ConfigMaps no painel de navegação à esquerda.

  3. Na página ConfigMap, selecione monitoring na lista suspensa Namespace. Em seguida, localize o ConfigMap do Prometheus e clique em Edit YAML na coluna Actions.

  4. Confirme se as regras de SLO do ASM aparecem no ConfigMap. A figura a seguir mostra uma importação bem-sucedida.

    Prometheus ConfigMap with imported rules

Opção B: Linha de comando

Execute o seguinte comando para listar os recursos PrometheusRule:

kubectl get prometheusrules -n monitoring

A saída deve incluir o PrometheusRule asm-rules.

Etapa 4: Verificar se os SLOs estão ativos

Verificar regras de gravação e regras de alerta

  1. Encaminhe a porta local 9090 para o serviço do Prometheus:

       kubectl --namespace monitoring port-forward svc/ack-prometheus-operator-prometheus 9090
  2. Abra http://localhost:9090 em um navegador para acessar o console do Prometheus.

  3. Na página Prometheus, insira asm_slo_info na caixa de consulta e clique em Execute. Se a consulta retornar resultados, as regras de gravação estarão ativas.

    SLO recording rules in Prometheus

  4. Na barra de navegação superior, clique em Alerts para verificar se as regras de alerta foram carregadas.

    Alerting rules in Prometheus

Simular tráfego para validar métricas de SLO

Utilize os cenários a seguir para confirmar se as métricas e os alertas respondem corretamente.

Cenário 1: Tráfego normal (taxa de sucesso de 99,5%)

Este script envia 200 requisições, das quais apenas uma retorna um erro 500, simulando uma taxa de sucesso de 99,5%:

#!/bin/bash
for i in $(seq 200)
do
  if (( $i == 100 ))
  then
    curl -I http://<ingress-gateway-ip>/status/500;
  else
    curl -I http://<ingress-gateway-ip>/;
  fi
  echo "OK"
  sleep 0.01;
done;

Substitua <ingress-gateway-ip> pelo endereço IP do gateway de entrada. Para obter detalhes, consulte Implantar um serviço de gateway de entrada.

Após a conclusão do script, consulte slo:period_error_budget_remaining:ratio no console do Prometheus para verificar o budget de erro restante. Um valor próximo de 1 indica que a maior parte do budget permanece intacta.

Error budget after normal traffic

Cenário 2: Tráfego com erros (taxa de falha de 50%)

Este script envia requisições alternadas entre sucesso e falha para simular uma taxa de erro de 50% e acionar alertas de taxa de consumo:

#!/bin/bash
for i in $(seq 200)
do
  curl -I http://<ingress-gateway-ip>/
  curl -I http://<ingress-gateway-ip>/status/500;
  echo "OK"
  sleep 0.01;
done;

Após a conclusão do script, abra a página Alerts no console do Prometheus. Se a taxa de consumo exceder o limiar, os alertas serão disparados.

Alerts triggered by error traffic

Referência de métricas de SLO

A tabela a seguir descreve as métricas de SLO usadas para monitoramento. Para obter uma explicação detalhada sobre conceitos de SLO, como budgets de erro e alertas de taxa de consumo com múltiplas janelas, consulte Visão geral de SLO.

Métrica

Descrição

Interpretação

slo:period_error_budget_remaining:ratio

Budget de erro restante como uma proporção durante o período de conformidade de 30 dias.

1 = budget total disponível. 0 = budget esgotado. Valores entre 0 e 1 indicam consumo parcial.

slo:sli_error:ratio_rate30d

Taxa média de erro ao longo do período de conformidade de 30 dias.

Valores menores indicam melhor confiabilidade do serviço.

slo:period_burn_rate:ratio

Taxa na qual o budget de erro é consumido durante o período de conformidade de 30 dias.

1 = budget consumido exatamente na taxa esperada. Valores acima de 1 indicam um consumo mais rápido do que o sustentável.

slo:current_burn_rate:ratio

Taxa de consumo atual baseada em uma janela de tempo menor.

Valores acima de 1 indicam que o budget está sendo consumido mais rapidamente do que o sustentável e podem acionar alertas.

Visualizar alertas no Alertmanager

O Alertmanager coleta alertas do Prometheus e os encaminha para receptores configurados, como endpoints de e-mail ou webhook.

  1. Encaminhe a porta local 9093 para o serviço do Alertmanager:

       kubectl --namespace monitoring port-forward svc/ack-prometheus-operator-alertmanager 9093
  2. Abra http://localhost:9093 em um navegador para acessar o console do Alertmanager.

  3. Na página Alertmanager, clique em ícone Show icon para expandir e visualizar os detalhes do alerta.

    Alerts in Alertmanager

Próximos passos