Aller au contenu

Capture et rejeu#

Capture et rejeu avec mongoreplay#

  • Objectif : enregistrer et rejouer les opérations sur MongoDB pour des tests de performance, de charge ou de débogage
  • Fonctionne en interceptant le trafic entre le client et le serveur MongoDB
  • ⚠️ L'outil n'est plus supporté / maintenu depuis la v5.

Installation et prérequis#

  • Disponible dans MongoDB Database Tools
  • Installer MongoDB Database Tools pour utiliser mongoreplay

Capture des opérations avec mongoreplay#

  • Utiliser l'option --record pour capturer les opérations
    • Exemple : mongoreplay record --port 27017 --outputFile traffic_capture.bson
  • Filtre les opérations enregistrées avec l'option --filter
    • Exemple : mongoreplay record --port 27017 --outputFile traffic_capture.bson --filter '{"ns": "myDb.myCollection"}'

Rejeu des opérations avec mongoreplay#

  • Utiliser l'option --playback pour rejouer les opérations capturées
    • Exemple : mongoreplay playback --inputFile traffic_capture.bson --host myMongoHost:27017
  • Modifie le comportement du rejeu avec des options supplémentaires
    • Exemple : mongoreplay playback --inputFile traffic_capture.bson --host myMongoHost:27017 --speed 2 --repeat 3

Limitations et considérations lors de l'utilisation de mongoreplay#

  • Nécessite un accès réseau pour capturer le trafic entre le client et le serveur
  • Peut introduire une latence lors de la capture en temps réel
  • Ne prend pas en charge certaines fonctionnalités, telles que les opérations de changement de flux

Cas d'utilisation et recommandations#

  • Test de charge et de performance pour identifier les goulets d'étranglement et les optimisations possibles
  • Débogage des problèmes de production en rejouant les opérations dans un environnement de test
  • Comparaison de l'impact des modifications de l'infrastructure ou du code sur les performances
  • Recommandation : utiliser mongoreplay en complément d'autres outils de surveillance et de diagnostic de MongoDB

Références#