Enquête sur une erreur en production
- Lister les exceptions ouvertes récentes : « Show me all open incidents in production from the last 24 hours »
- Obtenir les détails complets sur un incident spécifique : « Get the details for incident #847 including the stack trace »
- Récupérer les traces pour voir ce qui s’est passé au niveau du code : « Get the error traces for incident #847 »
- Documenter vos conclusions : « Add a note to incident #847: investigated the database timeout — connection pool was exhausted during peak traffic »
- La résoudre : « Close incident #847 »
Vérification de ce qu’un deploy a cassé
- Lister les erreurs introduites par le dernier deploy : « Which new errors did the last deploy to MyStore production introduce? »
- Vérifier un deploy spécifique : « Show only the new errors from deploy a1b2c3d »
- Enquêter sur l’un d’eux : « Get the details and error traces for incident #912 »
- Vérifier à nouveau plus tard : « Have any new errors appeared since 09:00 UTC today? »
Profilage d’une action lente
- Obtenir un aperçu des performances : « Which actions are slowest in the web namespace right now? »
- Récupérer les traces pour le pire contrevenant : « Get traces for BlogPostsController#index from the last hour »
- Inspecter l’arbre des spans pour trouver le goulot d’étranglement : « Show me the full span tree for trace abc123 »
- Plonger dans un span spécifique : « Get the details for span def456 in trace abc123 »
Triage d’un lot d’incidents
- « 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 »
Recherche de journaux pendant un incident
- « 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 »
Reconstruction du parcours d’un client
Lorsqu’un utilisateur signale qu’un problème est survenu, la réponse est généralement répartie sur les journaux de plusieurs sources, ainsi que sur les erreurs et les traces. Un agent peut recoller cette chronologie pour vous.- « 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 et get_traces dans une seule conversation. L’étape finale de résumé est là où MCP justifie son intérêt — l’agent compose le récit, pas vous.
Configuration du traitement des journaux
AppSignal exécute les actions de ligne de journal lors de l’ingestion, dans l’ordre que vous définissez. Un modèle courant consiste à émettre une métrique, créer un déclencheur, puis filtrer — cela garantit qu’AppSignal capture le signal avant d’écarter la ligne de journal.- Vérifier les actions de ligne de journal existantes et leur ordre : utilisez
get_app_resourcesavecsections: ["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 »
Détection d’une tâche planifiée qui s’est arrêtée
- « 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 »
Repérage du temps passé par une vérification de disponibilité
- Trouver le moniteur et son
id: « List the uptime monitors for this app » - Décomposer une vérification par phase : « Get the uptime_monitor_timing timeseries for monitor abc123 in Europe, for every phase, over the last hour »
- Comparer les régions : « Do the same for all regions and tell me which phase differs most between them »
get_metrics_timeseries, qui accepte * comme valeur de phase. Une requête de liste nécessite une phase par requête.
Création d’un déclencheur de Anomaly detection
- Découvrir les métriques disponibles : « What metrics are available for my production app? »
- Vérifier les tags disponibles : « What tags are available for response_time? »
- Créer le déclencheur : « Create a trigger that fires when mean response time exceeds 500ms for more than 5 minutes, and notify the Slack #alerts channel »
- Archiver un ancien déclencheur une fois remplacé : utilisez
get_triggerspour trouver d’abord l’ID, puis « Archive the old response_time trigger »
Construction d’un tableau de bord de surveillance
- « 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 »