Sorry for the week delay on this post, but this happened.
The last day of Dev-Jam is always bittersweet for me. I’m sad that it is over, but I also get to see all the wonderful “new shiny” people have been working on. Friday we do demos.
This year we made an attempt to record each demo. Just click on the picture to see it on the YooToobz. Videos, yay!
First up was Ben. Ben is the architect of our new mobile app, OpenNMS Compass. Available for both iOS and Android, it may even turn into our next overall user interface. To do that, it needs graphs, so Ben demonstrated how you can now display graphs in Compass. You can even set “favorites” so they show up on your main screen.
Markus von Rüden spent the week working on something fun: digitizing our mascot and kiwi overlord, Ulf. He demonstrated this work in a game. While it wasn’t completely finished, when Ulf died would he split in half to reveal a kiwi (fruit) center. Cute. Unfortunately, no video and no wiki page (yet).
Christian presented a new way to represent issues within OpenNMS, a “heat map“. It works with both alarms and outages.
Jesse presented something that literally gave me goosebumps. Using our new integration with Newts, you can search for similar data within OpenNMS. So if there is say, a spike, you can search through all the other metrics to see if there are other data sources that spike at the same time.
David S. presented a new northbound interface for sending alarms to other systems via JMS. He used ActiveMQ as a proof of concept.
Ron created a couple of new features. The first was the ability to see polls as events, including how long each poll took (if available). He also added the ability to create a consistent color scheme across performance graphs.
Umberto created another real exciting feature – the ability to export in real time OpenNMS events to Elasticsearch. Since OpenNMS can handle thousands of events a second, sending them to a system built to analyze such data could be very useful. Umberto was sponsored to attend by the OpenNMS Foundation.
A second OpenNMS Foundation attendee was Marcel. He worked on improving data collection for Fortinet devices.
Another cool feature was Dustin’s custom data collection script tool. Sometimes OpenNMS gets criticized for not using SSH to collect data and perform montoring. The reason it doesn’t is rather simple: it’s a stupid idea. It usually requires that you set up keys with null passphrases, and often they connect as root. Despite the security issues, it is also a resource hog and can’t scale. We have always recommended using an extensible SNMP agent like Net-SNMP, but it can be some effort to set up.
Dustin’s feature allows you to put collection scripts in a special folder on the server, and OpenNMS will automatically collect the data. All you need to do then is to add a graph definition and you’re done.
DJ was frustrated in how long it can take to compile OpenNMS if tests are enabled. OpenNMS is heavily instrumented with software tests. These can be broken into “unit” tests and “integration” tests. Maven (the build system used by OpenNMS) can be configured to separate them. Since unit tests should be small and quick, they can be run every time with the integration tests only run for regression.
Finally, Seth presented the work he did this week which was focused on changes needed to support OpenNMS Minion. Minions are little, stand alone processes that can perform basic monitoring and data collection, which is then forwarded up to an OpenNMS Dominion instance.
While the last Dev-Jam always seems to be the best Dev-Jam, I think it was true this year. This work will go along way toward positioning OpenNMS for the coming Internet of Things, and as always it is amazing to see what brilliant people can do when given the opportunity to work together.
We ended the day at Surly Brewing Company. The beer was delicious and the company stimulating. I only got one non-blurry picture, and unfortunately my pants fell down when I stood up to take it.
I hope to see everyone at the OpenNMS Users Conference in September. I promise to keep my pants on.