MongoDB slow operation profiler and visualizer
This java web application collects slow operations from a mongoDB system in order to visualize and analyze them. The software has been presented during the MongoDB User Group Berlin on 4th of June 2013. Slides of the presentation can be found here.
The screenshot below demonstrates how slow operations are visualized: The higher a point or circle on the y-axis, the slower was the execution time of this operation. The greater the diameter of the circle, the more slow operations of this type were executed at this time. While the mouse hovers over the graph, the corresponding slow operations are shown in bold and details of them are displayed on the right-hand side.
Screenshot of the User-Interface
- java 1.6 or newer
- maven 2.0 or newer
- mongoDB 2.0 or newer
- enable profiling on all your mongod's you want to profile
- Checkout/clone the project
- Enter the server addresses, database and collection names in file "mongodb-slow-operations-profiler/src/main/resources/config.properties"
- While being in the in the project folder "mongodb-slow-operations-profiler/", build a war file by executing in a shell: mvn package
- Deploy the resulted war file (e.g. "mongodb-slow-operations-profiler-0.0.1-SNAPSHOT.war") on a java webserver (e.g. tomcat), it will automatically start collecting slow operations. If no slow ops exist, the collector(s) will sleep 1 hour before retrying.
- Read/write status of collecting slow operations can be seen here: http://your-server:your-port/mongodb-slow-operations-profiler-0.0.1-SNAPSHOT/status
- Visualize and analyze slow operations here: http://your-server:your-port/mongodb-slow-operations-profiler-0.0.1-SNAPSHOT/gui
- new: sort legend by count or y-value
- update: Eclipse's Dynamic Web Module facet changed from v2.5 to v3.0 (changes web-app tag in web.xml)
- new: filter by date/time
- new: filter by millis
- change: deprecated tags removed from logback configuration
- bugfix: respect time zone and day light saving time (data are still saved in GMT but now displayed dependent on time zone and day light saving time)
- bugfix: date formatting is now thread safe
- logback configuration file
- maven-war plugin update
- initial release
Third party libraries
- mongo-java-driver: Apache License 2.0
- slf4j: MIT License
- logback: LGPL 2.1
- google-collections (Guava): Apache License 2.0
- jongo: Apache License 2.0
- jackson: Apache License 2.0
- bson4jackson: Apache License 2.0
- dygraph: MIT License
- bootstrap-datetimepicker: Apache License 2.0
This software is licensed under AGPL 3.0. For details about the license, please see file "LICENSE", located in the same folder as this "README.md" file.