Aller au contenu

🚀 Quick Start - Tests dans Grafana

Guide rapide pour voir les résultats de tests dans Grafana.


🤖 Installation Automatique (2 minutes - RECOMMANDÉ)

Avec Ansible (tout automatique !)

cd /Users/loic/Developpement/ProbatioVault/Probatiovault-infra/ansible

# Exécuter le playbook dédié
ansible-playbook -i inventory/dev/hosts.ini setup_test_monitoring.yml

# Ou avec le playbook principal
ansible-playbook -i inventory/dev/hosts.ini playbook.yml --tags integration-tests

Ce qui est automatiquement fait : - ✅ Configuration du Node Exporter textfile collector - ✅ Copie de tous les scripts de tests sur le serveur - ✅ Installation du script export_metrics.sh - ✅ Import automatique du dashboard Grafana - ✅ Configuration complète en une commande !

C'est tout ! Passez directement à l'Étape "Utilisation"


⚡ Installation Manuelle (5 minutes)

Étape 1 : Configurer Node Exporter (1 min)

ssh ubuntu@51.68.126.160

# Créer le répertoire
sudo mkdir -p /var/lib/node_exporter/textfile_collector
sudo chown node_exporter:node_exporter /var/lib/node_exporter/textfile_collector
sudo chmod 755 /var/lib/node_exporter/textfile_collector

# Modifier Node Exporter
sudo sed -i 's|ExecStart=/usr/local/bin/node_exporter|ExecStart=/usr/local/bin/node_exporter --collector.textfile.directory=/var/lib/node_exporter/textfile_collector|' /etc/systemd/system/node_exporter.service

# Redémarrer
sudo systemctl daemon-reload
sudo systemctl restart node_exporter

Étape 2 : Copier le script d'export (30 sec)

# Depuis votre machine locale
cd /Users/loic/Developpement/ProbatioVault/Probatiovault-infra

# Copier le script
scp ansible/tests/export_metrics.sh ubuntu@51.68.126.160:/tmp/
ssh ubuntu@51.68.126.160 'sudo mv /tmp/export_metrics.sh /usr/local/bin/export_test_metrics.sh && sudo chmod +x /usr/local/bin/export_test_metrics.sh'

Étape 3 : Exécuter les tests (2 min)

ssh ubuntu@51.68.126.160

# Aller dans le répertoire des tests
cd /path/to/ansible/tests

# Exécuter les tests (ils exporteront automatiquement les métriques)
sudo bash run_all_tests.sh

Vous verrez :

✓ Test metrics exported to Prometheus
  Metrics available at: http://localhost:9100/metrics

Étape 4 : Vérifier les métriques (30 sec)

# Vérifier Node Exporter
curl http://localhost:9100/metrics | grep integration_test_passed

# Vérifier Prometheus
curl -s 'http://localhost:9090/api/v1/query?query=integration_test_passed' | jq .

Sortie attendue :

{
  "status": "success",
  "data": {
    "result": [
      {
        "metric": {"suite": "api_deployment"},
        "value": [1705140000, "15"]
      }
    ]
  }
}

Étape 5 : Importer le dashboard Grafana (1 min)

Option A : Automatique avec Ansible (recommandé)

cd /Users/loic/Developpement/ProbatioVault/Probatiovault-infra/ansible

# Import automatique du dashboard
ansible-playbook -i inventory/dev/hosts.ini setup_test_monitoring.yml

Le dashboard est automatiquement importé dans Grafana !

Option B : Via l'interface Grafana

  1. Ouvrir Grafana : http://51.68.126.160:3001
  2. Login : admin / your_password
  3. Cliquer sur +Import dashboard
  4. Copier le contenu de ansible/roles/monitoring/files/grafana_dashboard_integration_tests.json
  5. LoadImport

Option C : Via API

# Depuis votre machine locale
cd /Users/loic/Developpement/ProbatioVault/Probatiovault-infra

GRAFANA_URL="http://51.68.126.160:3001"
GRAFANA_USER="admin"
GRAFANA_PASS="your_password"

curl -X POST \
  -H "Content-Type: application/json" \
  -u "$GRAFANA_USER:$GRAFANA_PASS" \
  -d @ansible/roles/monitoring/files/grafana_dashboard_integration_tests.json \
  "$GRAFANA_URL/api/dashboards/db"

✅ Vérification

Dashboard accessible

URL : http://51.68.126.160:3001/d/integration-tests

Vous devriez voir : - ✅ Success Rate : 98% (gauge vert) - ✅ Tests Passed : 163 - ✅ Tests Failed : 2 - ✅ Last Run : X minutes ago - ✅ Graphiques avec données


🔄 Utilisation quotidienne

Exécuter les tests et voir les résultats

# 1. Exécuter les tests
ssh ubuntu@51.68.126.160
cd /path/to/tests
sudo bash run_all_tests.sh

# 2. Attendre 30 secondes (scrape interval Prometheus)
sleep 30

# 3. Consulter Grafana
# http://51.68.126.160:3001/d/integration-tests

Les métriques sont automatiquement exportées et mises à jour dans Grafana !


🐛 Problèmes courants

"No data" dans Grafana

# Vérifier 1 : Métriques dans Node Exporter
curl http://localhost:9100/metrics | grep integration_test

# Si vide, réexécuter les tests
sudo bash run_all_tests.sh

# Vérifier 2 : Prometheus scrape Node Exporter
curl 'http://localhost:9090/api/v1/targets' | jq '.data.activeTargets[] | select(.labels.job=="node")'

# Vérifier 3 : Time range dans Grafana
# Changer le time range à "Last 24 hours" dans le dashboard

Métriques pas à jour

# Attendre le scrape interval (30s par défaut)
sleep 30

# Forcer un refresh dans Grafana (cliquer sur le bouton refresh)

Permission denied

sudo chown -R node_exporter:node_exporter /var/lib/node_exporter
sudo chmod 755 /var/lib/node_exporter/textfile_collector

📊 Voir les métriques

Dans Prometheus

URL : http://51.68.126.160:9090

Requêtes à tester : - integration_test_passed - integration_test_success_rate{suite="all_tests"} - sum(integration_test_failed)

Dans Grafana

URL : http://51.68.126.160:3001/d/integration-tests

Dashboard complet avec : - Gauges - Graphiques - Tableaux - Alertes


🔔 Bonus : Configurer une alerte

Dans Grafana

  1. Ouvrir le dashboard
  2. Éditer le panneau "Success Rate"
  3. Alert tabCreate alert
  4. Condition :
    WHEN avg() OF query(A, 5m, now) IS BELOW 95
    
  5. Message : "Test success rate dropped below 95%!"
  6. Contact point : Email / Slack
  7. Save

Vous serez notifié si le taux de succès descend sous 95% !


📚 Documentation complète

Pour aller plus loin : - docs/GRAFANA_TEST_MONITORING.md - Guide complet - Tests d'intégration - Tous les tests - GRAFANA_INTEGRATION_SUMMARY.md - Vue d'ensemble


✅ Checklist finale

  • Node Exporter configuré avec textfile collector
  • Script export_metrics.sh copié
  • Tests exécutés avec export automatique
  • Métriques visibles dans Node Exporter
  • Métriques dans Prometheus
  • Dashboard Grafana importé
  • Dashboard affiche des données
  • Alertes configurées (optionnel)

Temps total : ~5 minutes Résultat : Dashboard Grafana fonctionnel avec métriques de tests en temps réel !