dbKoda 1.0 is released! w00t!

For the past year and a bit, a bunch of gifted but socially challenged developers in a dank dungeon in Melbourne Australia have been toiling tirelessly to create a next generation tool for database developers and administrators. Today I’m happy to announce that version1.0 of dbKoda has been reelased!

dbKoda is a modern (JavaScript/Electron framework), open source IDE for MongoDB. It has features to support Development, administration and performance tuning on MongoDB databases. It has a rich feature set, including:

  • Rich text editor with auto-complete, syntax highlighting and code formatting
  • Visual explain plan with indexing advisors
  • A real time performance dashboard
  • Graphical aggregation and command builders
  • One-click access to MongoDB administration commands
  • Disk Storage analysis
  • SQL queries using Apache Drill
  • Data load and unload utilities
  • and a lot of more….

What’s new in 1.0?

We’ve tried hard to listen to our early adopters though surveys and support reach out. One thing that we heard was that while almost everybody likes the look and feel the user interface, some of the more advanced features were hard to find. So we’ve revamped the user interface in a variety of ways. We’ve added quick access toolbars to commonly accessed options like the aggregation builder and performance panel, added left-click targets for what were previously right-click options and allowed all panels to be hidden to maximise screen real estate.

Perhaps more significantly, we added some very powerful features to the real time performance dashboard, which we are now calling Performance Lab. The core feature of the performance lab is the real time dashboard which we introduced in version 0.10:

dbKoda performance dashboard

This dashboard shows you graphically the activity on your server. It shows you how much load you are experiencing, but it doesn’t tell you who or what is generating the load. So, in 1.0 we’ve added diagnostics to help you identify the workloads and connections that are creating the load.

Top connections shows you the connections that have been most active over the last (by default) 30 seconds:

dbKoda top connections

Here we can see the connections at are active on the server, and the most time consuming operations that have been executed on the server in the last period (30 seconds by default). For each operation, we can see the command being executed, and explain plan for that operation and — if appropriate — suggestions for indexes that might improve performance of the operation. Clicking “Use Suggestions” sends the index commands to the editor for testing or execution.

The performance lab also integrates with the MongoDB profiling system. From the profile explorer, you can quickly configure profiling and explore the operations captured by the profiler. One of the problems with looking at raw profiler output is that you’ll typically see the same operation hundreds or thousands of times with different parameters. In the profile explorer we aggregate operations that have the same query shape so that you don’t “lose the forest for the trees”. As with the top connections view, we show the command’s explain plan whenever possible and generate indexing advice if appropriate.

dbKoda profile explorer

We think the performance lab offers the best real time view of MongoDB available today and hope you check it out and tell us what you think.

Other cool stuff

We now generate output in our table view by default (when possible). This means that instead of viewing hard-to-read JSON, you’ll see output rendered nicely as nested tables:

Table view is now the default output mechanism in dbKoda

We now support connecting to MongoDB using docker images. This means you don’t need to install mongo on your desktop, if you’d prefer to use a docker image that includes mongo binaries.

We improved the connection wizard substantially as well. We now have three panels in the connection window:

  • Basic connection that you would use to connect to a stand alone MongoDB instance
  • Cluster connection that you would use to connect to a MongoDB replica set. This supports replica set discovery (eg, you only need to specify one of the nodes in the set, we’ll work out the rest) and replica set specific settings such as read and write concern.
  • The SSH connection panel allows you to specify a SSH connection to your MongoDB server machine. This lets you open a SSH terminal to the host to perform admin commands, supports more statistics in the performance panel and can be used to tunnel to remote MongoDB servers that aren’t directly exposed to your desktop.

We fixed a lot of bugs and minor enhancements as well. 238 JIRA tickets were closed in this development cycle so we hope this is the most stable, performant and capable release of dbKoda yet.

Try it out!

dbKoda is a free and open source product available for download at dbkoda.com. No developers were harmed in the making of this product, and it’s totally open source, gluten free and buzzword compliant. Please check it out and let us know what you think.

To get help or to request features or simply to tell us what you think, visit our support system at https://dbkoda.useresponse.com, on twitter at https://twitter.com/db_koda or at our facebook page at https://www.facebook.com/DBKodaIDE/

To access our source code, visit https://github.com/SouthbankSoftware/dbkoda.