Archive for the 'OpenNMS – general' Category

OpenNMS 14.0.2 Released

Thursday, December 11th, 2014

Today we released version 14.0.2 of OpenNMS. It is a recommended upgrade for all OpenNMS 14 users because is addresses a memory leak caused by the version of Vaadin we were using.

Here is a list of all the changes.

Sub-task

  • [NMS-7238] – Citrix Netscaler trap events

Bug

  • [NMS-6551] – Syslog Northbounder throws exceptions on certain alarms
  • [NMS-7073] – ICMP availability with custom packet size doesn't work with JNI
  • [NMS-7092] – Node page for a switch or router is unusable with Enhanced Linkd enabled
  • [NMS-7130] – Vaadin applications show Page Not Found error
  • [NMS-7186] – The XML Collector is not storing the proper data for node-level resources
  • [NMS-7187] – The XML Collection Handler is caching the resourceTypes
  • [NMS-7190] – Edit an existing scheduled outage from node's page doesn't work
  • [NMS-7193] – The report "Total Bytes Transferred By Interface" is not working with RRDtool
  • [NMS-7195] – When the DNS name of a discovered node changes, Provisiond doesn't update the node label.
  • [NMS-7218] – Null pointer exception removing services from node
  • [NMS-7227] – Some GWT pages are not working on IE
  • [NMS-7231] – The downtime model never removes the nodes when it is instructed to do it
  • [NMS-7243] – XML collector in JSON mode assumes all element content is String
  • [NMS-7245] – NPE on "manage and unmanage services and interfaces"
  • [NMS-7250] – Clicking On View Node Link Detailed Info Give java.lang.IllegalArgumentException

Enhancement

  • [NMS-7194] – Move the "Add new outage" to the top of the page.
  • [NMS-7230] – The Wallboard app makes OpenNMS unusable after a few days even if it is not used.
  • [NMS-7237] – Mikrotik RouterOS trap definitions

Test Driven Development

Friday, November 7th, 2014

One of the things that bothers me a lot about the software industry is this idea that proprietary software is somehow safer and better written than open source software. Perhaps it is because a lot of people still view software as “magic” and since you can’t see the code, is must be more “magical”. Or perhaps is it because people assume that something you have to pay for must be better than something that is free.

I’ve worked for and with a number of proprietary software companies, so I’ve seen how the sausage is made, and in some cases you don’t want to know. Don’t get me wrong, I’ve seen well managed commercial software companies that produce solid code because in the long run solid code is better and costs less, but I’ve also seen the opposite done simply to get a product to market quickly.

With open source, at least if you expect contribution, you have to produce code that is readable. It also helps if it is well written since good programmers respect and like working with other good programmers. It’s out there for everyone to see, and that puts extra demands on its quality.

In the interest of making great code, many years ago we switched to the Spring framework which had the benefit that we could start writing software tests. This test driven development is one reason OpenNMS is able to stay so stable with lots of code changes and a small test team.

What’s funny is that we’ve talked to at least two other companies who started implementing test driven development but then dropped it because it was too hard. It wasn’t easy for us, either, but as of this writing we run 5496 tests every time something changes in the main OpenNMS application, and that doesn’t include all of the other branches and projects such as Newts. We use the Bamboo product from Atlassian to manage the tests so I want to take this opportunity to thank them for supporting us.

OpenNMS 14 contained some of the biggest code changes in the platform’s history but so far it has been one of the smoothest releases yet. While most of that was due to to the great team of developers we have, part of it was due to the transparency that the open source process encourages.

Commercial software could learn a thing or two from it.

OpenNMS 14 Timelines

Wednesday, November 5th, 2014

I often talk about how OpenNMS is a platform and not just an application, and with the release of OpenNMS 14 there is a lovely way to demonstrate the difference.

There is a cool little GUI improvement that I believe was started at last year’s Dev Jam which provides graphical timeline for outages. So now instead of having to look at the outage table on a node’s page, you can just look at the service availability section.

Cool, huh? What you may not realize is that instead of hardcoding the feature the timelines are rendered through ReST. The GUI sends a ReST request to the server which returns the graphic information. Let’s examine the “Update” service above.

The query

/opennms/rest/timeline/image/46/172.20.1.38/Update/1415119622/1415206023/480

results in:

with a format of:

/opennms/rest/timeline/image/{nodeId}/{ipAddress}/{serviceName}/{start}/{end}/{width}

Even the header graphic is done the same way

/opennms/rest/timeline/header/1415119622/1415206023/480

results in:

with a format of:

/opennms/rest/timeline/header/{start}/{end}/{width}

Of course, assembling all of that can be tedious, so this query:

/opennms/rest/timeline/html/46/172.20.1.38/Update/1415119622/1415206023/480

with a format of:

/opennms/rest/timeline/html/{nodeId}/{ipAddress}/{serviceName}/{start}/{end}/{width}

will create the whole HTML code needed to render the timeline:

document.write('<img src="/opennms/rest/timeline/image/46/172.20.1.38/Update/1415119622/1415206023/480" usemap="#46-172.20.1.38-Update">
<map name="46-172.20.1.38-Update"><area shape="rect" coords="128,2,412,18" href="/opennms/outage/detail.htm?id=153740" alt="Id 153740"
title="2014-11-04 18:13:24.628"><area shape="rect" coords="-111,2,-26,18" href="/opennms/outage/detail.htm?id=153724" alt="Id 153724" 
title="2014-11-04 06:12:56.322"><area shape="rect" coords="-2051,2,-1925,18" href="/opennms/outage/detail.htm?id=153348" alt="Id 153348" 
title="2014-10-31 06:13:11.421"><area shape="rect" coords="-2291,2,-2291,18" href="/opennms/outage/detail.htm?id=153289" alt="Id 153289" 
title="2014-10-30 18:11:33.006"><area shape="rect" coords="-2691,2,-2397,18" href="/opennms/outage/detail.htm?id=153258" alt="Id 153258" 
title="2014-10-29 22:13:27.086"><area shape="rect" coords="-2871,2,-2871,18" href="/opennms/outage/detail.htm?id=153235" alt="Id 153235" 
title="2014-10-29 13:12:29.747"><area shape="rect" coords="-3071,2,-2884,18" href="/opennms/outage/detail.htm?id=153137" alt="Id 153137" 
title="2014-10-29 03:12:13.887"><area shape="rect" coords="-3232,2,-3231,18" href="/opennms/outage/detail.htm?id=153132" alt="Id 153132" 
title="2014-10-28 19:11:02.873"><area shape="rect" coords="-3690,2,-3670,18" href="/opennms/outage/detail.htm?id=153086" alt="Id 153086" 
title="2014-10-27 20:14:11.949"><area shape="rect" coords="-6431,2,-6431,18" href="/opennms/outage/detail.htm?id=152786" alt="Id 152786" 
title="2014-10-22 03:11:05.149"></map>');

If a service isn’t monitored, such as the StrafePing service in the above example, that empty timeline is also available:

/opennms/rest/timeline/empty/1415119622/1415206023/480

with a format of:

/opennms/rest/timeline/empty/{start}/{end}/{width}

Pretty cool, huh? A lot of OpenNMS is accessible by ReST and the wiki page covers most of the options. Thus you can use the data via the OpenNMS GUI or integrate it with one of your own.

Announcing OpenNMS 14 and Newts 1.0

Tuesday, November 4th, 2014

It is with great pleasure that I can announce the release of OpenNMS 14. Yup, you heard right, OpenNMS *fourteen*.

It’s been more than 12 years since OpenNMS 1.0 so we’ve decided to pull a Java and drop the “1.” from the version numbers. Also, we are doing away with stable and development branches. The Master branch has been replaced with the develop branch, which will be much more stable than development releases have been in the past, and we’ll name the next major stable release 15, followed by 16, etc. Do expect bug fix point releases as the in past, but the plan is to release more major releases per year than just one.

A good overview of all the new features in 14 can be found here:

https://github.com/OpenNMS/opennms/blob/release-14.0.0/WHATSNEW.md

The development team has been working almost non-stop over the last two months to make OpenNMS 14 the best and most tested version yet. A lot of things has been added, such as new topology and geographic maps, and some big things have been made better, such as linkd. Plus, oodles of little bugs have finally been closed making the whole release seem more polished and easier to use.

Today we also released Newts 1.0, the first release in a new time series data storage library. Published under the Apache License, this technology is built on Cassandra and is aimed at meeting Big Data and Internet of Things needs by providing fast, hugely scalable and redundant data storage. You can find out more about this technology here:

http://newts.io

While not yet integrated with OpenNMS, the 1.0 release is the first step in the process. Users will have the option to replace the JRobin/RRDtool storage strategies with Newts. Since Newts stores raw data, there will be a number of options for post-processing and graphing that data that I know a number of you will find useful. Whether your data needs are simple or complex, Newts represents a way to meet them.

Feel free to check out both projects. OpenNMS 14 should be in both the yum and apt repos, and as usual I welcome feedback as to what you think about it.

Why There Will Never Be Another Red Hat

Monday, October 13th, 2014

My friend Nick sent me a link to a post called “Why There Will Never Be Another Red Hat: The Economics Of Open Source“. It immediately pushed a bunch of my buttons before I read the first word of the article.

First, it was from TechCrunch. I have nothing against TechCrunch and I respect a lot of their work, but they are Silicon Valley-centric, if not the main mouthpiece, and thus I have to take that bias into account when reading their articles. What works in the Valley doesn’t necessarily translate to the world as a whole, which is why a lot of Valley companies seem to quickly plateau after an initial success.

Second, continuing the theme of Valley biases, I strongly believe Red Hat doesn’t get the respect it deserves because it is headquartered down the road from us in North Carolina and not California. There is a strong sense of “you can’t make it if you aren’t here” in the Valley and that extends to a somewhat dismissive view of Red Hat. Plus, I have a big ol’ man-crush on Jim Whitehurst as he is the most successful tech CEO I know that really, really “gets” open source and thus anyone trying to tell me about the “economics of open source” without respecting Red Hat starts off on my bad side.

Finally, the author is currently at the VC firm Andreessen Horowitz, or A16Z as those of us in the know refer to it. In last year’s investment tour I met with a large number of people in the Valley, and the guy I met from A16Z was easily the worst of the bunch. He made the caricatures of the Silicon Valley TV show look mild. He had no interest in us since we weren’t in California and he was more concerned with who we knew than what we did. I left that popularity crap behind in high school. Granted, we only rated an audience with the lower levels of the company, which overall does have a pretty solid reputation on Sand Hill Road, but still it was almost insulting.

Let’s just say my bullshit meter was halfway to pegged before I started the first sentence.

However, I found most of the article to be spot on. In my “Is Open Source Dead?” post I talked about how open source is both greatly increasing while the classic ideals of open source (i.e. free software for everyone) seem to be going away.

My own philosophy is that, at least for certain large and complex (i.e. expensive) software, the proprietary software model is doomed. Customer needs are changing so fast that no closed system can really keep up, and we’ve seen that in the biggest OpenNMS customers. I spent the last week in Ireland and the client was complaining that before they started using OpenNMS, whenever they needed some new functionality in their management solution the proprietary vendor took too long, cost too much and delivered too little to be worth it. Using a free platform like OpenNMS made it much easier to adapt the tool to their business workflow, instead of having to change it to meet the workflow of the management software. There is value in that – value that can be monetized.

Peter Levine started to win me over with “Red Hat is a fantastic company” (grin) and I as I read on I found my head nodding in agreement. He states

Unless a company employs a majority of the inventors of a particular open source project, there is a high likelihood that the project never gains traction or another company decides to create a fork of the technology.

While I estimate OpenNMS has around 40 to 50 active contributors, at least 15 of those are on my payroll, either directly or indirectly as contractors. While I definitely would like to increase the overall number, we are growing fast enough that we can usually hire someone who contributes a lot to the project, and then, since they can spend their full time on it, we as a group continue to contribute greater and greater amounts of the overall code. When I started out on my own back in 2002, I think at least half of the code came from outside of the .com side of things. Now it is probably closer to 5% or less. It has managed to let us focus on our direction for the application.

Then Levine continues:

To make matters worse, the more successful an open source project, the more large companies want to co-opt the code base. I experienced this first-hand as CEO at XenSource, where every major software and hardware company leveraged our code base with nearly zero revenue coming back to us. We had made the product so easy to use and so important, that we had out-engineered ourselves. Great for the open source community, not so great for us.

I’ve heard this tale from a number of people. Become successful and someone like IBM could dump 100 developers on your project and take it over. While we haven’t experienced it directly (rarely do people tell me OpenNMS is “easy to use”), we are constantly finding out about companies who have either based products on OpenNMS or used OpenNMS to provide services for profit. I think this is great, but it would be nice to capture some of that effort back into the project, either in the form of contributions or cash. It is one reason that the next major release of OpenNMS will be published under the Affero GPL.

So, with all this doom and gloom, what is the solution? Levine’s answer is “sell open source as a service”. I couldn’t agree more. This is exactly what we pitched to A16N. It’s something of a “win/win”.

This recipe – combining open source with a service or appliance model – is producing staggering results across the software landscape. Cloud and SaaS adoption is accelerating at an order of magnitude faster than on-premise deployments, and open source has been the enabler of this transformation.

If you have the in house development staff to leverage open source, it makes sense to become active in the community. David just finished a five stop roadshow in both the US and Europe describing the OpenNMS roadmap over the next year as we position the product for the Internet of Things. He met with our largest customers and all of them are eager to get involved, many pledging, OpenDaylight style, to provide the project with developers. They get input into the direction of the product and we get great open source code.

But what if you aren’t a large medical information company or a worldwide financial institution? You may need what OpenNMS can provide but don’t have the time to build in the workflow or customize it. We will have a solution for you.

The only issue I ended up having with the article was when he compared Red Hat to Microsoft, Oracle, Amazon, etc. Sure there might not be another Red Hat, but I don’t expect to see another Microsoft (operating systems and office suites), Oracle (enterprise software), or Amazon (online product distribution) either. This doesn’t mean that there won’t be new mega-companies. In ten years I expect there will be some huge companies that no one today knows about, probably in the areas of 3D printing and biotech (specifically integrating tech into the human body). Enterprise software companies will be represented by a number of large-ish but nimble companies leveraging open source, and I wouldn’t count out Red Hat just yet as they too are pivoting to follow this new business model.

I want to close with one little story. I spent last week in Ireland where I just happened to be in Dublin where the band Wheatus was touring with my friend Damian (MC Frontalot) opening. They had a grueling schedule (shows almost every night) but I managed to see their concert and talk with them afterward.

Damian has just released a new album (it’s excellent, buy it) and he closed his set with “Charity Case” which includes the lyric:

It’s true:
Frontalot’s destitute.
I need you
to buy my CD so I can buy food.

He often pokes fun on the changing nature of the music business (his song “Captains of Industry” suggests that he is not a musician but instead is in the T-shirt business), and we talked about various business models. I pointed out that acts like Elton John are living the high life from work that basically peaked in the 1970s, and that sort of “royalties for life” model is gone. In its place are artists who sell directly to their fans, often including personalized premiums for a higher price, and touring. The band Phish tours extensively and they make millions, all the while encouraging their fans to bootleg their music, something old school musicians wouldn’t think to do.

At this point Brendan, the founder and front man of Wheatus, joined us and stated “there is nothing an old musician can teach a young one about the music business”. That quote really resonated with me.

In summary, I really enjoyed this article. It mirrored a lot of our thoughts over the last year as we seek to make OpenNMS successful. Remember, our plan is for OpenNMS to be *the* de facto management solution of choice and for that to happen will take a lot of work as well as money. But one thing that we will continue to do to emulate Red Hat is to keep publishing as much software as possible under an OSI-approved open source license.

That is still a key to our success: OpenNMS will always be free and OpenNMS will never suck.