Investigando um erro de produção
- Liste as exceções abertas recentes: “Show me all open incidents in production from the last 24 hours”
- Obtenha detalhes completos sobre um incidente específico: “Get the details for incident #847 including the stack trace”
- Puxe traces para ver o que aconteceu no nível do código: “Get the error traces for incident #847”
- Documente seus achados: “Add a note to incident #847: investigated the database timeout — connection pool was exhausted during peak traffic”
- Resolva-o: “Close incident #847”
Verificando o que um deploy quebrou
- Liste os erros introduzidos pelo último deploy: “Which new errors did the last deploy to MyStore production introduce?”
- Verifique um deploy específico: “Show only the new errors from deploy a1b2c3d”
- Investigue um deles: “Get the details and error traces for incident #912”
- Verifique novamente mais tarde: “Have any new errors appeared since 09:00 UTC today?”
Analisando uma action lenta
- Obtenha uma visão geral de performance: “Which actions are slowest in the web namespace right now?”
- Puxe traces para o pior caso: “Get traces for BlogPostsController#index from the last hour”
- Inspecione a árvore de spans para encontrar o gargalo: “Show me the full span tree for trace abc123”
- Investigue um span específico: “Get the details for span def456 in trace abc123”
Fazendo triagem de um lote de incidentes
- “Find all open incidents in the background namespace from the last week”
- “Narrow that to incidents whose exception or action name matches ‘Timeout*’”
- “Mark incidents #120, #121, and #122 as work in progress and assign them to Jana”
- “Close all incidents related to ActionMailer — they were fixed in the last deploy”
Pesquisando logs durante um incidente
- “Find all error logs from the last hour”
- “Show me logs where message contains ‘timeout’ on web-1 between 14:00 and 15:00”
- “Get fatal logs from the payments source over the last 30 minutes”
Reconstruindo a jornada de um cliente
Quando um usuário reporta que algo deu errado, a resposta geralmente está espalhada por logs de várias fontes, além de erros e traces. Um agente pode costurar essa linha do tempo para você.- “Get all logs for user.id=4321 from production over the last 24 hours, across every source”
- “Narrow that to the window between 14:00 and 15:30 UTC and group the results by source”
- “List any open exception incidents from production in that same window — anything tagged with user.id=4321?”
- “For incident #903, pull the error traces and walk the span tree”
- “Summarize what happened: which actions did this user hit, what failed, and where did the error originate?”
get_log_lines, get_exception_incidents e get_traces em uma única conversa. A etapa final de resumo é onde o MCP entrega valor — o agente compõe a narrativa, e não você.
Configurando processamento de logs
O AppSignal executa ações em linhas de log durante a ingestão, na ordem que você definir. Um padrão comum é emitir uma métrica, criar um gatilho e depois filtrar — isso garante que o AppSignal capture o sinal antes de descartar a linha de log.- Verifique as ações de log line existentes e sua ordem: use
get_app_resourcescomsections: ["log_line_actions"] - “Create a metrics action that counts log lines where severity is error as log.error_count”
- “Add a trigger action that fires an alert when severity is fatal”
- “Add a filter to drop all health check log lines”
- “Reorder those actions so the metrics action runs first, then the trigger, then the filter”
Detectando um job agendado que parou de rodar
- “List the cron check-ins on MyStore production”
- “Show the recent runs for the nightly-export check-in, and which of them were missed or late”
- “Create a cron check-in for daily-invoices that runs at 02:00 UTC with a 15-minute grace period, and notify the payments-oncall notifier”
Descobrindo onde uma verificação de uptime gasta seu tempo
- Encontre o monitor e seu
id: “List the uptime monitors for this app” - Divida uma verificação por fase: “Get the uptime_monitor_timing timeseries for monitor abc123 in Europe, for every phase, over the last hour”
- Compare as regiões: “Do the same for all regions and tell me which phase differs most between them”
get_metrics_timeseries, que aceita * como valor de phase. Uma consulta de lista precisa de uma fase por requisição.
Criando um gatilho de Anomaly detection
- Descubra as métricas disponíveis: “What metrics are available for my production app?”
- Verifique as tags disponíveis: “What tags are available for response_time?”
- Crie o gatilho: “Create a trigger that fires when mean response time exceeds 500ms for more than 5 minutes, and notify the Slack #alerts channel”
- Arquive um gatilho antigo depois de substituído: use
get_triggerspara encontrar o ID primeiro, depois “Archive the old response_time trigger”
Construindo um dashboard de monitoramento
- “What metrics are available for my production app?”
- “Create a dashboard called ‘API Health’ in production”
- “Add a line chart of p95 response time by action to the API Health dashboard”
- “Add an area chart of error rate broken down by namespace”
- “Add a Big Number tile showing the mean of response_time, formatted as a duration”