As of today, I’m 100 days away from my 10 year anniversary at MongoDB (!). Each day I’m going try to share one of my community contributions from the past 10 years and perhaps an anecdote if that seems appropriate. I hope you enjoy this slow walk down memory lane and perhaps find some useful MongoDB insights along the way.
It seemed appropriate to start with a fresh open source contribution to a project that was started in 2012 by one of my colleagues, @ThomasR
I started helping with mtools releases in 2016 when Thomas had too many other projects needing his attention, and have continued to contribute (and review contributions) when I have enough round tuits.
Day #1: mtools 1.7.0 release
Share on Twitter: https://twitter.com/stennie/status/1497185811166478338
Per to the mtools documentation:
mtools is a collection of helper scripts to parse, filter, and visualize MongoDB log files (
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.
Astute readers will notice this description covers some rather different use cases: parsing and visualising log files does not have a lot in common with setting up test environments. The common factor is the original author and the convenience of having some “go-to scripts” in one installable Python package.
Originally mtool’s log parsing library was an essential (but fragile) tool for log-based diagnostics in an era when MongoDB server logging was not designed to be easily parseable. However, MongoDB server logging and diagnostics have evolved significantly since then with the introduction of features like Full Time Diagnostic Data Capture (FTDC) in MongoDB 3.2 and structured JSON logging (aka logv2) in MongoDB 4.4. I find MongoDB Atlas a far more convenient home for my development and production clusters, and the built-in monitoring and alerts cover my current requirements.
In modern usage, I still use
mlaunch almost daily to quickly create local test clusters for reproducing community issues with different cluster topologies and server versions.