Skip to main content
A plataforma AIOps do ChatCLI oferece gestão nativa de Service Level Objectives (SLOs) e Service Level Agreements (SLAs) via CRDs Kubernetes. O sistema implementa o modelo de burn rate do Google SRE para alertas inteligentes e rastreia compliance de SLAs com suporte a business hours.

SLO vs SLA: Entendendo a Diferença

A boa prática é definir SLOs mais rigorosos que os SLAs. Se seu SLA garante 99.9%, defina o SLO em 99.95%. Isso cria uma margem de segurança (error budget interno) que permite detectar degradações antes que o SLA seja violado.

ServiceLevelObjective CRD

O ServiceLevelObjective define uma meta de confiabilidade para um serviço, com alertas baseados em burn rate e tracking de error budget.

Campos do Spec

Raiz

SLOIndicator

Define o que medir. O type determina a semântica e as queries Prometheus necessárias. Tipos de indicador: PrometheusQuerySpec:

SLOTarget

BurnRateWindow

Cada entrada define uma janela de alerta baseada em burn rate.

SLOAlertPolicy

Como Funciona o Cálculo (Google SRE Model)

O sistema implementa o modelo de multi-window, multi-burn-rate alerting descrito no livro “Site Reliability Engineering” do Google.

Error Budget

O error budget é a quantidade máxima de “erro” permitida dentro da janela do SLO.
Em uma janela de 30 dias, isso significa:

Burn Rate

O burn rate indica a velocidade com que o error budget está sendo consumido.
1

Calcular error rate na janela

Usando as queries Prometheus, calcula-se a proporção de eventos bons vs total na janela especificada.
2

Calcular burn rate

Divide o error rate pelo error budget.
3

Verificar multi-window

Para disparar um alerta, AMBAS as janelas (short E long) devem exceder o threshold.
4

Classificar e notificar

Com base na severidade configurada, o alerta e roteado para a NotificationPolicy correspondente.

Multi-Window Alerting: Thresholds Padrão

Os thresholds padrão seguem a recomendação do Google SRE para um SLO de 30 dias:
A formula para calcular o threshold: burn_rate_threshold = (window_days / budget_consumption_days). Para um SLO de 30 dias onde você quer alertar quando o budget se esgotaria em 2 dias: 30 / 2.08 = 14.4x.

Exemplo Numérico Completo

Considere um SLO de 99.9% availability em 30 dias para o serviço api-gateway:

Error Budget Tracking

O status do ServiceLevelObjective e atualizado periodicamente pelo reconciler: Condições do SLO: Budget Warning Thresholds: Quando configurados, o sistema envia notificações ao atingir cada threshold:

IncidentSLA CRD

O IncidentSLA define contratos de tempo de resposta e resolução por severidade, com suporte a business hours e tracking de violações.

Campos do Spec

Raiz

ResponseTimeConfig

Response time é medido como o tempo entre a criação do Issue (estado Detected) e a primeira transição para Analyzing ou Remediating. Resolution time é medido entre Detected e Resolved.

BusinessHoursSpec

Como o Clock de Business Hours Funciona

O SLA clock conta apenas durante horário comercial. Fora do horário, o clock é pausado automaticamente.
1

Incidente detectado

Issue criado as 17:45 (sexta-feira). Clock inicia.
2

Clock conta 15 minutos (sexta)

De 17:45 até 18:00 = 15 minutos de SLA clock. Clock pausa às 18:00 (fim do horário comercial).
3

Fim de semana: clock pausado

Sábado e domingo inteiros: clock permanece pausado. Tempo SLA acumulado: 15 minutos.
4

Segunda-feira: clock retoma

Clock retoma as 09:00 de segunda-feira. Se o incidente é resolvido às 10:30 de segunda:
  • Sexta: 15 minutos
  • Segunda: 1h30 = 90 minutos
  • Total SLA: 105 minutos (1h45)
5

Avaliação de compliance

Para severidade critical com maxResolutionTime: 1h:
  • Tempo SLA gasto: 1h45 = 105 minutos
  • Limite: 60 minutos
  • VIOLAÇÃO: excedeu por 45 minutos
Para severidade high com maxResolutionTime: 4h:
  • Tempo SLA gasto: 105 minutos
  • Limite: 240 minutos
  • DENTRO DO SLA
Para incidentes critical, considere desabilitar business hours (enabled: false) e usar clock 24/7. Problemas críticos em produção não devem aguardar o próximo dia útil.

ViolationPolicySpec

CompliancePercentage Calculation

O compliance é calculado por severity e agregado:

Exemplos YAML Completos

SLO de 99.9% Availability com Burn Rate Alerting

SLA P1=5min Response / 1h Resolution (Business Hours)

Para severidade critical, mesmo com business hours habilitado, considere criar uma regra separada com businessHours.enabled: false. Problemas P1 geralmente exigem resposta 24/7.

SLO com PrometheusQuery Custom (Latency P99)

Grafana Dashboards

A plataforma AIOps disponibiliza 4 dashboards Grafana pré-configurados para visualização de SLOs e SLAs:

SLO Overview

Painel unificado com todos os SLOs, valores atuais, error budget restante e burn rate. Inclui heatmap de burn rate por serviço.

Error Budget Burn-Down

Gráfico burn-down do error budget ao longo do tempo. Mostra tendência e projeção de esgotamento. Linhas de referência para cada threshold de warning.

SLA Compliance Report

Relatório de compliance por severidade e período. Tabela com cada incidente, tempos de resposta/resolução e status de compliance. Exportável para PDF.

Incident Timeline

Timeline de incidentes com detecção, análise, remediação e resolução. Correlação visual com SLO burn rate e SLA clock.
Importando os dashboards:

Prometheus Metrics

O sistema de SLOs e SLAs expõe métricas detalhadas:

Métricas de SLO

Métricas de SLA

Alertas Prometheus recomendados:

Próximo Passo

Notificações e Escalação

Sistema de notificações multi-canal e escalação automática

Workflow de Aprovação

Controle de mudanças com approval policies e blast radius

AIOps Platform

Deep-dive na arquitetura AIOps

K8s Operator

Configuração e CRDs do operator