MongoDB
possède une fonction sophistiquée de profilage. L'enregistrement se fait dans system.profile
collection. Les rondins peuvent être vus depuis :
db.system.profile.find()
Il existe 3 niveaux de journalisation ( source ) :
-
Niveau 0 - le profileur est désactivé, il ne collecte aucune donnée. mongod écrit toujours les opérations plus longues que le seuil slowOpThresholdMs dans son journal. C'est le niveau de profileur par défaut.
-
Niveau 1 - collecte des données de profilage pour les opérations lentes uniquement. Par défaut, les opérations lentes sont celles qui sont plus lentes que 100 millisecondes. Vous pouvez modifier le seuil des opérations "lentes" à l'aide de l'option d'exécution slowOpThresholdMs ou de la commande setParameter. Consultez la section Spécifier le seuil pour les opérations lentes pour plus d'informations.
-
Niveau 2 - collecte des données de profilage pour toutes les opérations de la base de données.
Pour voir dans quel niveau de profilage la base de données fonctionne, utilisez
db.getProfilingLevel()
et pour voir l'état
db.getProfilingStatus()
Pour modifier l'état du profilage, utilisez la commande
db.setProfilingLevel(level, milliseconds)
Où level
fait référence au niveau de profilage et milliseconds
est la durée en ms pendant laquelle les requêtes doivent être enregistrées. Pour désactiver la journalisation, utilisez
db.setProfilingLevel(0)
La requête à rechercher dans la collection de profils système pour toutes les requêtes qui ont pris plus d'une seconde, ordonnée par timestamp descendant sera
db.system.profile.find( { millis : { $gt:1000 } } ).sort( { ts : -1 } )