Il y a quelques semaines, nous étions à l'événement MongoDB World 2017 à Chicago. Avec les ingénieurs présents, nous avons pu profiter pleinement de toutes les démonstrations et présentations qui étaient organisées et l'une de mes préférées s'intitulait "Using Compass to Diagnose Performance Problems in Your Cluster". MongoDB Compass est un client graphique pour MongoDB. Si vous hébergez votre base documentaire Nuxeo sous MongoDB, c'est un outil que vous devriez prendre le temps de découvrir.

Compass se connecte à votre cluster MongoDB et présente deux onglets - Databases et Performance. L'onglet Databases permet de créer et de parcourir les éléments disponibles sur l'hébergeur. Les statistiques sont données pour les bases de données existantes. Il est également possible d'examiner une base de données en détail et de parcourir ses collections. Dans la base de données nuxeo, on peut voir la collection default où l'arborescence globale des documents est stockée. Si nuxeo-mongodb-ext est installé, on peut également voir les collections pour les répertoires et les rapports d'analyse Nuxeo. En allant encore plus dans les détails d'une collection, on peut travailler avec son schéma, afficher, modifier ou insérer des documents, voir et créer des index, expliquer des requêtes et afficher et modifier des règles de validation.

L'onglet Performance permet d'afficher les indicateurs de performance en temps réel, les collections les plus en vogue (les plus utilisées) et d'inspecter les requêtes les plus anciennes. Toutes ces options permettent à un administrateur Nuxeo d'afficher et d'interagir avec les rapports des bases de données, d'ajouter des index pour améliorer les recherches et d'identifier d'éventuels domaines d'amélioration.

Viewing Nuxeo repository data in MongoDB Compass
Image : données d'une base documentaire Nuxeo dans MongoDB Compass

Pour vous faire une idée du potentiel de l'onglet Performance, j'ai importé quelques milliers de documents texte au hasard à l'aide de l'outil Nuxeo Platform Importer. Au cours de l'import, je pouvais voir les nouveaux documents ajoutés, les requêtes de bases de données réalisées sur ces documents et les mises à jour apportées aux documents lors de la génération des informations plein-texte.

Performance Visualisation while importing random data in Nuxeo
Image : visualisation des performances lors de l'import de documents aléatoires dans Nuxeo

La fonctionnalité la plus utile de Compass pour les utilisateurs Nuxeo est l'ajout d'index. Nuxeo Platform crée automatiquement des index pour les champs usuels tels que ecm:id, ecm:primaryType et ecm:parentId lors de l'initialisation d'une base documentaire. C'est très pratique, mais aucun index n'est créé pour les champs provenant de schémas personnalisés. Actuellement, aucune option native de Nuxeo ne permet de définir des index dans MongoDB, mais ce n'est pas un problème car Compass s'en occupe très bien. Par exemple, un client peut identifier et inspecter d'anciennes requêtes dans l'onglet Performance, utiliser la fonctionnalité Explain Plan pour identifier les champs utilisés dans la requête, et utiliser l'assistant Create Index pour ajouter des index à ces champs.

Vous pouvez regarder l'ensemble de la présentation donnée lors de MongoDB World 2017 ici.

Un grand merci au présentateur de la conférence, Brian Blevins, et à MongoDB pour l'invitation !