Keyhole is a performance analytics tool, written in GO (Golang), to collect stats and to analyze performance for MongoDB clusters. Golang was chosen to eliminate the needs to install an interpreter or software modules. Use Maobi to create HTML reports from data collected by Keyhole.
Peek at your MongoDB Clusters like a Pro with Keyhole:
Updated post is available at Survey Your Mongo Land.
With Keyhole, experienced users should be able to spot performance issues and to determine whether upgrades are needed quickly from a few minutes of testing and analyzing the results. Keyhole supports TLS/SSL connections.
Several features are available, and they are
- Write Throughputs Test measures the MongoDB performance by writing documents at a high rate to a MongoDB cluster.
- Load test extends the Write throughputs test by issuing different ops against a MongoDB cluster. Stats analytic is also provided
- Memory: resident, virtual, and page faults
- Executor and ops
- Latency: read, write, and command
- Metrics: index keys examined, collection scan, in-memory sort, and ops
- WiredTiger analytic
- Customized load test with a sample document. Uses can load test using their own document format (see simulation.md for details).
- Cluster Info and Sanity Check to display information of a cluster including stats to help determine working set data size.
- Display all indexes and their usages
- Duplicate all indexes to another MongoDB cluster.
- Seed data for demo and educational purposes as a trainer.
- Display ops time and query patterns by parsing logs.
- Display indexes scores of a query shape.
- Monitor WiredTiger Cache in near real time.
- View FTDC Data and scores with a friendly interface.
- MongoDB Atlas API integration.
Refer to wiki for user's guide.
Build and download instructions are available at Build and Download Keyhole.
keyhole --help
./test.sh load
This software is not supported by MongoDB, Inc. under any of their commercial support subscriptions or otherwise. Any usage of keyhole is at your own risk. Bug reports, feature requests and questions can be posted in the Issues section on GitHub.