Escolher seus indicadores de nível de serviço (SLIs)

Last reviewed 2024-03-29 UTC

Neste documento do Framework de arquitetura do Google Cloud, descrevemos como escolher indicadores de nível de serviço (SLIs) apropriados para seu serviço. Este documento se baseia nos conceitos definidos em Componentes dos SLOs.

As métricas são necessárias para determinar se os objetivos de nível de serviço (SLOs) estão sendo alcançados. Você define essas métricas como SLIs. Cada SLI é a medição de um aspecto específico do seu serviço, como tempo de resposta, disponibilidade ou taxa de sucesso.

Os SLOs incluem um ou mais SLIs e são, idealmente, baseados em jornadas críticas do usuário (CUJs). As CUJs se referem a um conjunto específico de interações ou caminhos do usuário que ele segue para alcançar um objetivo em um site. Imagine um cliente comprando em um serviço de comércio eletrônico. O cliente faz login, pesquisa um produto, adiciona o item a um carrinho, navega até a página de finalização da compra e finaliza a compra. As CUJs identificam as diferentes maneiras de ajudar os usuários a concluir tarefas o mais rápido possível.

Ao escolher SLIs, você precisa considerar as métricas adequadas para seu serviço, os vários tipos de métricas que podem ser usados, a qualidade da métrica e o número correto de métricas necessárias.

Escolher SLIs apropriados para seu tipo de serviço

Há muitos tipos de serviço. A tabela a seguir lista os tipos de serviço comuns e fornece exemplos de SLIs para cada um. Alguns SLIs são aplicáveis a vários tipos de serviço. Se um SLI aparecer mais de uma vez na tabela, somente a primeira instância de SLI fornecerá uma definição. Lembre-se de que os SLIs geralmente são expressos pelo número de "noves" na métrica.

Tipo de serviço SLIs típicos
Sistemas de veiculação
  • Disponibilidade: a porcentagem do serviço que pode ser usada. A disponibilidade é definida como a fração de solicitações bem-sucedidas dividida pelo número total de solicitações e expressa como uma porcentagem, como 99,9%.
  • Latência: a rapidez com que uma determinada porcentagem de solicitações é atendida. Por exemplo, o 99o percentil a 300 ms.
  • Qualidade: o quanto o conteúdo na resposta a uma solicitação desvia do conteúdo de resposta ideal. Por exemplo, uma escala de 0% a 100%.
Sistemas de processamento de dados
  • Cobertura: a quantidade de dados que foi processada, expressa como uma fração. Por exemplo, 95%
  • Correção — a fração dos dados de saída considerados corretas. Por exemplo, 99,99%
  • Atualização: a atualização dos dados de origem ou de saída agregados. Por exemplo, os dados foram atualizados 20 minutos atrás.
  • Capacidade de processamento: a quantidade de dados processados. Por exemplo, 500 MiB ou 1.000 solicitações por segundo.
Sistemas de armazenamento
  • Durabilidade: a probabilidade de que os dados gravados no sistema sejam acessados no futuro. Por exemplo, 99,9999%.
  • Tempo para o primeiro byte (TTFB, na sigla em inglês): o tempo necessário para enviar e receber o primeiro byte de uma página.
  • Disponibilidade de blob: a proporção de solicitações de clientes que retornam uma resposta de erro que não é do servidor em relação ao número total de solicitações do cliente.
  • Capacidade
  • Latência
Sistemas de drive de solicitação
  • Disponibilidade
  • Latência
  • Qualidade
Sistemas de execução programada
  • Skew - a proporção de execuções iniciadas dentro de uma janela aceitável do horário de início esperado.
  • Execução — o tempo que um job leva para ser concluído. Para uma determinada execução, um modo de falha comum é para que a duração real exceda a duração programada.

Avaliar diferentes tipos de métricas

Além de escolher o SLI apropriado para seu serviço, você precisa decidir o tipo de métrica a ser usado no seu SLI. Os SLIs listados na seção anterior tendem a ser dos seguintes tipos:

  • Counter: esse tipo de métrica pode aumentar, mas não diminuir. Por exemplo, o número de erros que ocorreram até um determinado ponto de medição.
  • Gauge: esse tipo de métrica pode aumentar ou diminuir. Por exemplo, o valor real de uma parte mensurável do sistema, como o comprimento da fila.
  • Distribuição (histograma): o número de eventos que habitam um segmento de medição específico para um determinado período. Por exemplo, medir quantas solicitações levam de 0 a 10 ms para serem concluídas, quantas levam de 11 a 30 ms e quantas levam de 31 a 100 ms. O resultado é uma contagem para cada bucket, como [0-10: 50], [11-30: 220] e [31-100: 1103].

Para mais informações sobre esses tipos, consulte a documentação do projeto do Prometheus e os Tipos de valor e de métrica no Cloud Monitoring.

Considerar a qualidade da métrica

Nem toda métrica é útil. Além de ser uma proporção de eventos bem-sucedidos para total de eventos, você precisa determinar se uma métrica é um bom SLI para suas necessidades. Para ajudar você nessa determinação, considere as seguintes características de uma boa métrica:

  • As métricas estão diretamente relacionadas à satisfação do usuário. Os usuários ficam insatisfeitos quando um serviço não se comporta conforme o esperado, como quando o serviço é lento, impreciso ou falha completamente. Valide qualquer SLO com base nessas métricas comparando o SLI com outros sinais de satisfação do usuário. Essa comparação inclui dados como o número de tíquetes de reclamações dos clientes, o volume de chamadas de suporte e o sentimento nas mídias sociais. Para saber mais, consulte Melhoria contínua das metas do SLO.

    Se a métrica não estiver alinhada com esses outros indicadores de satisfação do usuário, talvez não seja um bom SLI.

  • A deterioração da métrica está relacionada a falhas temporárias. Qualquer métrica que informe bons resultados de serviço durante uma interrupção é claramente a métrica errada para um SLI. Por outro lado, uma métrica que parece ruim durante a operação normal também é problemática.

  • A métrica fornece uma boa proporção sinal/ruído. Descarte todas as métricas que resultem em um grande número de falsos negativos ou falsos positivos.

  • A métrica é escalonada monotonicamente e, de maneira linear, com satisfação no cliente. Simplificando, à medida que a métrica melhora, a satisfação do cliente também melhora.

Selecione o número correto de métricas

Um único serviço pode ter vários SLIs, especialmente se executar diferentes tipos de trabalho ou atender a diferentes tipos de usuários. É melhor escolher as métricas apropriadas para cada tipo.

Por outro lado, alguns serviços executam tipos de trabalho semelhantes que podem ser diretamente comparáveis. Por exemplo, usuários visualizando páginas diferentes no seu site (como a página inicial, as subcategorias e a lista dos 10 principais). Em vez de desenvolver um SLI separado para cada uma dessas ações, combine-as em uma única categoria de SLI, como serviços de navegação.

As expectativas dos usuários não mudam muito entre ações de uma categoria semelhante. Sua felicidade é quantificável por uma resposta a uma pergunta: "Eu vi uma página inteira de itens rapidamente?"

Usar o menor número possível de SLIs para representar com precisão suas tolerâncias de serviço. Como guia geral, use de dois a seis SLIs. Se você tiver poucos SLIs, pode perder sinais valiosos. Excesso de dados, e a equipe de suporte tem muitos dados disponíveis, com pouco benefício adicional. Os SLIs precisam simplificar sua compreensão da integridade da produção e fornecer uma sensação de cobertura, não sobrecarregar (ou submeter você) você.

A seguir