Web Dashboard
Visão Geral
O Web Dashboard é uma Single Page Application embutida diretamente no binário do operator via Goembed.FS — não requer Node.js, npm ou qualquer build frontend separado.
| Característica | Detalhe |
|---|---|
| Tecnologia | HTML/CSS/JS vanilla (zero dependências externas) |
| Empacotamento | Go embed.FS — compilado no binário |
| Porta | 8090 (configurável via CHATCLI_AIOPS_PORT) |
| Tema | Dark theme (fundo escuro, texto claro) |
| Responsivo | Adapta-se a desktop, tablet e mobile |
| Auto-refresh | Intervalo configuravel: Off, 10s, 30s (padrão), 1m, 2m, 5m — com botao de refresh manual |
| Tabelas ordenáveis | Clique no cabeçalho de qualquer coluna para ordenar (▲ ascendente / ▼ descendente) |
| Ordenação estável | Listas mantêm ordem consistente entre refreshes (incidentes/audit por timestamp, SLOs por nome) |
| Autenticação | Mesma API key do REST API (header X-API-Key) |
| URL | http://<operator-host>:8090/ |
O dashboard consume a mesma API REST documentada em API Reference. Todas as operações disponíveis no dashboard (acknowledge, snooze, approve, reject) são chamadas REST autenticadas.
Arquitetura
Views do Dashboard
O dashboard possui 10 views acessíveis via navegação por tabs:1. Overview
1. Overview
Visão geral da plataforma com métricas agregadas.Componentes:
O Overview fornece consciencia situacional abrangente com metricas de compliance, capacidade e efetividade de remediação.
| Componente | Descrição |
|---|---|
| Stats Cards | 6 cards: Active Issues, Resolved, Remediations (sucesso/total), Success Rate, PostMortems, Pending Approvals |
| Compliance & SLA | Porcentagem de compliance em tempo real, MTTD, MTTR, violações de SLA response/resolution, stats de aprovação |
| Capacity Warnings | Banner de alerta mostrando recursos em risco de esgotamento (urgente/planejado), com recomendações |
| Remediação por Estrategia | Grafico de barras horizontais mostrando taxa de sucesso por tipo de ação |
| Pie Chart (Severidade) | Distribuicao de incidentes por severidade (Critical/High/Medium/Low) |
| Incidentes Recentes | Lista dos 10 incidentes mais recentes com estado, severidade e timestamp |
| Timeline | Grafico temporal de incidentes nas ultimas 24h (barras empilhadas por severidade) |
2. Incidents
2. Incidents
Tabela interativa de todos os incidentes com filtros e ações.Funcionalidades:
Badges de severidade:
Badges de estado:
| Funcionalidade | Descrição |
|---|---|
| Filtros | Severidade, estado, namespace, período (dropdowns no topo) |
| Tabela | Colunas: Nome, Severidade, Estado, Recurso, Namespace, Detectado em, Duração |
| Ordenação | Clique no header da coluna para ordenar (asc/desc) |
| Expansão | Clique na linha para expandir detalhes: análise IA, recomendações, plano de remediação |
| Acknowledge | Botão para reconhecer incidente (requer role operator) |
| Snooze | Botão com seletor de duração (30m, 1h, 2h, 4h, 24h) |
| Paginação | Navegação por páginas com 20 itens por página |
| Severidade | Cor |
|---|---|
| Critical | Vermelho (#ef4444) |
| High | Laranja (#f97316) |
| Medium | Amarelo (#eab308) |
| Low | Azul (#3b82f6) |
| Estado | Cor |
|---|---|
| Detected | Cinza (#6b7280) |
| Analyzing | Azul (#3b82f6) |
| Remediating | Amarelo (#eab308) |
| Resolved | Verde (#22c55e) |
| Escalated | Vermelho (#ef4444) |
3. SLOs
3. SLOs
Cards de SLOs com indicadores visuais de error budget e burn rate.Componentes por SLO:
Thresholds de Burn Rate (Google SRE):
| Componente | Descrição |
|---|---|
| Card | Nome do SLO, serviço, tipo de SLI, target vs. current |
| Error Budget Gauge | Barra de progresso circular mostrando % consumido do error budget. Verde (<70%), Amarelo (70-90%), Vermelho (>90%) |
| Burn Rate Chips | 4 chips: 1h, 6h, 24h, 72h. Cor indica se burn rate excede threshold (Google SRE model) |
| Estado | Badge: healthy (verde), at_risk (amarelo), breached (vermelho) |
| Histórico | Sparkline dos últimos 7 dias de compliance |
| Janela | Threshold | Significado |
|---|---|---|
| 1h | 14.4x | Consome 100% do budget em 5 dias |
| 6h | 6.0x | Consome 100% do budget em 5 dias (confirmação) |
| 24h | 3.0x | Consome 100% do budget em 10 dias |
| 72h | 1.0x | Consome 100% do budget em 30 dias |
4. Approvals
4. Approvals
Lista de aprovações pendentes com ações de aprovar/rejeitar.Funcionalidades:
| Funcionalidade | Descrição |
|---|---|
| Lista Pendentes | Aprovações pendentes no topo, com destaque visual |
| Contexto | Cada aprovação mostra: incidente associado, ação proposta, severidade, confidence da IA |
| Approve | Botão verde. Abre modal com campo obrigatório para nome do aprovador e campo opcional para motivo. |
| Reject | Botão vermelho. Abre modal com campos obrigatórios para nome e motivo da rejeição. |
| Histórico | Tab para ver aprovações históricas (approved/rejected/expired) |
| Expiração | Timer countdown mostrando tempo restante para expiração |
5. AI Insights
5. AI Insights
Visualize todas as analises geradas pela IA para entender como ela raciocinou sobre cada incidente.Funcionalidades:
Esta view e essencial quando um incidente e escalado para ação humana — mostra exatamente o que a IA encontrou, porque recomendou ações especificas, e quais dados de enriquecimento informaram sua analise.Endpoint da API:
| Funcionalidade | Descrição |
|---|---|
| Filtro | Filtrar por nome do incidente para ver insights de um issue específico |
| Tabela | Colunas: Incidente, Provider, Modelo, Confianca, Recomendações, Ações, Gerado em |
| Confianca | Score de confianca colorido: verde (≥85%), amarelo (70-84%), vermelho (<70%) |
| Expansao | Clique na linha para expandir: texto completo da analise, lista de recomendações, ações sugeridas com parâmetros |
| Analise de Logs | Visao expandida mostra achados estruturados dos logs (stack traces, padroes de erro) |
| Analise de Cascata | Mostra cadeia de cascata entre servicos quando detectada |
| Contexto GitOps | Exibe status do Helm/ArgoCD/Flux no momento da análise |
| Blast Radius | Mostra impacto previsto das ações de remediação sugeridas |
GET /api/v1/aiinsights6. Remediations
6. Remediations
Acompanhe todos os planos de remediação com detalhes de execução, tanto baseados em runbook quanto em modo agentico.Funcionalidades:
Endpoint da API:
| Funcionalidade | Descrição |
|---|---|
| Filtros | Dropdown de estado (Pending/Executing/Verifying/Completed/Failed/RolledBack), filtro por nome do incidente |
| Tabela | Colunas: Nome, Incidente, Tentativa, Estado, Modo (Runbook/Agentic), Ações/Steps, Inicio, Duracao |
| Indicador de modo | Modo agentico destacado em vermelho; Modo runbook em texto padrão |
| Expansao | Clique para expandir: descrição da estrategia, lista de ações planejadas, resultado |
| Detalhes agenticos | Para planos agenticos: contagem de steps na tabela, conversa completa via API de detalhe |
| Duracao | Calculada automaticamente do início ao fim |
| Badges de estado | Mesmo esquema de cores dos incidentes: Completed (verde), Executing (amarelo), Failed (vermelho), RolledBack (laranja) |
GET /api/v1/remediations7. Runbooks
7. Runbooks
Visualize todos os runbooks — tanto criados manualmente quanto gerados automaticamente pela IA após remediações bem-sucedidas.Funcionalidades:
Runbooks servem como a “memoria institucional” da IA — quando um incidente similar ocorre no futuro, a plataforma o corresponde a um runbook existente em vez de comecar do zero, reduzindo significativamente o MTTR.Endpoint da API:
| Funcionalidade | Descrição |
|---|---|
| Tabela | Colunas: Nome, Tipo de Sinal, Severidade, Tipo de Recurso, Steps, Max Tentativas, Criado |
| Badge de sinal | Badge colorido mostrando o tipo de sinal que dispara o runbook (oom_kill, pod_not_ready, deploy_failing, etc.) |
| Expansao | Clique na linha para expandir: descrição completa, criterios de trigger, e lista ordenada de steps |
| Detalhes dos steps | Cada step mostra: badge do tipo de acao, descrição, e parâmetros em JSON |
| Auto-gerado | Runbooks são criados automaticamente quando a IA remedia um incidente com sucesso — capturam a estratégia vencedora para reutilizacao |
GET /api/v1/runbooks8. PostMortems
8. PostMortems
Lista de post-mortems com detalhes expansíveis.Funcionalidades:
| Funcionalidade | Descrição |
|---|---|
| Lista | Todos os post-mortems com estado (open/in_review/closed), incidente associado, duração |
| Expansão | Clique para expandir: timeline completa, causa raiz, impacto, ações executadas |
| Lessons Learned | Seção com lições aprendidas (geradas pela IA) |
| Prevention Actions | Checklist de ações preventivas sugeridas |
| Developer Feedback | Formulário inline para o desenvolvedor avaliar a remediação (1-5 estrelas), sobrescrever root cause e adicionar comentários. Após submetido, exibe o feedback com rating visual |
| Review | Botão para marcar como “em revisão” |
| Close | Botão para fechar o post-mortem após revisão |
| Fonte | Badge indicando se foi gerado por remediação agentic ou standard |
9. Clusters
9. Clusters
Cards de clusters monitorados com status de saúde.Componentes por cluster:
| Componente | Descrição |
|---|---|
| Card | Nome do cluster, provedor (EKS/GKE/AKS), versão K8s |
| Status | Badge: healthy (verde), degraded (amarelo), unreachable (vermelho) |
| Métricas | Número de nodes, incidentes ativos, namespaces monitorados |
| Recursos | Barras de uso de CPU e memória (capacity vs. usage) |
| Targets | Lista de watcher targets com contadores de alertas por namespace |
| Last Sync | Timestamp da última sincronização com indicador de freshness |
10. Audit
10. Audit
Log de auditoria pesquisável com exportação.Funcionalidades:
| Funcionalidade | Descrição |
|---|---|
| Busca | Campo de texto para buscar em tipo, recurso, ator, descrição |
| Filtros | Tipo de evento, severidade, período |
| Tabela | Colunas: Timestamp, Tipo, Severidade, Ator, Recurso, Descrição |
| Severidade | Ícones e cores: info (azul), warning (amarelo), critical (vermelho) |
| Exportar | Botão para exportar em JSON ou CSV (requer role admin) |
| Paginação | 50 itens por página |
| Auto-scroll | Novos eventos aparecem no topo com animação de highlight |
Grafana Dashboards
A plataforma AIOps inclui 4 dashboards Grafana pré-configurados em formato JSON, prontos para importação.1. AIOps Overview (aiops-overview.json)
Dashboard principal com visão geral operacional.
Painéis:
| Painel | Tipo | Descrição |
|---|---|---|
| Active Issues | Stat | Número de issues não resolvidos (gauge com thresholds: verde <5, amarelo 5-15, vermelho >15) |
| MTTR | Stat | Tempo médio de resolução em minutos |
| Success Rate | Gauge | Taxa de sucesso de remediação (0-100%) |
| Issues by Severity | Pie Chart | Distribuição de issues por severidade (Critical/High/Medium/Low) |
| Issues by State | Bar Chart | Contagem de issues por estado (Detected/Analyzing/Remediating/Resolved/Escalated) |
| Remediation Actions | Time Series | Ações de remediação ao longo do tempo, separadas por tipo (Restart/Scale/Rollback/Adjust/Delete/Patch) |
| Resolution Duration | Histogram | Distribuição do tempo de resolução com buckets de 1min, 2min, 5min, 10min, 30min |
| Issues Over Time | Time Series | Incidentes criados vs. resolvidos por hora |
| Variável | Tipo | Valores |
|---|---|---|
namespace | Query | Todos os namespaces com issues |
severity | Custom | All, Critical, High, Medium, Low |
interval | Interval | 1m, 5m, 15m, 1h |
2. SLO Burn Rate (slo-burn-rate.json)
Dashboard dedicado a SLOs seguindo o modelo Google SRE.
Painéis:
| Painel | Tipo | Descrição |
|---|---|---|
| Error Budget Gauge | Gauge | Porcentagem de error budget restante por SLO. Thresholds: verde >30%, amarelo 10-30%, vermelho <10% |
| Burn Rate 1h | Time Series | Burn rate na janela de 1 hora com linha de threshold em 14.4x |
| Burn Rate 6h | Time Series | Burn rate na janela de 6 horas com linha de threshold em 6.0x |
| Burn Rate 24h | Time Series | Burn rate na janela de 24 horas com linha de threshold em 3.0x |
| Burn Rate 72h | Time Series | Burn rate na janela de 72 horas com linha de threshold em 1.0x |
| SLA Compliance | Stat | Porcentagem atual de compliance por SLO |
| SLA Violations | Table | Lista de violações com timestamp, SLO afetado, duração e impacto no budget |
| Budget Consumption Over Time | Time Series | Consumo acumulado de error budget ao longo da janela de 30 dias |
3. Incident Timeline (incident-timeline.json)
Dashboard focado no fluxo temporal de incidentes e notificações.
Painéis:
| Painel | Tipo | Descrição |
|---|---|---|
| Critical Incidents | Stat | Contagem de incidentes critical ativos (vermelho pulsante se >0) |
| Escalated Incidents | Stat | Contagem de incidentes escalados |
| Resolved Today | Stat | Incidentes resolvidos nas últimas 24h |
| Incident Timeline | Timeline/Annotations | Visualização temporal de incidentes com cores por severidade |
| Notifications by Channel | Bar Chart | Contagem de notificações enviadas por canal (Slack/PagerDuty/Webhook/Email) |
| Approval Decisions | Pie Chart | Distribuição de decisões de aprovação (Approved/Rejected/Expired) |
| Federation Status | Table | Status de clusters federados com last sync, incidentes ativos e health |
| MTTD Over Time | Time Series | Mean Time to Detect ao longo do tempo |
4. Remediation Stats (remediation-stats.json)
Dashboard detalhado sobre o desempenho das remediações.
Painéis:
| Painel | Tipo | Descrição |
|---|---|---|
| Success Rate Gauge | Gauge | Taxa de sucesso geral de remediação. Thresholds: verde >90%, amarelo 75-90%, vermelho <75% |
| Actions by Type | Bar Chart (horizontal) | Total de ações executadas agrupadas por tipo (RestartDeployment, ScaleDeployment, etc.) |
| Actions by Result | Stacked Bar | Ações por resultado (success/failed) ao longo do tempo |
| Duration p50 | Stat | Mediana do tempo de remediação |
| Duration p90 | Stat | Percentil 90 do tempo de remediação |
| Duration p99 | Stat | Percentil 99 do tempo de remediação |
| Duration Distribution | Histogram | Distribuição do tempo de remediação com buckets |
| Operator Reconciliation | Time Series | Contagem de reconciliações por controller (Issue/Anomaly/AIInsight/Remediation) |
| Reconciliation Errors | Time Series | Erros de reconciliação por controller |
| Reconciliation Duration | Heatmap | Duração das reconciliações por controller (detecta gargalos) |
Instalação dos Dashboards Grafana
Via Grafana Sidecar (Recomendado)
Se você usa o Grafana Helm chart com sidecar habilitado, crie ConfigMaps com o labelgrafana_dashboard: "1":
O sidecar do Grafana detecta automaticamente ConfigMaps com o label
grafana_dashboard: "1" e importa os dashboards sem restart.Via Importação Manual
- Acesse Grafana > Dashboards > Import
- Faça upload do arquivo JSON ou cole o conteúdo
- Selecione o datasource Prometheus
- Clique em Import
ServiceMonitor para Prometheus Operator
Configure o scraping de métricas do operator:Referência de Métricas Prometheus
O operator expõe as seguintes métricas Prometheus para alimentar os dashboards Grafana:| Métrica | Tipo | Labels | Descrição |
|---|---|---|---|
chatcli_operator_issues_total | Counter | severity, state | Total de issues criados por severidade e estado |
chatcli_operator_active_issues | Gauge | namespace | Número de issues ativos (não resolvidos) |
chatcli_operator_issue_resolution_duration_seconds | Histogram | severity | Duração da detecção até resolução |
chatcli_operator_remediation_actions_total | Counter | type, result | Total de ações de remediação por tipo e resultado |
chatcli_operator_remediation_duration_seconds | Histogram | type | Duração das ações de remediação por tipo |
chatcli_operator_anomalies_total | Counter | signal_type, namespace | Total de anomalias detectadas |
chatcli_operator_anomalies_suppressed_total | Counter | strategy | Anomalias suprimidas pelo Noise Reducer por estratégia |
chatcli_operator_ai_analysis_duration_seconds | Histogram | provider, model | Duração das análises por IA |
chatcli_operator_ai_analysis_confidence | Histogram | provider | Distribuição de confidence das análises |
chatcli_operator_ai_tokens_total | Counter | provider, direction | Total de tokens consumidos (direction: input/output) |
chatcli_operator_ai_cost_dollars | Counter | provider | Custo acumulado em dólares por provedor |
chatcli_operator_slo_current_ratio | Gauge | slo_name, service | Ratio atual do SLO (0-1) |
chatcli_operator_slo_error_budget_remaining | Gauge | slo_name | Error budget restante em minutos |
chatcli_operator_slo_burn_rate | Gauge | slo_name, window | Burn rate por janela (1h/6h/24h/72h) |
chatcli_operator_approvals_total | Counter | decision | Total de decisões de aprovação (approved/rejected/expired) |
chatcli_operator_notifications_total | Counter | channel, result | Notificações enviadas por canal e resultado |
chatcli_operator_postmortems_total | Counter | source | Total de post-mortems gerados por fonte (agentic/standard) |
chatcli_operator_reconcile_total | Counter | controller, result | Total de reconciliações por controller e resultado |
chatcli_operator_reconcile_duration_seconds | Histogram | controller | Duração das reconciliações por controller |
chatcli_operator_reconcile_errors_total | Counter | controller | Total de erros de reconciliação por controller |
chatcli_operator_cluster_health | Gauge | cluster, provider | Health do cluster (1=healthy, 0.5=degraded, 0=unreachable) |
chatcli_operator_capacity_cpu_usage_percent | Gauge | resource, namespace | Uso atual de CPU em porcentagem |
chatcli_operator_capacity_memory_usage_percent | Gauge | resource, namespace | Uso atual de memória em porcentagem |
chatcli_operator_capacity_exhaustion_days | Gauge | resource, namespace, type | Dias projetados até esgotamento (type: cpu/memory, -1 se estável) |
Queries Prometheus Úteis
Exemplos de queries PromQL para usar nos dashboards ou alertas:MTTR por severidade (últimas 24h)
MTTR por severidade (últimas 24h)
Taxa de sucesso de remediação
Taxa de sucesso de remediação
Burn rate do SLO (alerta multi-window)
Burn rate do SLO (alerta multi-window)
Custo LLM acumulado por hora
Custo LLM acumulado por hora
Anomalias suprimidas vs. processadas
Anomalias suprimidas vs. processadas
Recursos próximos de esgotamento (menos de 7 dias)
Recursos próximos de esgotamento (menos de 7 dias)
Acesso ao Dashboard
Port-forward (desenvolvimento)
Para acesso local durante desenvolvimento:Acesse:
http://localhost:8090/Próximo Passo
API REST Reference
Referência completa de todos os endpoints consumidos pelo dashboard.
Capacity & Custos
Detalhes do Capacity Planner, Noise Reducer e Cost Tracker.
AIOps Platform
Arquitetura completa do pipeline de operações autônomas.
K8s Operator
Configuração e deployment do operator Kubernetes.