Comment j'utilise Apple Shortcuts pour investiguer 10x plus vite en alerting
Tu es oncall, il est 2h du matin, Opsgenie hurle, et tu as un UUID de trace devant toi. Tu sais qu'il faut le chercher dans Datadog... mais tu dois :
- Copier l'UUID
- Ouvrir Chrome
- Aller sur Datadog
- Chercher la bonne page
- Coller l'UUID
- Lancer la recherche
6 étapes et déjà 45 secondes perdues alors que le service brûle. 😤
Plot twist : Et si je te disais qu'avec un simple raccourci clavier, tu passes de 6 étapes à... 1 seule ? Sélectionne ton UUID, tape ⌘⌥\, et BAM ! Datadog s'ouvre directement sur la bonne trace.
Aujourd'hui, je vais te montrer comment j'ai créé un système intelligent de navigation avec l'app Raccourcis d'Apple qui détecte automatiquement le type d'info (UUID, pod Kubernetes, job ID, etc.) et t'envoie directement au bon endroit. Bienvenue dans le futur de l'investigation ! 🔍
Le problème : L'enfer de l'investigation multi-outils
La réalité d'un SRE en alerting
Une alerte Opsgenie te réveille. Dans le message, tu as :
- Un UUID de trace → à chercher dans Datadog APM
- Un nom de pod K8s → à inspecter dans kubectl
- Un ID de job CI → à vérifier dans GitHub Actions
- Un ID de build → à debug dans Jenkins
- Un Request ID → à tracer dans Grafana
Le workflow actuel (sans automation) :
# Scénario classique à 3h du matin
1. Lire l'alerte Opsgenie → Identifier l'info clé
2. Copier manuellement l'UUID/ID/nom
3. Se rappeler quel outil utiliser (Datadog? K8s? GitHub?)
4. Ouvrir le bon site
5. Naviguer vers la bonne section
6. Coller et chercher
7. Répéter pour chaque info...
---
Temps total : 2-3 minutes PAR info
Stress level : 📈 MAX
Risque d'erreur : Élevé (mauvais outil, typo, etc.)Les stats qui font mal :
- ~15 clics en moyenne pour arriver à la bonne page
- 2.5 minutes perdues par recherche manuelle
- 7-8 recherches en moyenne par incident
- ≈ 20 minutes perdues par incident juste en navigation ! 😱
Pourquoi les outils classiques ne suffisent pas
Tu vas me dire : "Mais j'ai Alfred/Raycast !". Oui, mais :
❌ Alfred/Raycast : Super pour lancer des apps, mais...
- Faut taper la commande + l'argument
- Pas de détection automatique du type
- Configuration complexe pour du multi-outils
❌ Bookmarks Chrome : Pratique, mais...
- Faut toujours naviguer manuellement
- Pas de gestion des paramètres dynamiques
- Lent quand tu as 50+ bookmarks
❌ Clipboard managers : Utiles, mais...
- Pas d'intelligence contextuelle
- Tu dois quand même faire le routing manuelL'app Raccourcis d'Apple, elle, c'est le couteau suisse qui manquait ! 🎯
La solution : Un raccourci intelligent avec détection par regex
Architecture du système
Voici comment fonctionne mon raccourci magique :
Démo en action :

Le flow en détail :
- Tu sélectionnes n'importe quel texte (UUID, ID, nom, etc.)
- Tu tapes
⌘⌥\(raccourci clavier personnalisé) - Le shortcut analyse avec des regex pour identifier le type
- Il ouvre automatiquement la bonne URL avec le bon paramètre
- Profit ! Tu arrives directement là où tu dois être 🎉
Création du raccourci de base
Ouvre l'app Raccourcis sur macOS et crée un nouveau raccourci :

💾 Téléchargement direct : Tu veux gagner du temps ? Télécharge mon raccourci "Detective Mode" prêt à l'emploi ! Tu pourras ensuite le personnaliser selon tes besoins.
📱 Raccourci : "Smart Investigation"
🔑 Raccourci clavier : ⌘⌥\ (Command + Option + \)
---
Actions :
1. Recevoir [Sélection] en entrée depuis [N'importe où]
2. Définir [Texte sélectionné] sur [Entrée du raccourci]
3. Si [Texte sélectionné] correspond à la regex...
(C'est là que la magie opère !)Les patterns de détection intelligents
Voici un tableau récapitulatif des patterns de détection. Chaque regex est optimisée pour éviter les faux positifs :
| Type | Pattern Regex | Exemple | Action automatique |
|---|---|---|---|
| 🔍 UUID Datadog | ^[0-9a-f]{8}-[0-9a-f]{4}-4... | f47ac10b-58cc-4372-a567-... | Ouvre trace APM Datadog |
| 🐳 Pod Kubernetes | ^[a-z0-9]...-[a-z0-9]{8,10}-[a-z0-9]{5}$ | auth-service-7d9f8c6b5-x7k2m | Terminal + kubectl logs -f |
| 🔧 GitHub Actions | ^[0-9]{10,11}$ | 12345678901 | Ouvre GitHub Actions Run |
| 🏗️ Jenkins Build | ^[0-9]{1,6}$ | 42567 | Ouvre Jenkins Job + Build |
| 📊 Grafana Hash | ^[0-9a-f]{16}$ | a1b2c3d4e5f6g7h8 | Ouvre Grafana Explore |
| 🚨 Opsgenie Alert | ^[0-9a-f]{8}-[0-9a-f]{4}-... | 550e8400-e29b-41d4-... | Ouvre Alert Detail |
| 🐋 Docker Container | ^[0-9a-f]{12}$ ou ^[0-9a-f]{64}$ | a1b2c3d4e5f6 | Terminal + docker logs -f |
| 🎫 Jira Ticket | ^[A-Z]{2,10}-[0-9]{1,6}$ | DEVOPS-1234 | Ouvre Jira Issue |
| 🌐 IP Address | ^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$ | 192.168.1.1 | Menu: Ping/Traceroute/Whois |
💡 Note: Les patterns complets sont configurables dans le raccourci. Tu peux ajouter tes propres détections selon tes outils !
Implémentation : Le raccourci complet
Configuration dans Raccourcis Apple
Voici le flow complet du raccourci (je te donne le pseudo-code car l'interface visuelle est difficile à représenter ici) :
🔧 RACCOURCI : "Smart Investigation"
─────────────────────────────────────
1. Recevoir [Texte] depuis [Sélection]
2. Définir variable [Input] = [Texte]
3. Nettoyer [Input] (trim espaces, lowercase si nécessaire)
─────────────────────────────────────
4. SI [Input] correspond à UUID_REGEX
→ Ouvrir URL : https://app.datadoghq.com/apm/trace/[Input]
─────────────────────────────────────
5. SINON SI [Input] correspond à K8S_POD_REGEX
→ Exécuter script Shell :
osascript -e 'tell application "Terminal"
do script "kubectl logs -f [Input] --tail=100"
activate
end tell'
─────────────────────────────────────
6. SINON SI [Input] correspond à GH_JOB_REGEX
→ Ouvrir URL : https://github.com/my-org/my-repo/actions/runs/[Input]
─────────────────────────────────────
7. SINON SI [Input] correspond à JENKINS_REGEX
→ Demander nom du job (variable globale ou menu)
→ Ouvrir URL : https://jenkins.company.com/job/[JOB_NAME]/[Input]
─────────────────────────────────────
8. SINON SI [Input] correspond à OPSGENIE_REGEX
→ Ouvrir URL : https://company.app.opsgenie.com/alert/detail/[Input]
─────────────────────────────────────
9. SINON SI [Input] correspond à GRAFANA_REGEX
→ Ouvrir URL : https://grafana.company.com/explore?query=[Input]
─────────────────────────────────────
10. SINON SI [Input] correspond à DOCKER_REGEX
→ Exécuter Terminal :
docker logs -f [Input] --tail=200
─────────────────────────────────────
11. SINON SI [Input] correspond à IP_REGEX
→ Menu : [Ping] [Traceroute] [Whois]
→ Selon choix, exécuter commande appropriée
─────────────────────────────────────
12. SINON SI [Input] correspond à JIRA_REGEX
→ Ouvrir URL : https://company.atlassian.net/browse/[Input]
─────────────────────────────────────
13. SINON
→ Recherche Google : "site:company.com [Input]"
→ OU Slack search : slack://search?query=[Input]Exemple concret : Détection UUID Datadog
Voici comment configurer la détection d'UUID pour Datadog APM :
Étape 1 : Créer l'action "Si"
Si [Entrée du raccourci] correspond à l'expression régulière
Pattern : ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
Options : ✓ Sensible à la casseÉtape 2 : Construire l'URL
Texte :
https://app.datadoghq.com/apm/trace/[Entrée du raccourci]Étape 3 : Ouvrir dans le navigateur
Ouvrir URL [Texte]Test en conditions réelles :
# Tu as ce message dans Opsgenie :
"Error processing request f47ac10b-58cc-4372-a567-0e02b2c3d479"
# Tu sélectionnes l'UUID, tu tapes ⌘⌥\
# → Chrome s'ouvre instantanément sur la trace Datadog !
Temps économisé : 45 secondes → 2 secondes 🚀Exemple avancé : Gestion des pods Kubernetes
Pour investiguer rapidement un pod problématique :
Action : Exécuter Script Shell
#!/bin/bash
POD_NAME="$1"
# Ouvrir un nouveau terminal avec les logs
osascript <<EOF
tell application "Terminal"
do script "kubectl logs -f $POD_NAME --tail=200 | grep -E 'ERROR|WARN|FATAL'"
activate
end tell
EOFBonus : Menu contextuel pour K8s
Menu : Choisir parmi
- "Logs (-f tail 200)"
- "Describe pod"
- "Get pod events"
- "Exec into pod"
Selon choix :
- Logs : kubectl logs -f [POD] --tail=200
- Describe : kubectl describe pod [POD]
- Events : kubectl get events --field-selector involvedObject.name=[POD]
- Exec : kubectl exec -it [POD] -- /bin/bashCas d'usage avancés
Menu contextuel pour Kubernetes
Au-delà du simple kubectl logs, propose un menu d'actions :
Menu : Choisir parmi
- "Logs (-f tail 200)"
- "Describe pod"
- "Get pod events"
- "Exec into pod"Détection intelligente pour Jenkins
Pour les numéros de build Jenkins, demande quel job :
DICTIONNAIRE_JOBS = {
"deploy-prod": "deployment/prod-pipeline",
"tests-integration": "tests/integration-suite"
}
Menu : Choisir le job → Construire l'URL appropriéeInvestigation IP rapide
Pour une IP détectée, propose plusieurs actions :
#!/bin/bash
# Menu : Ping | Traceroute | Whois | Check Blacklist
# Selon choix, exécute la commande ou ouvre le site appropriéLe gain concret
Comparaison avant/après sur un incident typique :
| Étape | Avant (manuel) | Après (raccourci) |
|---|---|---|
| UUID → Datadog | 35 secondes | 2 secondes ⚡ |
| Pod → Logs K8s | 28 secondes | 3 secondes ⚡ |
| Ticket → Jira | 18 secondes | 2 secondes ⚡ |
| TOTAL | 93 secondes | 7 secondes |
| GAIN | - | 92% plus rapide ! 🚀 |
En un mois : ~33 minutes économisées, zéro erreur de routing, et surtout... beaucoup moins de stress en oncall ! 😌
3 Pro tips pour aller plus loin
1. Historique d'investigation pour les post-mortems
Ajoute un log automatique de chaque recherche :
#!/bin/bash
# Ajoute au raccourci pour tracer ton parcours
echo "$(date '+%Y-%m-%d %H:%M:%S'): $TYPE_DETECTED - $INPUT" >> ~/investigation_history.logPourquoi c'est utile ? Pendant l'incident, tu navigues vite. Avec l'historique, tu peux reconstruire ton raisonnement pour le post-mortem sans te creuser la tête !
2. Mode team : Partage avec toute l'équipe
# Dans Raccourcis :
Fichier → Exporter → SmartInvestigation.shortcut
# Partage via Slack, toute l'équipe en profite ! 🎉Bonus : Configure des variables globales (URLs, repos GitHub) pour que chacun ajuste à son environnement :
URLS = {
"datadog": "https://app.datadoghq.com",
"grafana": "https://grafana.company.com",
"jenkins": "https://jenkins.company.com"
}3. Fallback intelligent si rien ne match
Si aucun pattern ne correspond, propose des options :
Menu contextuel :
- "Rechercher dans Datadog"
- "Rechercher dans Slack"
- "Rechercher dans Google"
- "Copier et continuer manuellement"Comme ça, le raccourci reste utile même pour les cas edge ! 🎯
Conclusion : La productivité, c'est automatiser les trucs chiants
Au final, ce raccourci Apple, c'est un peu comme avoir un assistant personnel qui connaît tous tes outils par cœur et qui ouvre instantanément la bonne page au bon endroit. Plus besoin de réfléchir, de naviguer, de copier-coller... Juste sélectionner et GO !
Les bénéfices concrets :
- -92% de temps de navigation pendant les investigations
- 0 erreur de routing (fini "oops j'ai cherché dans le mauvais outil")
- Flow d'investigation 10x plus fluide
- Stress divisé par 2 en oncall
- Collègues jaloux qui te demandent ta config 😎
Le plus beau ? Une fois configuré, tu n'y penses même plus. Ça devient un réflexe : sélectionner, ⌘⌥\, investiguer. Simple. Rapide. Efficace.
Alors, prêt à transformer tes oncalls en moments de productivité zen ? Ton "toi de 3h du matin" te remerciera ! 🌙
🔥 Challenge bonus : Chronométre ta prochaine investigation avant de configurer le raccourci. Puis remesure après. Envoie-moi tes résultats, je parie que tu divises par 5 minimum !
PS : Mon raccourci s'appelle "Detective Mode" 🕵️ et j'ai configuré Siri pour que je puisse dire "Hey Siri, detective mode" quand j'ai les mains occupées. Bienvenue dans le futur !
Restez en contact
- 📧 Email : tavernetech@gmail.com
- 🐙 GitHub : @DrakkarStorm
- 📺 YouTube : @TaverneTechh
Merci de me suivre dans cette aventure ! 🚀
📝 Note : L'idée originale de ce système d'investigation intelligente ne vient pas de moi. J'ai simplement adapté ce concept pour macOS en utilisant l'app Raccourcis d'Apple, rendant cette approche accessible à tous les utilisateurs Mac sans avoir besoin d'outils tiers.
Cet article a été écrit avec ❤️ pour la communauté DevOps.