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 :
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 ! 🔍
Une alerte Opsgenie te réveille. Dans le message, tu as :
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...
---
Les stats qui font mal :
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 ! 🎯
Voici comment fonctionne mon raccourci magique :
Démo en action :
Le flow en détail :
⌘⌥\ (raccourci clavier personnalisé)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 !)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 | ou |
💡 Note: Les patterns complets sont configurables dans le raccourci. Tu peux ajouter tes propres détections selon tes outils !
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
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 🚀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/bashAu-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"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éePour 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é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 ! 😌
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 !
# 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"
}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 ! 🎯
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 :
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 !
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.
^[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 |