Server Errors

Introdução

Sabendo da importância do monitoramento nos tempos atuais, vamos abordar a configuração de um alerta parametrizado dentro do Prometheus para monitorar APIs em busca de erros do servidor dentro do Analytics. Especificamente, vamos validar a estrutura de um alerta que detecta quando a taxa de erros do servidor.

Especificação

Iremos verificar a estrutura do alerta um pouco a frente, porém a estrutura responsável pela validação de erros, é a que segue. Ou seja, a partir do momento de seu acionamento (quando a expressão for verdadeira) o alerta será disparado para a validação dos analistas.

((sum_over_time(server_errors{id="{{l$abels.api_id}}",customer_id="{{l$abels.customer_id}}",type="api"}[10m]) / sum_over_time(calls{id="{{l$abels.api_id}}",customer_id="{{l$abels.customer_id}}",type="api"}[10m])) * 100) > 10

Isso significa que, se a taxa de erros do servidor em relação ao número total de chamadas exceder 10% nos últimos 10 minutos, o alerta será acionado.

Estrutura do Alerta

Para entendermos um pouco mais sobre o funcionamento da estrutura do alerta, é necessário conhecer como a mesma é parametrizada:

#SERVER ERRORS
- alert: {{$labels.customer_name}}-SERVER_ERRORS-API-{{$labels.api_id}}
  expr: floor((sum_over_time(server_errors{id="{{$labels.api_id}}",customer_id="{{$labels.customer_id}}",type="api"}[10m]) / sum_over_time(calls{id="{{$labels.api_id}}",customer_id="{{$labels.customer_id}}",type="api"}[10m])) * 100) > 10
   for: 6m
   labels:
     severity: critical
     emails: "{{emails_list}}" 
     metric: server_errors
   annotations:
     description: "Premium Support | {{ $labels.customer_name }} | SERVER_ERRORS. API: {{$labels.api_name}}"

Para entender o funcionamento, é necessário entender um pouco mais sobre cada um dos itens da estrutura do alerta:

  • Nome do Alerta: {{ $labels.customer_name }}-SERVER_ERRORS-API-{{$labels.api_id}}

    O nome do alerta é composto pelo nome do cliente ({{ $labels.customer_name }}), seguido por "SERVER_ERRORS-API-" e o ID da API ({{$labels.api_id}}). Isso ajuda a identificar facilmente o cliente e a API específica associada ao alerta.

  • Expressão de Avaliação:

    A expressão é uma fórmula que define a condição para acionar o alerta. Neste caso, calculamos a taxa de erros do servidor em relação ao número total de chamadas nos últimos 10 minutos e comparamos com 10%. Se a taxa for superior a 10%, o alerta é acionado.

  • Duração: 6 minutos.

    Esta é a duração mínima que a condição especificada na expressão deve ser verdadeira para acionar o alerta.

  • Rótulos:

    • Gravidade: Crítico

      Indica a gravidade do alerta. Neste caso, os erros do servidor são considerados críticos.

    • Emails: "lista"

      Especifica os destinatários que receberão notificações quando o alerta for acionado.

    • Métrica: server_errors

      Identifica a métrica associada ao alerta. Neste caso, estamos monitorando os erros do servidor.

  • Anotações:

    • Descrição: "Suporte Premium | {{ $labels.customer_name }} | ERROS DO SERVIDOR. API: {{$labels.api_name}}"

      Fornece informações adicionais sobre o alerta, como o nível de suporte e o nome da API associada ao alerta.

Caso de Uso

Esse alerta é útil para garantir que as APIs estejam funcionando corretamente, alertando as equipes de operações sobre problemas de servidor que possam impactar os usuários finais.

Ao receber esse alerta, as equipes responsáveis podem investigar imediatamente e tomar medidas corretivas para restaurar a funcionalidade do sistema.

Conclusão

Configurar alertas no Prometheus é uma prática crucial para garantir o monitoramento eficaz de sistemas e serviços. Este documento forneceu uma visão geral da configuração de um alerta para detectar erros do servidor em APIs, detalhando a especificação, a estrutura do alerta, a regra e o caso de uso associados a esse alerta. Ao implementar e monitorar esse alerta, as equipes podem garantir uma resposta rápida a problemas críticos e manter a integridade e disponibilidade dos sistemas.

Last updated