Skip to content
A collection of scripts to set up MongoDB test environments and parse and visualize MongoDB log files.
HTML Python Other
Branch: develop
Clone or download

Latest commit

Latest commit 1398942 Mar 8, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Create separate templates for GitHub issue chooser Feb 9, 2020
doc Minor doc fixes Feb 10, 2020
mtools Revert "Wait for each RS to elect a primary (#790)" Mar 9, 2020
tutorials Remove obselete contributing/install information and link to actively Sep 17, 2017
.gitignore Fix#764: JSON serialize crash with bytes instead of str in pattern.py Feb 10, 2020
.nojekyll Fix #458: Add RST documentation project Dec 27, 2017
.travis.yml Fix #744: Add support for Python 3.8 (#745) Dec 20, 2019
CHANGES.rst Update for 1.6.3 release Feb 11, 2020
INSTALL.md Fix #774: Update documentation to reference pip3 instead of pip Jan 28, 2020
LICENSE.md added one more whitespace per line to trigger markdown code block. Sep 10, 2013
MANIFEST.in Fixed installation process to use entry_points.console_scripts to mak… May 31, 2014
README.rst Initial implementation of mtransfer tool (#754) Feb 4, 2020
mtools.png pulled new mtools.png file from develop branch. May 22, 2014
requirements.txt Initial implementation of mtransfer tool (#754) Feb 4, 2020
setup.py Fix #788: require minimum of Python 3.6 in setup.py Feb 11, 2020
test-requirements.txt Fix #543: Enable tox (#553) Dec 8, 2017
tox.ini Set max-line-length to 99 and fix Flake offenders Dec 23, 2019

README.rst

mtools

PyPI version Build Status Python 36 Python 37 Python 38

mtools is a collection of helper scripts to parse, filter, and visualize MongoDB log files (mongod, mongos). mtools also includes mlaunch, a utility to quickly set up complex MongoDB test environments on a local machine, and mtransfer, a tool for transferring databases between MongoDB instances.

mtools box

What's in the box?

The following tools are in the mtools collection:

mlogfilter
slices log files by time, merges log files, filters slow queries, finds table scans, shortens log lines, filters by other attributes, convert to JSON
mloginfo
returns info about log file, like start and end time, version, binary, special sections like restarts, connections, distinct view
mplotqueries
visualize log files with different types of plots (requires matplotlib)
mlogvis
creates a self-contained HTML file that shows an interactive visualization in a web browser (as an alternative to mplotqueries)
mlaunch
a script to quickly spin up local test environments, including replica sets and sharded systems (requires pymongo)
mtransfer
an experimental script to transfer databases between MongoDB instances by copying WiredTiger data files (requires pymongo and wiredtiger)

For more information, see the mtools documentation.

Requirements and Installation Instructions

The mtools collection is written in Python, and most of the tools only use the standard packages shipped with Python. The tools are currently tested with Python 3.6, 3.7, and 3.8.

Some of the tools have additional dependencies, which are listed under the specific tool's section. See the installation instructions for more information.

The mtools suite is only tested with actively supported (non End-of-Life) versions of the MongoDB server. As of January 2020, that includes MongoDB 3.6 or newer.

Recent Changes

See Changes to mtools for a list of changes from previous versions of mtools.

Contribute to mtools

If you'd like to contribute to mtools, please read the contributor page for instructions.

Disclaimer

This software is not supported by MongoDB, Inc. under any of their commercial support subscriptions or otherwise. Any usage of mtools is at your own risk. Bug reports, feature requests and questions can be posted in the Issues section on GitHub.

You can’t perform that action at this time.