### Few-shot Prompt for Introductory Kubernetes Paragraph with Style Examples Source: https://github.com/jlui70/aiops-aula/blob/main/prompts/01-engenharia-prompts.md A few-shot prompt for generating an introductory paragraph about Kubernetes for beginners. It includes examples of the desired writing style to guide the model, demonstrating how few-shot can improve adherence to specific tones and styles compared to zero-shot. ```plaintext Escreva um parágrafo introdutório para um artigo sobre Kubernetes para iniciantes, seguindo o tom e estilo dos exemplos abaixo. ## Exemplos do meu estilo de escrita Exemplo 1 (artigo sobre Docker): "Docker mudou a forma como a gente trabalha. Antes, era aquele inferno de 'na minha máquina funciona'. Agora você empacota tudo num container e pronto — roda igual em qualquer lugar. Mas calma, não é mágica. Tem coisa que você precisa entender antes de sair containerizando tudo." Exemplo 2 (artigo sobre CI/CD): "Pipeline de CI/CD é daquelas coisas que todo mundo fala que tem, mas pouca gente tem de verdade. Ter um Jenkins rodando build não é CI/CD — é automação de build. CI/CD de verdade é quando você confia no processo o suficiente pra fazer deploy na sexta-feira sem medo." ## Agora escreva Parágrafo introdutório sobre Kubernetes para iniciantes, mesmo tom dos exemplos acima. ``` -------------------------------- ### Install Dependencies Source: https://github.com/jlui70/aiops-aula/blob/main/boilerplate-aiops-na-pratica/CLAUDE.md Use this command to install project dependencies. ```bash uv sync ``` -------------------------------- ### Start Infrastructure Source: https://github.com/jlui70/aiops-aula/blob/main/boilerplate-aiops-na-pratica/CLAUDE.md Use this command to bring up the PostgreSQL and pgAdmin services using Docker Compose. ```bash docker compose up -d ``` -------------------------------- ### Configure Environment Variables Source: https://github.com/jlui70/aiops-aula/blob/main/boilerplate-aiops-na-pratica/README.md Copy the example environment file and edit it to include your specific configurations, such as the ANTHROPIC_API_KEY. ```bash cp .env.example .env # Edite .env com suas configuracoes (ANTHROPIC_API_KEY, etc) ``` -------------------------------- ### Few-shot Commit Message Generation with Repository Examples Source: https://github.com/jlui70/aiops-aula/blob/main/prompts/01-engenharia-prompts.md Generates a commit message by following the pattern of provided examples from the repository. This ensures consistency in format, prefix, and detail. ```plaintext Gere uma mensagem de commit para as mudanças abaixo, seguindo o padrão dos exemplos. ## Exemplos de commits do repositório - fix: corrige timeout na conexão com Redis quando pool está cheio - feat: adiciona retry com backoff exponencial no client HTTP - refactor: extrai validação de input para middleware dedicado - feat: implementa health check com verificação de dependências externas - fix: resolve race condition no shutdown graceful do worker ## Mudanças para commitar - Adicionado timeout de 30s nas chamadas HTTP para o serviço de pagamento - Adicionado retry com backoff exponencial (3 tentativas) - Adicionado circuit breaker que abre após 5 falhas consecutivas ``` -------------------------------- ### Example HTTP Request for Populating Data Source: https://github.com/jlui70/aiops-aula/blob/main/kube-news/README.md This snippet provides an example of an HTTP request that can be used to populate data into the KubeNews application. It is intended for use with tools like httpie or curl. ```http POST /api/post Content-Type: application/json { "title": "KubeNews", "content": "Plataforma de gerenciamento de notícias construída com Node.js e Express, projetada para execução em ambientes Kubernetes." } ``` -------------------------------- ### Few-shot Log Analysis with Previous Examples Source: https://github.com/jlui70/aiops-aula/blob/main/prompts/01-engenharia-prompts.md Analyzes system logs by following the format, depth, and reasoning of previous analysis examples. This method anchors the model's response to established patterns. ```plaintext Você é um SRE sênior com experiência em Kubernetes. ## Exemplos de análises anteriores ### Exemplo 1 Input: Pods do serviço redis-cache com timeout intermitente. 15 pods compartilhando pool de 10 conexões. Erros concentrados entre 14:00-14:15. Análise: Correlacionei timestamps dos erros com pico de conexões simultâneas. Pool configurado para 10 conexões, 15 pods competindo. Pool esgotado em horário de pico. Output: {"severity": "high", "root_cause": "Redis connection pool exhausted during peak traffic", "evidence": ["timeout errors concentrated 14:00-14:15", "15 pods sharing pool of 10 connections", "no errors outside peak hours"], "action_plan": ["kubectl edit configmap redis-config -n production # increase pool to 20", "Add connection timeout of 5s in application config", "kubectl top pods -n production # monitor pool utilization"], "confidence": "85%"} ### Exemplo 2 Input: Pod image-processor reiniciando a cada ~45min com OOMKilled. Memory limit 512Mi. Consumo de memória crescente linear após cada batch de imagens. Análise: Pod reiniciando a cada ~45min. Consumo de memória crescente linear. Memory leak no processamento de imagens — buffer não liberado após resize. Output: {"severity": "critical", "root_cause": "Memory leak in image processing - buffer not released after resize", "evidence": ["linear memory growth pattern", "OOMKilled every ~45min", "heap dump shows ImageBuffer accumulation"], "action_plan": ["Fix buffer.release() after resize in src/image/processor.go", "kubectl set resources deployment/image-processor --limits=memory=1Gi -n production # temporary mitigation", "Add memory alert at 80% of limit"], "confidence": "90%"} ## Caso atual ### Contexto - Namespace: production - Deployment: api-gateway (3 réplicas) - Status: 2 de 3 pods em CrashLoopBackOff desde 14:32 UTC - Último deploy: 14:30 UTC (atualização de imagem para v2.4.1) - Pod saudável: réplica que não foi atualizada ainda (v2.3.0) ### Logs do pod api-gateway-7d4f8b6c9-xk2mn (--previous) 2026-03-24T14:35:18.112Z [INFO] api-gateway v2.4.1 starting... 2026-03-24T14:35:18.113Z [INFO] Loading configuration from environment variables 2026-03-24T14:35:18.114Z [INFO] APP_ENV=production LOG_LEVEL=info PORT=8080 2026-03-24T14:35:18.115Z [INFO] Initializing database connection pool... 2026-03-24T14:35:18.116Z [ERROR] Failed to initialize database: connection string is empty 2026-03-24T14:35:18.116Z [ERROR] Environment variable DATABASE_URL is not set 2026-03-24T14:35:18.117Z [FATAL] Cannot start without database connection. Exiting. 2026-03-24T14:35:18.117Z [INFO] Shutdown complete. Exit code 1. ### Logs do pod api-gateway-5a3c1e7b2-tn9ws (réplica saudável) 2026-03-24T14:35:52.404Z [INFO] Health check passed: database connected (latency: 1ms) 2026-03-24T14:36:02.405Z [INFO] Health check passed: database connected (latency: 2ms) ### Tarefa Identifique a causa raiz do CrashLoopBackOff, liste as evidências e proponha correção com comandos kubectl. ### Formato de resposta JSON com campos: severity, root_cause, evidence[], action_plan[], confidence ``` -------------------------------- ### Generate Dockerfile Based on Project Analysis Source: https://github.com/jlui70/aiops-aula/blob/main/prompts/02-prompts-claude-code.md Instruct Claude Code to analyze the project and generate a suitable Dockerfile. The AI will automatically identify the stack, port, and start command from project files like package.json and source code. ```prompt Analise o projeto e crie um Dockerfile adequado para essa aplicação. ``` -------------------------------- ### Prompt Detalhado para Análise de Logs Kubernetes Source: https://github.com/jlui70/aiops-aula/blob/main/prompts/01-engenharia-prompts.md Este prompt é usado para demonstrar a diferença entre modelos de IA (Sonnet vs Opus) ao analisar logs de um pod em CrashLoopBackOff no Kubernetes. Ele inclui contexto detalhado do ambiente, logs de pods problemáticos e saudáveis, histórico de deploy e uma tarefa específica com formato de resposta JSON. ```text Você é um SRE sênior com experiência em Kubernetes. ## Contexto - Namespace: production - Deployment: api-gateway (3 réplicas) - Status: 2 de 3 pods em CrashLoopBackOff desde 14:32 UTC - Último deploy: 14:30 UTC (atualização de imagem para v2.4.1) - Pod saudável: réplica que não foi atualizada ainda (v2.3.0) ## Logs do pod api-gateway-7d4f8b6c9-xk2mn (--previous) 2026-03-24T14:35:18.112Z [INFO] api-gateway v2.4.1 starting... 2026-03-24T14:35:18.113Z [INFO] Loading configuration from environment variables 2026-03-24T14:35:18.114Z [INFO] APP_ENV=production LOG_LEVEL=info PORT=8080 2026-03-24T14:35:18.115Z [INFO] Initializing database connection pool... 2026-03-24T14:35:18.116Z [ERROR] Failed to initialize database: connection string is empty 2026-03-24T14:35:18.116Z [ERROR] Environment variable DATABASE_URL is not set 2026-03-24T14:35:18.117Z [FATAL] Cannot start without database connection. Exiting. 2026-03-24T14:35:18.117Z [INFO] Shutdown complete. Exit code 1. ## Logs do pod api-gateway-5a3c1e7b2-tn9ws (réplica saudável) 2026-03-24T14:35:52.404Z [INFO] Health check passed: database connected (latency: 1ms) 2026-03-24T14:36:02.405Z [INFO] Health check passed: database connected (latency: 2ms) ## Histórico de deploy REVISION 4: image update to v2.4.1 (14:30 UTC) ## Tarefa Identifique a causa raiz do CrashLoopBackOff, liste as evidências encontradas nos logs e proponha um plano de correção com comandos kubectl específicos. ## Formato de resposta JSON com campos: severity, root_cause, evidence[], action_plan[], confidence ``` -------------------------------- ### Zero-shot Prompt for Introductory Kubernetes Paragraph Source: https://github.com/jlui70/aiops-aula/blob/main/prompts/01-engenharia-prompts.md A zero-shot prompt requesting an introductory paragraph about Kubernetes for beginners, with instructions for an informal and direct tone. ```plaintext Escreva um parágrafo introdutório para um artigo sobre Kubernetes para iniciantes. Tom informal e direto. ``` -------------------------------- ### Prompt Ingênuo com Apenas Logs Source: https://github.com/jlui70/aiops-aula/blob/main/prompts/01-engenharia-prompts.md Este prompt serve como linha de base para mostrar o resultado de um prompt sem 'Role', 'Contexto', 'Tarefa' ou 'Output' definidos. O modelo recebe apenas dados brutos (logs) e produz uma resposta genérica e superficial. ```text Analise este log: 2026-03-24T14:35:18.112Z [INFO] api-gateway v2.4.1 starting... 2026-03-24T14:35:18.113Z [INFO] Loading configuration from environment variables 2026-03-24T14:35:18.114Z [INFO] APP_ENV=production LOG_LEVEL=info PORT=8080 2026-03-24T14:35:18.115Z [INFO] Initializing database connection pool... 2026-03-24T14:35:18.116Z [ERROR] Failed to initialize database: connection string is empty 2026-03-24T14:35:18.116Z [ERROR] Environment variable DATABASE_URL is not set 2026-03-24T14:35:18.117Z [FATAL] Cannot start without database connection. Exiting. 2026-03-24T14:35:18.117Z [INFO] Shutdown complete. Exit code 1. ``` -------------------------------- ### ReAct Prompt for Travel Itinerary Source: https://github.com/jlui70/aiops-aula/blob/main/prompts/01-engenharia-prompts.md This prompt guides an LLM to create a travel itinerary by actively researching information like weather, prices, and distances, following a Thought/Action/Observation loop for each decision. ```plaintext Monte um roteiro de 5 dias em Portugal para um casal, orçamento moderado, em junho. Siga o padrão de investigação abaixo para cada decisão: - **Thought**: o que você sabe e o que precisa descobrir antes de decidir - **Action**: pesquise na internet a informação que precisa (clima, preços, distâncias, horários) - **Observation**: registre o que encontrou - Repita até ter informação suficiente para montar o roteiro Não assuma nada — pesquise antes de recomendar. Para cada escolha (cidade, passeio, restaurante), mostre o raciocínio e a pesquisa que justificou a decisão. ``` -------------------------------- ### Iterate Dockerfile with Best Practices Source: https://github.com/jlui70/aiops-aula/blob/main/prompts/02-prompts-claude-code.md Refine an existing Dockerfile by providing specific instructions for improvements such as using an alpine base image, optimizing layer caching, creating a .dockerignore, and using a non-root user. ```prompt Melhore esse Dockerfile aplicando boas práticas: - Use a variante alpine da imagem base - Otimize o cache de layers separando a cópia do package.json da cópia do código - Crie um .dockerignore adequado - Use um usuário não-root ``` -------------------------------- ### List Recent Cluster Events (MCP) Source: https://github.com/jlui70/aiops-aula/blob/main/prompts/02-prompts-claude-code.md Retrieve recent cluster events, grouped by type, with warnings highlighted. This provides a more organized and contextual view than raw `kubectl get events`. ```prompt Quais eventos recentes aconteceram no cluster? Agrupe por tipo e destaque os warnings. ``` -------------------------------- ### Apply Database Migrations Source: https://github.com/jlui70/aiops-aula/blob/main/boilerplate-aiops-na-pratica/CLAUDE.md Apply database migrations after setting up models and configuring Alembic. ```bash uv run alembic upgrade head ``` -------------------------------- ### Generate Contextual README Source: https://github.com/jlui70/aiops-aula/blob/main/prompts/02-prompts-claude-code.md Generate a project README.md file using AI that reflects the actual project state, including stack, environment variables, deployment instructions, and endpoints. The AI has access to the project's files. ```prompt Gere um README.md para o projeto com as seguintes seções: - Descrição do projeto e stack - Variáveis de ambiente necessárias - Como executar com Docker Compose - Como fazer deploy no Kubernetes - Endpoints disponíveis (/health, /ready, /) - Estrutura do projeto ``` -------------------------------- ### Agent Prompt for Kubernetes Root Cause Analysis Source: https://github.com/jlui70/aiops-aula/blob/main/boilerplate-aiops-na-pratica/docs/prds/002-agente-analise-causa-raiz.md This prompt defines the persona, rules, investigation steps, error handling, severity levels, and response format for the AI agent. It guides the agent on how to interact with Kubernetes resources to diagnose issues. ```markdown # Relatorio de Diagnostico Kubernetes ## Resumo | Total | Criticos | Altos | Medios | Baixos | |-------|----------|-------|--------|--------| | X | X | X | X | X | --- ## Problema 1: [causa raiz resumida] - **Severidade:** CRITICO | ALTO | MEDIO | BAIXO - **Namespace:** namespace-afetado - **Recursos Afetados:** pod1, deployment/nome ### Causa Raiz Descricao clara do problema. ### Evidencias - evidencia 1 - evidencia 2 ### Solucao Recomendada Acao especifica para corrigir. ### Comando Sugerido kubectl patch deployment nome -n namespace --type=merge -p '{"spec":...}' Repita a secao para cada problema. Responda APENAS com o relatorio markdown. ``` -------------------------------- ### AI Ops Prompt with Role, Context, and Logs Source: https://github.com/jlui70/aiops-aula/blob/main/prompts/01-engenharia-prompts.md This prompt enhances the previous one by adding environmental context (namespace, deployment status, recent deploy) and logs from both failing and healthy pods. This allows for more sophisticated correlation and analysis. ```prompt Você é um SRE sênior com experiência em Kubernetes. ## Contexto - Namespace: production - Deployment: api-gateway (3 réplicas) - Status: 2 de 3 pods em CrashLoopBackOff desde 14:32 UTC - Último deploy: 14:30 UTC (atualização de imagem) - Pod saudável: réplica que não foi atualizada ainda ## Logs do pod api-gateway-7d4f8b6c9-xk2mn (--previous) 2026-03-24T14:35:18.112Z [INFO] api-gateway v2.4.1 starting... 2026-03-24T14:35:18.113Z [INFO] Loading configuration from environment variables 2026-03-24T14:35:18.114Z [INFO] APP_ENV=production LOG_LEVEL=info PORT=8080 2026-03-24T14:35:18.115Z [INFO] Initializing database connection pool... 2026-03-24T14:35:18.116Z [ERROR] Failed to initialize database: connection string is empty 2026-03-24T14:35:18.116Z [ERROR] Environment variable DATABASE_URL is not set 2026-03-24T14:35:18.117Z [FATAL] Cannot start without database connection. Exiting. 2026-03-24T14:35:18.117Z [INFO] Shutdown complete. Exit code 1. ## Logs do pod api-gateway-5a3c1e7b2-tn9ws (réplica saudável) 2026-03-24T14:35:52.404Z [INFO] Health check passed: database connected (latency: 1ms) 2026-03-24T14:36:02.405Z [INFO] Health check passed: database connected (latency: 2ms) ## Histórico de deploy REVISION 4: image update to v2.4.1 (14:30 UTC) Analise este cenário. ``` -------------------------------- ### Arquitetura do Sistema de Gerenciamento de Projetos Source: https://github.com/jlui70/aiops-aula/blob/main/projetinho/docs/prd-001-gerenciamento-projetos.md Diagrama de arquitetura mostrando a interação entre Browser, Django, PostgreSQL, Celery, Redis, Slack API, GitHub Webhooks e Cron Jobs. O sistema utiliza Django com Gunicorn para a aplicação web, PostgreSQL como banco de dados, Celery com Redis para processamento assíncrono e é implantado em Kubernetes. ```text ┌─────────────┐ ┌──────────────┐ ┌─────────────────┐ │ Browser │────▶│ Django │────▶│ PostgreSQL │ │ (Templates) │◀────│ (Gunicorn) │◀────│ │ └─────────────┘ └──────┬───────┘ └─────────────────┘ │ ┌──────┴───────┐ │ Celery + │ │ Redis │ │ (async jobs)│ └──────┬───────┘ │ ┌────────────┼────────────┐ ▼ ▼ ▼ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ Slack │ │ GitHub │ │ Cron │ │ API │ │ Webhooks │ │ Jobs │ └──────────┘ └──────────┘ └──────────┘ ``` -------------------------------- ### Agent Prompt for Kubernetes Correction Source: https://github.com/jlui70/aiops-aula/blob/main/boilerplate-aiops-na-pratica/docs/prds/004-agente-correcao-automatica.md This prompt guides the LangChain agent to act as an AIOps specialist for Kubernetes, following the ReAct pattern for reasoning, execution, and observation. It includes specific rules to prevent destructive actions and outlines the correction cycle. ```prompt Voce e um agente AIOps especializado em correcao de problemas em clusters Kubernetes. Voce opera no padrao ReAct: para cada acao, primeiro raciocine, depois execute, depois observe o resultado. Abaixo esta o relatorio de diagnostico com as correcoes recomendadas: {report_markdown} ## REGRAS - Execute APENAS as correcoes descritas no relatorio. Nao invente acoes extras. - NUNCA delete namespaces, PersistentVolumeClaims ou recursos em kube-system. - NUNCA escale deployments para 0 replicas (a menos que o relatorio peca explicitamente). - Se um recurso nao existir mais, registre e passe ao proximo passo. - NUNCA chame a mesma ferramenta com os mesmos parametros duas vezes. - Se uma ferramenta falhar 2 vezes, registre o erro e passe ao proximo passo. ## COMO CORRIGIR (padrao ReAct) Para CADA passo de correcao do relatorio, siga este ciclo: ### 1. RACIOCINAR Antes de agir, responda mentalmente: - Qual e o estado atual esperado do recurso? - Qual acao vou executar e por que? - O que pode dar errado? ### 2. VERIFICAR ESTADO ATUAL Use kubectl_get ou kubectl_describe para confirmar que o problema ainda existe. - Se o problema ja foi resolvido, registre como "Ja resolvido" e pule para o proximo. ### 3. EXECUTAR A CORRECAO Use a ferramenta apropriada (kubectl_patch, kubectl_apply, kubectl_scale, kubectl_rollout, etc.) ``` -------------------------------- ### Structured Kubernetes Cluster Analysis with Chain-of-Thought Source: https://github.com/jlui70/aiops-aula/blob/main/prompts/02-prompts-claude-code.md This prompt guides an AI through a structured, multi-step analysis of a Kubernetes cluster using explicit Chain-of-Thought. It ensures a comprehensive review of inventory, node health, events, and logs before generating a detailed report for Discord. ```plaintext Você é um SRE experiente fazendo a análise periódica do cluster Kubernetes. Siga estes passos de raciocínio na ordem, um de cada vez: Passo 1 - Inventário: Liste todos os pods de todos os namespaces com seu status atual. Conte quantos estão Running, quantos estão com problema (CrashLoopBackOff, Error, Pending, OOMKilled) e quantos restarts recentes existem. Passo 2 - Saúde dos nodes: Para cada node, verifique as conditions (Ready, DiskPressure, MemoryPressure, PIDPressure) e a capacidade atual vs. alocada de CPU e memória. Passo 3 - Eventos recentes: Colete os eventos dos últimos 10 minutos. Separe Normal de Warning. Agrupe os warnings por recurso afetado. Passo 4 - Logs dos pods com problema: Para cada pod identificado com problema no Passo 1, leia os últimos logs (incluindo logs do container anterior se estiver em CrashLoopBackOff). Identifique o erro principal. Passo 5 - Diagnóstico: Com base nos passos anteriores, cruze as informações — correlacione eventos com estado dos pods e logs. Para cada problema, identifique a causa raiz provável. Passo 6 - Relatório: Gere o relatório final e envie como embed no canal #infra do Discord com: - Título: "Análise do Cluster - [data/hora atual]" - Cor: verde se tudo ok, amarelo se há warnings, vermelho se há erros críticos - Campo "Resumo Executivo": visão geral em 2-3 linhas com a conclusão principal - Campo "Inventário": total de pods por status (Running: X, Problema: Y) - Campo "Saúde dos Nodes": status de cada node (ok ou alerta) - Campo "Pods com Problema": para cada um — nome, namespace, status, causa raiz identificada - Campo "Warnings Ativos": lista agrupada por tipo - Campo "Recomendações": ações sugeridas ordenadas por prioridade ``` -------------------------------- ### Prompt Genérico sobre 'Manga' Source: https://github.com/jlui70/aiops-aula/blob/main/prompts/01-engenharia-prompts.md Este prompt demonstra a resposta genérica de um modelo de IA quando a pergunta é simples e não fornece contexto ou um 'Role' específico para o modelo assumir. ```text O que é manga? ``` -------------------------------- ### Explain Project Structure Source: https://github.com/jlui70/aiops-aula/blob/main/prompts/02-prompts-claude-code.md Use this prompt to have Claude Code automatically analyze a project's structure, identifying key directories and files without explicit stack information. ```prompt Explique a estrutura deste projeto. Quais são os principais diretórios e arquivos? ``` -------------------------------- ### Run Application Source: https://github.com/jlui70/aiops-aula/blob/main/boilerplate-aiops-na-pratica/CLAUDE.md Command to run the FastAPI application using Uvicorn. ```bash uv run uvicorn my_agent_app.main:app --host 0.0.0.0 --port 8000 ``` -------------------------------- ### Composed Kubernetes and Discord Alerting Source: https://github.com/jlui70/aiops-aula/blob/main/prompts/02-prompts-claude-code.md This prompt demonstrates composability by instructing an AI to analyze Kubernetes pod status and send a formatted embed report to a Discord channel. The AI autonomously decides which tools to use for data collection and reporting. ```plaintext Analise o estado atual do cluster Kubernetes. Liste todos os pods de todos os namespaces, identifique quais estão com problemas (erro, CrashLoopBackOff, restarts recentes) e envie um resumo formatado como embed no canal #alertas do Discord. Use cor verde se tudo estiver ok, amarelo se houver warnings, e vermelho se houver erros críticos. ``` -------------------------------- ### Run FastAPI Application Source: https://github.com/jlui70/aiops-aula/blob/main/boilerplate-aiops-na-pratica/README.md Execute the FastAPI application using uvicorn, specifying the host and port. ```bash uv run uvicorn meu_agente.main:app --host 0.0.0.0 --port 8000 ``` -------------------------------- ### Prompt com Role de Estilista sobre 'Manga' Source: https://github.com/jlui70/aiops-aula/blob/main/prompts/01-engenharia-prompts.md Este prompt reforça a importância do 'Role', mostrando que a mesma pergunta ('O que é manga?') resulta em uma resposta completamente diferente quando o modelo assume a persona de um estilista de moda. ```text Você é um estilista de moda. O que é manga? ``` -------------------------------- ### List Kubernetes Pods with Status (MCP) Source: https://github.com/jlui70/aiops-aula/blob/main/prompts/02-prompts-claude-code.md Use the Model-Command-Pattern (MCP) to list all pods in the default namespace and their current status. This interacts with Kubernetes via a structured tool call, not direct kubectl. ```prompt Liste todos os pods do namespace default com seu status atual. ``` -------------------------------- ### Zero-shot Kubernetes Log Analysis Prompt Source: https://github.com/jlui70/aiops-aula/blob/main/prompts/01-engenharia-prompts.md A prompt for zero-shot log analysis in a Kubernetes environment. It provides context about a failing deployment, logs from different pods, and tasks the model to identify the root cause, evidence, and propose a fix in a specific JSON format. ```plaintext Você é um SRE sênior com experiência em Kubernetes. ## Contexto - Namespace: production - Deployment: api-gateway (3 réplicas) - Status: 2 de 3 pods em CrashLoopBackOff desde 14:32 UTC - Último deploy: 14:30 UTC (atualização de imagem para v2.4.1) - Pod saudável: réplica que não foi atualizada ainda (v2.3.0) ## Logs do pod api-gateway-7d4f8b6c9-xk2mn (--previous) 2026-03-24T14:35:18.112Z [INFO] api-gateway v2.4.1 starting... 2026-03-24T14:35:18.113Z [INFO] Loading configuration from environment variables 2026-03-24T14:35:18.114Z [INFO] APP_ENV=production LOG_LEVEL=info PORT=8080 2026-03-24T14:35:18.115Z [INFO] Initializing database connection pool... 2026-03-24T14:35:18.116Z [ERROR] Failed to initialize database: connection string is empty 2026-03-24T14:35:18.116Z [ERROR] Environment variable DATABASE_URL is not set 2026-03-24T14:35:18.117Z [FATAL] Cannot start without database connection. Exiting. 2026-03-24T14:35:18.117Z [INFO] Shutdown complete. Exit code 1. ## Logs do pod api-gateway-5a3c1e7b2-tn9ws (réplica saudável) 2026-03-24T14:35:52.404Z [INFO] Health check passed: database connected (latency: 1ms) 2026-03-24T14:36:02.405Z [INFO] Health check passed: database connected (latency: 2ms) ## Tarefa Identifique a causa raiz do CrashLoopBackOff, liste as evidências e proponha correção com comandos kubectl. ## Formato de resposta JSON com campos: severity, root_cause, evidence[], action_plan[], confidence ``` -------------------------------- ### Generate Shopping List with CoT Source: https://github.com/jlui70/aiops-aula/blob/main/prompts/01-engenharia-prompts.md Use CoT to prompt the model to calculate quantities for a barbecue shopping list, justifying each item with calculations. ```plaintext Monte uma lista de compras para um churrasco para 8 pessoas. Pense passo a passo: 1. Estime o consumo por pessoa de cada tipo de carne (considere 400g/pessoa como referência) 2. Calcule a quantidade total e divida entre os tipos de carne 3. Adicione acompanhamentos proporcionais ao número de pessoas 4. Inclua bebidas considerando 3 horas de evento 5. Não esqueça itens de preparo (carvão, gelo, etc.) Para cada item, mostre o cálculo que justifica a quantidade. ```