Capacity Planner
O Capacity Planner analisa tendências históricas de uso de CPU e memória para prever quando os recursos de um cluster ou namespace serão esgotados — permitindo ação proativa antes que incidentes ocorram.Algoritmo de Regressão Linear
O Capacity Planner utiliza regressão linear por mínimos quadrados (least-squares) para projetar a data de esgotamento de recursos.O algoritmo requer ao menos 3 pontos de dados para gerar uma projeção confiável. Com menos de 3 pontos, o planner retorna
trend: insufficient_data.Estruturas de Dados
ResourceUsage
ResourceUsage
Representa um ponto de uso de recurso no tempo.
ResourceTrend
ResourceTrend
Resultado da regressão linear para um recurso.
ForecastResult
ForecastResult
Projeção de esgotamento com recomendações.
Correlação com Incidentes
O métodoResourceIsBottleneck verifica se um recurso está relacionado a incidentes ativos:
IsBottleneck = true, a recomendação de capacidade é automaticamente priorizada e inclui referência ao incidente ativo.
Geração de Recomendações
O Capacity Planner gera recomendações baseadas na urgência da projeção:Como Usar
O Capacity Planner coleta dados a cada ciclo de reconciliação (30 segundos) e armazena histórico em um ConfigMap (
chatcli-capacity-history). A regressão é recalculada a cada 5 minutos.Noise Reducer
O Noise Reducer implementa quatro estratégias de supressão de alertas para reduzir a fadiga de alerta (alert fatigue) e melhorar a relação sinal/ruído.Estratégia 1: Supressão de Repetitivos
Suprime alertas idênticos quando há acúmulo sem mudança de estado.Estratégia 2: Padrões Sazonais
Identifica e suprime alertas que ocorrem em horários previsíveis (ex: jobs de limpeza, deploys agendados). SeasonalPattern struct:
Algoritmo de Detecção:
- ConfigMap update job roda toda segunda às 03:00
- Gera alerta
pod_restartno namespacejobs - Após 4 semanas: padrão identificado (segunda, 03:00, confidence 0.75)
- A partir da 5a semana: alerta suprimido automaticamente
chatcli-seasonal-patterns.
Estratégia 3: Detecção de Flap
Detecta recursos que oscilam entre estados (resolved -> detected -> resolved) repetidamente.Estratégia 4: Alert Fatigue Scoring
Calcula uma pontuação de fadiga de alerta (0-100) para determinar se o volume de alertas está excessivo.Cost Tracker
O Cost Tracker rastreia custos operacionais (LLM + downtime) e calcula o ROI da automação AIOps.Custos de LLM por Provedor
O custo de cada chamada LLM é calculado com base nos tokens consumidos e nos preços configurados por provedor:Configuração de Custos
Os preços são configuráveis via ConfigMapchatcli-cost-config:
Se o ConfigMap não existir, os valores padrão são usados. A atualização do ConfigMap é refletida em tempo real (watch no ConfigMap).
IncidentCost
Custo total de um incidente, decomposto em componentes:
CostBreakdown:
Exemplo de cálculo:
CostSummary
Agregação de custos para um período:Cálculo de ROI
O ROI é calculado comparando o custo da automação com o custo estimado de resolução manual:
Exemplo de ROI mensal:
O ROI tipicamente excede 100,000% porque o custo de chamadas LLM ($0.03-0.10 por incidente) é ordens de magnitude menor que o custo de resolução manual (2h de engenheiro + downtime).
Arquitetura de Armazenamento (ConfigMaps)
Todos os dados do Capacity Planner, Noise Reducer e Cost Tracker são persistidos em ConfigMaps no namespace do operator:Formato de Armazenamento
Integrações
API REST
Endpoints
/api/v1/analytics/remediation-stats e /api/v1/analytics/summary expõem dados de custo e capacidade.Web Dashboard
A view Overview do dashboard exibe métricas de ROI e projeções de capacidade em tempo real.
Grafana
O dashboard
remediation-stats.json inclui painéis de custo e ROI.AIOps Platform
Arquitetura completa do pipeline AIOps e como estes subsistemas se integram.