Lab 4 — Dashboard unifié logs / métriques / traces
Vous disposez maintenant des trois signaux : traces (Labs 2), métriques système et produit (Lab 3), logs (collectés d’office par la démo). Dans ce lab, vous les rassemblez dans un seul dashboard Grafana : la « vue service » que consulterait un astreinte.
Prérequis
- Labs 1 à 3 terminés.
- Le port-forward des UIs actif (
./scripts/open-ui.sh) — Grafana sur http://localhost:8080/grafana/.
Étapes
- Explorer les datasources déjà câblées :
Dans Grafana : ⚙️ Connections → Data sources. Trois sources correspondent à nos trois signaux — identifiez-les et notez leur type.
- Créer un dashboard vide (Dashboards → New → New dashboard), puis ajouter la variable
service_name:
Settings → Variables → New variable :
- Type
Query, datasource Prometheus - Query :
label_values(calls_total, service_name)
calls_totalest produite par le connector spanmetrics du collecteur (vu au Lab 3) : chaque service tracé a donc automatiquement des métriques de débit/latence — y comprisreview-service, sans l’avoir instrumenté pour les métriques !
- Panel 1 — métriques (Prometheus) : un Time series « Débit de requêtes » :
Ajoutez un second panel « Latence p95 » :
- Panel 2 — logs (OpenSearch) : un panel de type Logs, datasource OpenSearch, requête Lucene :
Panel 3 — traces (Jaeger) : un panel Table (ou Traces), datasource Jaeger, query type Search, service
$service_name, limit 20.Tester la variable : basculez
service_nameentrefrontend,checkoutetreview-service— les trois panels doivent suivre.Exporter le dashboard en JSON (Share → Export → Save to file) : c’est le livrable, à committer dans votre dépôt.
- Bonus — une règle d’alerte : Alerting → New alert rule sur la latence p95 de
$service_name(> 500 ms pendant 2 min). Observez l’étatPending→Firingen chargeant la boutique via le load generator.
Livrable
Le dashboard « vue service » exporté en JSON, avec ses 3 panels pilotés par la variable service_name.