Shadow mode — não altera infraestrutura Dados históricos reais

Quantas réplicas cada serviço precisa antes do apito inicial.

Substituímos a configuração estática de autoscale por perfis calculados a partir do que realmente aconteceu: audiência, RPM, latência, erros e réplicas alinhados ao início de cada jogo. Dois perfis distintos — futebol em geral e jogos do Brasil, que puxam muito mais demanda.

Demanda observada

Curva de audiência ao redor do início do jogo

Sessões ativas simultâneas, alinhadas ao minuto do apito (0). A faixa mostra a mediana (P50) e a previsão de pico (P95) sobre todos os jogos do perfil — é ela que dimensiona a capacidade.

Mediana P50 Previsão de pico P95 Início do jogo (minuto 0)
Recomendação de capacidade

Réplicas recomendadas vs. observadas, por serviço

A recomendação pré-escala com margem de segurança (20% para este perfil). A coluna headroom mostra quanta folga cada serviço já demonstrou ter dentro do SLO — oportunidade de rodar mais enxuto após load-test.

Réplicas observadas soma dos picos por serviço
Réplicas recomendadas pré-escala + margem
Diferença vs. observado no pico
Pico observado Recomendado (pré-escala + margem)
Serviço Observadas Recomendadas Δ Headroom
💡

Leitura para o time

Explorador

Demanda e capacidade de um serviço no tempo

Réplicas observadas vs. recomendadas minuto a minuto ao redor do apito — a distância entre as linhas é a discrepância a pré-escalar. A demanda (RPM P95) fica ao fundo como contexto. Escolha o serviço para inspecionar.

Réplicas recomendadas Réplicas observadas RPM P95 (demanda, contexto)
Base histórica

Jogos usados neste perfil

Descobertos no EPG e complementados por uma lista curada. Jogos do Brasil ficam isolados no perfil Brasil.

Metodologia

Como ler estes números

Transparência total do cálculo para QA e engenharia. Tudo é observacional e roda em shadow mode — nenhuma decisão automática de infraestrutura é tomada.

📈

Capacidade segura por réplica

Quantil 75% de RPM/réplica nos buckets saudáveis (erro ≤ 1%, latência ≤ 500 ms) e sob carga. Condicionar à carga remove a diluição das horas ociosas, em que o HPA segura o piso de réplicas.

🎯

Réplicas recomendadas

ceil(P95 do RPM × margem ÷ capacidade segura), nunca abaixo do piso observado. Margem de 20% para futebol e 40% para jogos do Brasil.

🫁

Headroom demonstrado

Maior RPM/réplica já entregue dentro do SLO (quantil 95%) dividido pela capacidade segura. É diagnóstico: mostra folga para elevar o target do HPA — pendente de load-test. Não reduz réplicas automaticamente.

⏱️

Pré-escala e buffer

Subidas antecipadas em 30 min; reduções só após 30 min de folga. Evita chegar atrasado ao pico e evita oscilar réplicas para baixo cedo demais.

# capacidade sustentada (governa as réplicas) safe_rpm_per_replica = max( quantil75( rpm/réplicas | saudável e sob carga ), quantil75( rpm/réplicas | saudável ) # guarda: nunca subestima ) required_replicas = ceil( P95(rpm) × margem / safe_rpm_per_replica ) # diagnóstico de folga (NÃO altera réplicas) demonstrated = quantil95( rpm/réplicas | saudável ) headroom = demonstrated / safe_rpm_per_replica
⚠️

Limitações honestas

Poucos jogos do Brasil ⇒ menor confiança estatística. A capacidade por réplica é observacional, não substitui teste de carga. O plano ainda não modela warm-up específico de cada app. Automatizar exige manter o HPA como proteção e limites aprovados por serviço.