SRE

SLI: catálogo de exemplos por tipo de serviço e como definir

Definir um SLI errado é pior do que não ter nenhum. Um time que monitora o percentual de uptime do servidor acredita estar medindo confiabilidade — mas se os usuários enfrentam timeouts de 30 segundos nas respostas da API, o dashboard permanece verde enquanto a experiência degrada.

O Service Level Indicator (SLI) é a métrica que quantifica um aspecto específico do comportamento de um serviço do ponto de vista do usuário. Não é qualquer métrica de infraestrutura: é a métrica que, quando fora do intervalo esperado, significa que o usuário está sendo impactado. Integrado a uma estratégia de observabilidade, o SLI é o ponto de partida para definir SLOs e calcular error budgets.

Neste guia, você encontra um catálogo técnico de SLIs por categoria de serviço — com exemplos concretos de métricas, fórmulas e queries para cada tipo de sistema.

 

O que é um SLI e como se diferencia de uma métrica comum

Um SLI é uma proporção: eventos bons divididos pelo total de eventos válidos, expressa como percentual. A pergunta central ao definir um SLI é: o que significa “funcionar corretamente” para o usuário neste serviço?

Uma métrica de CPU é um dado de infraestrutura. Um SLI de disponibilidade é a proporção de requisições que retornaram resposta sem erro dentro do tempo esperado. A diferença é que o SLI está diretamente ancorado na experiência do usuário — não no estado interno do sistema.

A fórmula base de qualquer SLI é: SLI = (eventos bons / eventos válidos) × 100. O que varia por tipo de serviço é a definição de “evento bom” e “evento válido”.

 

SLIs para APIs e serviços HTTP

 

Disponibilidade

Mede a proporção de requisições que retornaram sem erro. A definição de “erro” deve excluir erros de cliente (4xx) — apenas erros de servidor (5xx) e timeouts indicam falha do serviço.

Fórmula: SLI = requisições com status < 500 / total de requisições válidas

Query Prometheus de referência:
sum(rate(http_requests_total{status!~"5.."}[5m])) / sum(rate(http_requests_total[5m]))

 

Latência

Mede a proporção de requisições atendidas abaixo de um threshold de tempo. O percentil mais comum é P95 ou P99 — não a média, que mascara outliers críticos.

Fórmula: SLI = requisições com latência < threshold / total de requisições válidas

Query Prometheus de referência:
sum(rate(http_request_duration_seconds_bucket{le="0.3"}[5m])) / sum(rate(http_request_duration_seconds_count[5m]))

Thresholds típicos por perfil de serviço: APIs síncronas de dados críticos: 200ms (P95). APIs de relatórios ou processamento batch: 2s (P95). APIs de upload ou processamento assíncrono: excluir do SLI de latência.

 

Corretude

Menos comum, mas crítico em sistemas financeiros ou de dados. Mede a proporção de respostas com conteúdo correto. Requer validação ativa (testes de fumaça ou canários que verificam o payload de resposta, não só o código HTTP).

 

SLIs para bancos de dados

 

Disponibilidade de leitura e escrita

Bancos de dados distribuídos frequentemente têm SLAs distintos para operações de leitura e escrita. O SLI deve separar as duas dimensões: a disponibilidade de leitura pode ser medida via replicas, enquanto a escrita exige o primary.

Exemplos de métricas: pg_stat_activity (PostgreSQL), mongodb_connections, mysql_up.

 

Latência de queries

O P99 de latência de queries é o SLI mais relevante para bancos de dados transacionais. Queries acima de 1s em bancos OLTP são um sinal de degradação independente do sistema estar "up".

 

Taxa de replicação

Em sistemas com replicas de leitura, o replication lag é um SLI crítico: define até onde os dados lidos podem estar desatualizados. Um lag acima de 5s pode ser aceitável para analytics, mas inaceitável para sistemas de pagamento.

 

SLIs para filas e sistemas de mensageria

 

Freshness (frescor)

Em sistemas baseados em eventos (Kafka, RabbitMQ, SQS), o SLI mais relevante não é disponibilidade — é frescor: a proporção de mensagens processadas dentro de uma janela de tempo aceitável após a publicação.

Fórmula: SLI = mensagens processadas em < X segundos / total de mensagens publicadas

 

Taxa de processamento

Mede se a taxa de consumo acompanha a taxa de produção. Uma fila que acumula mensagens indefinidamente está degradando mesmo que o consumer esteja "up".

Métricas relevantes: kafka_consumer_lag, rabbitmq_queue_messages, sqs_approximate_age_of_oldest_message.

 

SLIs para aplicações mobile e frontend

Em aplicações cliente, o SLI não pode ser medido no servidor — requer Real User Monitoring (RUM) ou instrumentação de SDK mobile.

Os SLIs mais relevantes para frontend são os Core Web Vitals: LCP (Largest Contentful Paint), INP (Interaction to Next Paint) e CLS (Cumulative Layout Shift). A fórmula segue o mesmo padrão: proporção de sessões onde os indicadores estão dentro do threshold aceitável.

Métricas adicionais para mobile: taxa de crash (crashes / sessões), taxa de ANR (Application Not Responding) e taxa de sucesso de operações críticas (login, checkout, pagamento).

 

SLIs para pipelines de dados e ETL

Pipelines de dados têm perfil distinto dos serviços síncronos. Os SLIs mais relevantes são: completude (proporção de registros processados com sucesso vs. total esperado), frescor (proporção de execuções concluídas dentro da janela de tempo definida) e corretude (proporção de registros que passam na validação de qualidade).

Esses SLIs são especialmente críticos em arquiteturas de observabilidade que dependem de dados de telemetria para alertas em tempo real.

 

Erros comuns na definição de SLIs

O erro mais frequente é monitorar métricas de infraestrutura no lugar de métricas de experiência do usuário — como usar CPU ou uso de memória como proxy de disponibilidade. CPU a 90% pode ser completamente normal para um serviço saudável.

O segundo erro é não excluir eventos inválidos do denominador. Requisições bloqueadas por firewall, bots conhecidos ou tráfego de health check devem ser excluídos para não distorcer o SLI. A referência técnica do Google SRE em sre.google detalha essa distinção com exemplos práticos.

O terceiro erro é definir SLIs para métricas que o time não consegue influenciar — como latência de DNS de terceiros. O SLI deve refletir o que o serviço entrega, não o ambiente externo.

 
Observabilidade

 

Conclusão

Um SLI bem definido é a fundação de qualquer estratégia de confiabilidade orientada ao usuário. A escolha da métrica certa para cada tipo de serviço — disponibilidade para APIs HTTP, frescor para filas, completude para pipelines — é o que distingue um sistema de alertas que gera ruído de um sistema que detecta impacto real.

O catálogo apresentado aqui é um ponto de partida. O próximo passo é converter cada SLI em um SLO com threshold e janela de tempo definidos, e conectá-lo a um error budget que guia as decisões operacionais do time. Para estruturar sua estratégia de SLIs e SRE com suporte especializado, fale com nossos especialistas.

 

Perguntas Frequentes

O que é um SLI (Service Level Indicator)?
Um SLI é uma métrica que quantifica um aspecto do comportamento de um serviço do ponto de vista do usuário. É expresso como proporção: eventos bons divididos pelo total de eventos válidos. Exemplos: proporção de requisições sem erro (disponibilidade), proporção de requisições abaixo de um threshold de latência (velocidade), proporção de mensagens processadas dentro de uma janela de tempo (frescor).
Qual a diferença entre SLI e SLO?
O SLI é a métrica — o que você mede. O SLO é o objetivo — o valor que o SLI deve atingir. Por exemplo: "latência P95 abaixo de 300ms" é o SLI. "O SLI de latência deve ser ≥ 99,5% ao longo de 30 dias" é o SLO. O SLI sem SLO é apenas monitoramento. O SLO transforma o SLI em um compromisso de confiabilidade gerenciável.
Quais métricas não devem ser usadas como SLI?
Métricas de infraestrutura isoladas — como CPU, memória ou uso de disco — não devem ser SLIs porque não representam diretamente a experiência do usuário. Um servidor com 95% de CPU pode estar servindo requisições normalmente. SLIs devem medir o resultado entregue ao usuário: disponibilidade, latência, corretude ou frescor — não o estado interno do sistema.
Como medir SLIs em aplicações mobile?
Em aplicações mobile, os SLIs não podem ser medidos apenas no servidor. É necessário instrumentação via SDK mobile ou ferramentas de Real User Monitoring (RUM). As métricas mais relevantes são taxa de crash, taxa de ANR, latência de operações críticas e taxa de sucesso de fluxos de negócio como login e checkout. O OpenTelemetry Mobile SDK é a alternativa open source para essa instrumentação.
Quantos SLIs um serviço deve ter?
A recomendação prática do Google SRE é manter entre 1 e 3 SLIs por serviço — focados nos aspectos mais críticos para o usuário. Mais do que isso aumenta a complexidade de gestão e dilui o foco. Para a maioria dos serviços HTTP, disponibilidade e latência cobrem os dois aspectos mais relevantes. SLIs adicionais de corretude ou frescor só devem ser adicionados quando esses aspectos são críticos para o negócio.

Trabalho há mais de 15 anos no mercado B2B de tecnologia e hoje atuo como Gerente de Marketing da OpServices e Líder em Projetos de Governança para Inteligência Artificial.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *