Dashboards efficaces¶
Concevoir des dashboards lisibles, utiles et adaptés a leur audience.
Principes de design¶
Un bon dashboard répond a une question précisé. S'il répond à tout, il ne répond a rien.
Les 3 critères fondamentaux¶
| Critère | Description |
|---|---|
| Hiérarchie visuelle | Les informations critiques en haut à gauche, détails en bas |
| Densite adaptée | Ni trop charge (illisible), ni trop vide (inutile) |
| Glanceability | Comprehensible en 5 secondes sans lecture approfondie |
Glanceability (règle des 5 secondes)¶
Un opérateur qui ouvre le dashboard en urgence doit pouvoir comprendre l'état du système en moins de 5 secondes. Si ce n'est pas possible, simplifiez.
Un bon dashboard répond a une question
Definissez la question avant de construire le dashboard. Exemple : "Est-ce que l'API de paiement est dégradée ?" plutôt que "Afficher toutes les métriques de l'API".
Dashboards par audience¶
Chaque audience a des besoins différents. Un seul dashboard pour tous = dashboard pour personne.
| Audience | Focus | Métriques typiques |
|---|---|---|
| Opérations / SRE | État en temps réel, diagnostics | Golden signals, erreurs, saturation |
| Management | Tendances, SLO, disponibilité | SLO compliance, MTTR, incidents du mois |
| Développeurs | Comportement applicatif | Latence p99, taux d'erreur par endpoint |
| Sécurité | Anomalies, accès | Tentatives d'authent, trafic anormal |
Hiérarchie des dashboards¶
graph TD
G["Dashboard global\nEtat general du systeme"] --> S["Dashboards service\nVue par domaine metier"]
S --> C["Dashboards composant\nDetail technique"]
C --> D["Debug ad-hoc\nExploration libre"] Concevez du général vers le particulier : le dashboard global est une porte d'entree, pas une encyclopedie.
Template USE : dashboard serveur¶
Pour chaque serveur ou nœud, un dashboard USE couvre :
| Panneau | Métrique | Seuil indicatif |
|---|---|---|
| CPU Utilization | cpu_usage_percent | Alerte > 80% sur 5min |
| CPU Saturation | node_load1 / nb_cores | Alerte > 1.5 |
| Memory Utilization | mem_used / mem_total | Alerte > 90% |
| Memory Saturation | swap_used | Alerte > 0 |
| Disk Utilization | disk_io_percent | Alerte > 85% |
| Network Errors | interface_errors_total | Alerte > 0 |
Template RED : dashboard service¶
Pour chaque service applicatif, un dashboard RED couvre :
| Panneau | Métrique | Seuil indicatif |
|---|---|---|
| Rate (req/s) | http_requests_total (rate) | Référence, pas de seuil fixe |
| Error Rate | http_5xx / http_total | Alerte > 1% |
| Duration p50 | histogram_quantile(0.5) | Référence baseline |
| Duration p99 | histogram_quantile(0.99) | Alerte si > SLO latence |
| Saturation | goroutines / connections | Dépend du service |
Anti-patterns¶
| Anti-pattern | Problème | Solution |
|---|---|---|
| Trop de panneaux | Impossible a lire en urgence | Max 12 panneaux par vue |
| Vanity metrics | Métriques impressionnantes mais inutiles | Ne garder que ce qui déclenche une action |
| Pie charts pour time series | Mauvaise représentation temporelle | Utiliser des graphes en courbe ou barres |
| Échelles non normalisees | Comparaisons trompeuses | Fixer les axes quand pertinent |
| Dashboard unique pour tous | Ne répond a aucune question bien | Créer des vues par audience |
| Pas de legende | Impossible a interpréter sans contexte | Labelliser toutes les series |
Les pie charts pour les time series
Un pie chart ne montre pas l'évolution dans le temps. Pour toute métrique temporelle, utilisez un graphe lineaire ou un bar chart. Reservez les pie charts aux repartitions statiques.
Outils¶
| Outil | Points forts |
|---|---|
| Grafana | Standard open source, multi-datasources, dashboards as code |
| Datadog | SaaS clé en main, correlations automatiques |
| Kibana | Orienté logs/APM, écosystème Elastic |
| Chronograf | Écosystème InfluxDB |
| Perses | Standard CNCF emergent, GitOps-friendly |