GH GambleHub

SLO/SLA e métricas

SLO/SLA e métricas

1) Termos e hierarquias

O SLI (Service Level Indicator) é um indicador medível de «como o usuário nos vê»: proporção de pedidos bem sucedidos, p95 latência, frescor de dados, proporção de batches processadas com sucesso, etc.
SLO (Service Level Objectiva): destino SLI no intervalo de observação (28/30/90 dias). Exemplo: "99. 9% das solicitações/pay terminam ≤ 400 ms".
Error budget — 1 − SLO. No SLO 99. Orçamento de erro de 9% = 0. 1% de tempo/solicitação.
SLA - Nível de serviço legalmente relevante: inclui SLO, medição, exceções, compensações/multas.

2) Princípios de design

Sintomas> métricas internas. O SLI deve refletir a experiência real do usuário.
Um pequeno número de SLI-chave. Para o serviço - 2-5 principais: sucesso, latência, banda larga/frescura, correto.
Abrangência das vias críticas. Para cada cenário de negócios (checkout, login, webhook, download ETL) - seu conjunto SLI/SLO.
Uma semântica rigorosa de «sucesso». Não «código 200», mas «o usuário recebeu a resposta dentro do prazo e o resultado está valendo».
Separação entre SLO externo e interno. O interior é mais rigoroso; o SLA externo ≤ entre 1 e 2 metros abaixo.

3) Catálogo SLI (árbitro)

3. 1 API/serviços online

Sucesso: 'SLI _ sucess = 1 - (5xx + timeout + business _ erro )/all _ requests'

Latência: p95/p99 'http _ server _ duration _ segunds' sobre rotas/métodos/locatários

Largura de banda: 'RPS '/limites/quotas

Correto: proporção de respostas validadas (assinaturas, esquemas, invariantes)

3. 2 Webhooks/entregas asinhrônicas

Entrega: proporção de eventos confirmados em T segundos e ≤ N retrações

Clientes: proporção de assinantes sem atraso prolongado (para-tenante)

3. 3 Dados/ETL/DWH

Frescor (freshness): 'now - last _ sucessful _ ingest _ ts'

Íntegra em 'ingested _ rows/expected _ rows'

Correção: proporção de registros de qualidade

Pipline: proporção de DVDs concluídos até a deadline

3. 4 SDK móvel/cliente

Sucesso do cliente: proporção de sessões sem erros fatais

Latência round-trip: p95 de consulta a render

Sucesso em dinheiro: proporção de pessoas atendidas a partir de um cachê (como sintoma de performance)

4) Fórmulas e exemplos de metas

Disponibilidade (por solicitação):
  • `SLI_req_avail = 1 − (failed_requests / total_requests)`
  • `SLO_req_avail = 99. 95% 'por 30 dias → error budget = 0. 05% das solicitações.
Disponibilidade (horário):
  • `uptime = (obs_window − downtime) / obs_window`
Latitude:
  • ' SLO _ latency = p95 (rota = »/pay») ≤ 400 ms' em cortes de 7 dias, com exclusão de aquecimento em dinheiro (1%)
Dados recentes:
  • ' SLO _ freshness (datse =» orders») ≤ 10 min' p99 em 24 horas.

5) Erro budet e gerenciamento de alterações

Orçamento (B): 'B = 1 - SLO'.
Consumo de orçamento (burn): relação entre erros reais e erros válidos.

Políticos:
  • Excesso (burn> 1) → fichfrime, foco de confiabilidade.
  • Com burn rate> X em uma janela curta - incidente e cap. medidas.
  • Planejamento: a participação do sprint na confiabilidade está correlacionada com o burn no período anterior.

6) Alerting: burn rate e regras de várias janelas

A ideia é apanhar fugas rápidas e uma deriva lenta.

Exemplo (SLO 99. 9%, orçamento 0. 1%):
  • Crítica: «2% do orçamento em 1 hora» (fogo rápido).
  • Aviso: «5% do orçamento em 6 horas» (degradação rasteira).
Regras:
  • Janela curta (minuto-hora) para incidentes rápidos.
  • Janela longa (6-24 horas) para tendências.
  • Latência: alert p99> limiar de ≥5 min, com supressão de flapping e ligação com exemplares de trilhos.
Exemplo de expressão (lógica):

error_ratio_5m = errors[5m] / requests[5m]
error_ratio_1h = errors[1h] / requests[1h]
burn_5m     = error_ratio_5m / error_budget_fraction burn_1h     = error_ratio_1h / error_budget_fraction alert_critical if burn_1h > 14 and burn_5m > 14 alert_warning  if burn_6h > 6 and burn_30m > 6

7) Multiplicidade (multi-tenant) e segmentação

Os SLI/SLO são considerados como locadores/planos/regiões, ou a mediana «encobrirá» falhas.
Número mínimo de eventos de importância estatística (guard-rails).
O SLA pode variar de tarifas (por exemplo, "Pro 99. 9%, Free 99. 5%»).

8) Conexão com observabilidade e rastreamento

Métricas SLI - a partir de histogramas/contadores com exemplars → transição para «maus» trailers.
O logi é uma fonte de causa, temporizações, códigos de erros de negócios, limites.
Para os dados, ligou-se ao lineage, «Que dobro deteve a métrica de frescura».

9) Contratos e SLA

Conteúdo da SLA:
  • Definições de SLI/método de medição/janela.
  • Exceções (trabalho programado, força maior).
  • Procedimento de incidentes e comunicações (página status, RFO/RCA).
  • Compensações (service credits) e ordem de solicitação.
  • Jurisdição, período de validade, termos de revisão.
Recomendações:
  • Nunca prometa publicamente SLO mais rigoroso do que a arquitetura e as práticas operacionais permitem.
  • Separe o SLO interno e o SLA externo.

10) Custo e priorização

O preço das donzelas não aumenta linearmente. «99. 9% → 99. 99%" = outra classe de arquitetura (N + 1, multiisona, ativo-ativo).
Coloque o SLO nas ações mais valiosas do usuário.
Controle os custos de telemetria, como downsampling, quotas, réplica e armazenamento por classe.

11) Procedimentos e relatórios

Relatórios semanais: execução de SLO para serviços/locatários, consumo de orçamento, melhores razões, planos de melhorias.
RCA pós-insidentes: Associamos a pedaços de orçamento; estabelecemos metas para resolver as causas profundas.
Fichfreese: critérios de inclusão/retirada.

12) Modelos (para início rápido)

12. 1 Cartão SLO (exemplo)


Service: Checkout API
SLI:
success: 1 - (5xx+timeouts+biz_failures)/all latency_p95: p95(http_server_duration_seconds{route="/pay"})
SLO:
success: 99. 95% / 30d latency_p95: ≤ 400ms / 7d
Windows:
primary: 30d rolling secondary: 7d rolling
Burn Alerts:
critical: use 1h/5m > 14 warning: use 6h/30m > 6
Owner: Team Checkout
Tenancy: per-tenant (≥ 1k req/day threshold)
Dashboards: RED + trace exemplars

12. 2 Tabela «Maturidade SLO»

NívelCaracterísticas
0Sem SLI, alertas por CPU/Memory
1Tem SLI, liminares simples
2SLO com alertas burn-rate, relatórios
3SLO multi-arending, fichfrites, capturas como planejado
4SLO de passagem (kliyent→bekend→dannyye), remunção automática, SLO de canário

13) Exemplos de regras (fatias)

PromQL - sucesso/erro/latência:
promql
Error rate (5xx + timeout) for the sum (rate (http_requests_total{route="/pay",code=~"5. route.    599"}[5m]))
/ sum(rate(http_requests_total{route="/pay"}[5m]))

p99 histogram_quantile latency (0. 99, sum(rate(http_server_duration_seconds_bucket{route="/pay"}[5m])) by (le))
Alert burn-rate (ideia para as regras):
promql error_budget_fraction = 0. 001 for 99. 9%
(err_rate_5m / 0. 001 > 14) and (err_rate_1h / 0. 001 > 14) # critical
(err_rate_30m / 0. 001 > 6) and (err_rate_6h / 0. 001 > 6)  # warning
Dados recentes:
promql
Data order lag (minutes)
(max(time()) - max(last_ingest_ts_seconds{dataset="orders"})) / 60

14) SLO para dados e ML (características)

Dados SLO de passagem: p99 frescor, p99 cheio, tempo de «reinstalação» após falha.
Contratos de dados: esquemas esperados, quantidades, deadline; violação → incidente de dados.
ML: SLO para latência da inferência, SLA para disponibilidade de fich store, monitoramento da deriva (qualidade do modelo é um tema separado, fora do SLA).

15) Integração com segurança e privacidade

Logi SLI sem PII/segredos; Toquenização/camuflagem.
Auditoria de alterações do SLO/SLA e publicações de relatórios em revistas imutáveis.
Para rotas regulatórias (pagamentos/PII) - SLO individuais, mais rigorosos.

16) Folhas de cheque

Antes de iniciar o serviço/fici

  • Definidos pelo SLI «sucesso/latência/largura de banda/frescura».
  • O SLO e as janelas foram definidos; O orçamento dos erros foi calculado.
  • Alertas de burn-rate configurados (curto + longo).
  • Dashboard RED + exemplars → pista; runibuki incidentes.
  • Cortes múltiplos e liminares de importância.
  • Processo de fichfrisagem e relatórios.

Operação

  • Relatório semanal de SLO/burn, planos de hardening.
  • Reavaliação do SLO ao alterar a arquitetura/carga.
  • Exercícios «incidentes» e atualização de runibucos.
  • Controle do custo da telemetria e da quantidade de SLI.

17) Runbook’и

Runbook: crescimento rápido p99/pay

1. Alert r99> limiar → abrir o dashboard → ir pelo exemplar para o trace.
2. Encontrar um CLIENTE/SERVER span estreito, comparar regiões/versões.
3. Incluir degradação (dinheiro/limite/folbeck), notificar o comando de dependência.
4. Após a estabilização - RCA, tarefas de otimização, atualização de medidas SLO.

Runbook: consumo de orçamento> 50% por semana

1. Congelar os fichas, priorizar a confiabilidade.
2. Clustering de erros em rotas/locatários/dependências.
3. Corrigir → confirmar a recuperação da tendência.
4. Retrospectiva e ajustamento de alertas/liminares.

18) FAQ

Quanto SLO precisa?
O mínimo para cenários críticos do usuário é sucesso + latência. Tudo o resto é necessário.

Em: O que é melhor - disponibilidade por tempo ou por solicitação?
Por solicitação, uma métrica mais personalizada. Hora útil para componentes de rede/infra.

Em: Porquê p95 e não a média?
O meio esconde a cauda; o usuário sente p95/p99.

Como não «enrolar» demasiado?
Comece com objetivos realistas (dados históricos) e depois endureça conforme a maturidade.

Matérias relacionadas:
  • Observabilidade: logs, métricas, traçados
  • Traçados distribuídos
  • «Auditar e Registos Imutáveis»
  • «Garantia de entrega de webhooks»
  • Criptografia In Transit/At Rest
  • Origem dos dados
Contact

Entrar em contacto

Contacte-nos para qualquer questão ou necessidade de apoio.Estamos sempre prontos para ajudar!

Telegram
@Gamble_GC
Iniciar integração

O Email é obrigatório. Telegram ou WhatsApp — opcionais.

O seu nome opcional
Email opcional
Assunto opcional
Mensagem opcional
Telegram opcional
@
Se indicar Telegram — responderemos também por lá.
WhatsApp opcional
Formato: +indicativo e número (ex.: +351XXXXXXXXX).

Ao clicar, concorda com o tratamento dos seus dados.