Skip to main content
O K8s Watcher permite que o ChatCLI monitore múltiplos deployments simultaneamente, coletando métricas de infra e aplicação, logs, eventos e status de pods. O contexto é automaticamente injetado nos prompts do LLM com gestão inteligente de budget para não estourar a janela de contexto.

Arquitetura

Cada ResourceWatcher possui seus próprios collectors (incluindo PrometheusCollector opcional) e todos compartilham um único clientset Kubernetes, minimizando conexões.

Modos de Uso

Arquivo de Configuração Multi-Target

Campos do Target

Flags Completas

chatcli watch

chatcli server (flags do watcher)

O que e Coletado

Collectors por Target

Node Health Collector

O NodeCollector monitora automaticamente a saude dos nodes onde os pods do target estão rodando:
  1. Descobre nodes — via label selector dos pods do target, identifica em quais nodes eles estão schedulados
  2. Coleta condições — todas as 5 condições oficiais do Kubernetes (Ready, DiskPressure, MemoryPressure, PIDPressure, NetworkUnavailable)
  3. Coleta métricas — CPU e memória do node via metrics-server (quando disponível)
  4. Pod capacity — conta pods ativos vs capacidade máxima do node
  5. Cordoned — detecta nodes marcados como unschedulable
Alertas emitidos: O contexto do node e incluido no summary enviado ao LLM, permitindo que a IA correlacione problemas de pod com infraestrutura:

Prometheus Collector (Novo)

O PrometheusCollector scrapa métricas Prometheus diretamente dos pods:
  • Descobre pods do deployment e seleciona 1 pod Ready
  • Faz HTTP GET em http://podIP:port/path (timeout: 5s)
  • Parseia o formato Prometheus text exposition (stdlib, sem dependências)
  • Filtra por glob patterns configurados
  • Ignora NaN, Inf e linhas de comentario
Exemplos de filtros glob:

Gestão de Budget de Contexto (MultiSummarizer)

Com múltiplos targets, o MultiSummarizer garante que o contexto não estoure a janela do LLM:

Algoritmo

1

Pontua cada target

0 = healthy, 1 = warning, 2 = critical
  • Critical: CrashLoopBackOff, OOMKilled, alerts criticos
  • Warning: replicas < desired, error logs, alerts warning
  • Healthy: tudo ok
2

Ordena por prioridade

Critical primeiro, depois warning, depois healthy.
3

Aloca contexto

  • Score >= 1 — contexto completo (~1-3 KB por target)
  • Score == 0 — one-liner compacto (~80 chars por target)
4

Comprime se excede maxContextChars

Comprime targets saudáveis primeiro.
5

Omite se ainda excede

Omite targets saudáveis quando necessário.

Exemplo com 20 Targets (2 com problemas)

Budget total: ~2 KB (detail) + 18 x 80 chars (compact) = ~3.5 KB, dentro do limite de 8 KB.

Detecção de Anomalias

Os alertas são incluidos no contexto enviado ao LLM e influenciam a prioridade de budget do MultiSummarizer.

Observability Store

Os dados coletados são armazenados em um ring buffer por target com janela temporal configurável:
  • Snapshots: Estado completo periodico (pods, deployment, HPA, events, metrics, app metrics)
  • Logs: Logs recentes de cada pod com classificação (info/warning/error)
  • Alertas: Anomalias detectadas com severidade e timestamps

Rotação Automática

Dados mais antigos que a janela temporal (--window) são automaticamente descartados, mantendo o uso de memória constante independente do número de targets.

Comando /watch

Dentro do ChatCLI interativo (local ou remoto), use /watch para ver o estado:

One-Shot com Contexto K8s

Exemplos de Perguntas

Requisitos

  • Kubernetes Cluster: Acesso via kubeconfig ou in-cluster config
  • Permissões RBAC: Leitura de pods, eventos, logs, deployments, HPA, ingresses
  • metrics-server (opcional): Para coleta de CPU/memória
  • Prometheus endpoints (opcional): Apps que expoe /metrics no formato Prometheus text

RBAC

Integração com AIOps

Os alertas do K8s Watcher alimentam automaticamente o pipeline AIOps do Operator. Quando o Operator detecta alertas via GetAlerts RPC, ele cria Anomaly CRs que são correlacionados em Issues, analisados por IA e remediados automaticamente.
Veja AIOps Platform para o fluxo completo.
A partir da v2 da plataforma AIOps, os alertas do Watcher também alimentam:
  • NotificationPolicy para roteamento automático para Slack, PagerDuty, OpsGenie, Email, Webhook e Teams
  • ApprovalPolicy para gate de aprovação antes de remediações em produção
  • ServiceLevelObjective para cálculo de burn rate e error budget
  • NoiseReducer para supressão de alertas repetitivos, sazonais e flapping
Consulte a documentação completa da AIOps Platform para detalhes.

Próximo Passo

Modo Servidor

Configurar o servidor com watcher

K8s Operator

K8s Operator (AIOps)

AIOps Platform

AIOps Platform (deep-dive)

Deploy no Kubernetes

Deploy no Kubernetes