OpenNMS Horizon 17 Released

I am extremely happy to announce the availability of OpenNMS Horizon 17. This marks the fourth major release of OpenNMS in a little over a year, and I’m extremely proud of the team for moving the project so far forward so quickly.

There is a lot in this release. One of the major things is support for a new storage backend based on the Newts project. This will enable OpenNMS to basically store unlimited amounts of time-series data. The only thing missing, which should completed soon, is a way to convert all of your old RRD-based data to Newts. Since it will take people awhile to get a Newts/Cassandra instance set up, we didn’t want to hold the rest of the release until this was done. If you are installing OpenNMS from scratch and don’t have any legacy data, the Newts integration is ready to go now.

The team is also making great strides in improving the documentation. There is a better version of the Release Notes there.

Horizon 17 will form the basis for Meridian 2016, which we expect in early spring. The next Horizon release will contain the completed Minion functionality, which adds the ability to distribute OpenNMS so that, along with Newts, OpenNMS will have nearly limitless scalability.

Not bad for a free software product, eh? Remember you can always play with the latest and greatest of any OpenNMS development branch just by installing the desired repository.

Anyway, enjoy, and I’ll be sure to post when the RRD converter is available.

Bug

  • [NMS-5613] – odd index "ifservicves_ipinterfaceid_idx" in database – typo?
  • [NMS-5946] – JMX Config Tool CLI is not packaged correctly
  • [NMS-6012] – Statsd randomly looks for storeByForeignSource rrds
  • [NMS-6478] – 'Overall Service Availability' bad info in case of nodeDown / nodeUp transition
  • [NMS-6493] – Running online report "Response Time Summary for node" produces Unexpected Error
  • [NMS-6555] – Outdated Quartz URL in provisiond-configuration.xml file
  • [NMS-6803] – Not evaluating threshold for data collected by HttpCollector
  • [NMS-6927] – test failure: org.opennms.web.alarm.filter.AlarmRepositoryFilterTest
  • [NMS-6942] – test failure: org.opennms.web.svclayer.DefaultOutageServiceIntegrationTest
  • [NMS-6944] – When building the "Early Morning Report" I get a "null" dataset argument Exception.
  • [NMS-7000] – Early Morning Report will not run correctly without any nodes in OpenNMS
  • [NMS-7001] – Availability by node report needs a "No Data for Report" Section
  • [NMS-7024] – Event Translator cant translate events with update-field data present
  • [NMS-7095] – Topology Map does not show selected focus in IE
  • [NMS-7254] – MigratorTest fails on two of the 3 tests.
  • [NMS-7407] – Inconsistent naming in Admin/System Information
  • [NMS-7411] – Fonts are too small in link detail page
  • [NMS-7417] – Fix header and list layout glitches in the WebUI
  • [NMS-7459] – Dashboard node status shows wrong service count
  • [NMS-7516] – XML Collector is not working as expected for node-level resources
  • [NMS-7600] – build failure in opennms-doc/guide-doc on FreeBSD
  • [NMS-7649] – etc folder still contains references to capsd
  • [NMS-7667] – Vaadin dashboard meaning of yellow in the surveillance view
  • [NMS-7679] – Audiocodes.events.xml overrides RMON.events.xml
  • [NMS-7680] – JMX Configuration Generator admin page fails
  • [NMS-7693] – Example Drools rules imports incorrect classes
  • [NMS-7695] – Logging not initialized but used on Drools Rule files.
  • [NMS-7702] – Problems on graphs for 10 gigabit interface
  • [NMS-7703] – Database Report – Statement correction
  • [NMS-7709] – Building OpenNMS results in a NullPointerException on module "container/features"
  • [NMS-7723] – PSQLException: column "nodeid" does not exist when using manage/unmanage services
  • [NMS-7728] – Add support for jrrd2
  • [NMS-7729] – Log messages for the Correlation Engine appear in manager.log
  • [NMS-7736] – bug in EventBuilder method setParam()
  • [NMS-7739] – Unit tests fail for loading data collection
  • [NMS-7748] – SeleniumMonitor with PhantomJS driver needs gson JAR
  • [NMS-7750] – Cannot edit some Asset Info fields
  • [NMS-7755] – c.m.v.a.ThreadPoolAsynchronousRunner: com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@59804d53 — APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
  • [NMS-7762] – noSuchObject duplicates links on topology map
  • [NMS-7764] – Error when you drop sequence vulnnxtid
  • [NMS-7766] – Incorrect unit divisor in LM-SENSORS-MIB graph definitions
  • [NMS-7770] – HttpRemotingContextTest is an integration test and needs to be renamed as such
  • [NMS-7771] – Fix unit tests to run also on non-US locale systems.
  • [NMS-7772] – JMX Configuration Generator (webUI) is not working anymore
  • [NMS-7777] – node detail page failure
  • [NMS-7778] – Measurements ReST API broken in develop (CXF)
  • [NMS-7785] – OSGi-based Web Modules Not Accessible
  • [NMS-7791] – OSGi-based web applications are unaccesible
  • [NMS-7794] – Cannot load events page in 17
  • [NMS-7802] – JSON Serialization Broken in REST API (CXF)
  • [NMS-7814] – Queued RRD updates are no longer promoted when rendering graphs
  • [NMS-7816] – The DataCollectionConfigDao returns all resource types, even if they are not used in any data collection package.
  • [NMS-7818] – Measurements ReST API Fails on strafeping
  • [NMS-7819] – Requesting IPv6 resources on measurements rest endpoint fails
  • [NMS-7822] – Remove Access Point Monitor service from service configuration
  • [NMS-7824] – The reload config for Collectd might throws a ConcurrentModificationException
  • [NMS-7826] – Exception in Vacuumd because of location monitor changes
  • [NMS-7828] – NPE on "manage and unmanage services and interfaces"
  • [NMS-7834] – Smoke tests failing because OSGi features fail to install: "The framework has been shutdown"
  • [NMS-7835] – "No session" error during startup in EnhancedLinkdTopologyProvider
  • [NMS-7836] – KIE API JAR missing from packages
  • [NMS-7839] – Counter variables reported as strings (like Net-SNMP extent) are not stored properly when using RRDtool
  • [NMS-7844] – Some database reports are broken (ResponseTimeSummary, etc.)
  • [NMS-7845] – New Provisioning UI: 401 Error when creating a new requisition
  • [NMS-7847] – Graph results page broken when zooming
  • [NMS-7848] – Parameter descriptions are not shown anymore
  • [NMS-7852] – UnsupportedOperationException when using the JMXSecureCollector
  • [NMS-7855] – distributed details page broken
  • [NMS-7856] – Default log4j2.xml has duplicate syslogd appender, missing statsd entries
  • [NMS-7857] – Cisco Packets In/Out legend label wrong
  • [NMS-7858] – Enlinkd CDP code fails to parse hex-encoded IP address string
  • [NMS-7861] – IpNetToMedia Hibernate exception in enlinkd.log
  • [NMS-7867] – Duplicate Drools engines can be registered during Spring context refresh()
  • [NMS-7870] – PageSequenceMonitor broken in remote poller
  • [NMS-7874] – The remote poller doesn't write to the log file when running in headless mode
  • [NMS-7875] – Distributed response times are broken
  • [NMS-7877] – HttpClient ignores socket timeout
  • [NMS-7884] – RTC Ops Board category links are broken
  • [NMS-7890] – Remedy Integration: the custom code added to the Alarm Detail Page is gone.
  • [NMS-7893] – LazyInitializationException when querying the Measurements API
  • [NMS-7897] – Statsd PDF export gives class not found exception
  • [NMS-7899] – Deadlocks on Demo
  • [NMS-7900] – JMX Configgenerator Web UI throws NPE when navigating to 2nd page.
  • [NMS-7901] – Incorrect Fortinet System Disk Graph Definition
  • [NMS-7902] – Pages that contain many Backshift graphs are slow to render
  • [NMS-7907] – The default location for the JRRD2 JAR in rrd-configuration.properties is wrong.
  • [NMS-7909] – Missing dependency on the rrdtool RPM installed through yum.postgresql.org
  • [NMS-7917] – Alarm detail filters get mixed up on the ops board
  • [NMS-7921] – Startup fails with Syslogd enabled
  • [NMS-7926] – FasterFilesystemForeignSourceRepository is not working as expected
  • [NMS-7930] – Heat map ReST services just produce JSON output
  • [NMS-7935] – ClassNotFoundException JRrd2Exception
  • [NMS-7939] – HeatMap ReST Xml output fails
  • [NMS-7942] – Apache CXF brakes the ReST URLs for nodes and requisitions (because of service-list-path)
  • [NMS-7944] – Jersey 1.14 and 1.5 jars mixed in lib with Jersey 1.19
  • [NMS-7945] – Incorrect attribute types in cassandra21x data collection package
  • [NMS-7948] – Bad substitution in JMS alarm northbounder component-dao wiring
  • [NMS-7959] – Bouncycastle JARs break large-key crypto operations
  • [NMS-7962] – Missing graphs in Vaadian dashboard when storeByFs=true
  • [NMS-7963] – JSoup doesn't properly parse encoded HTML character which confuses the XML Collector
  • [NMS-7964] – MBean attribute names are restricted to a specifix max length
  • [NMS-7968] – Auto-discover is completely broken – Handling newSuspect events throws an exception
  • [NMS-7969] – JMS alarm northbounder always indicates message sent
  • [NMS-7972] – Querying the ReST API for alarms using an invalid alarmId returns HTTP 200
  • [NMS-7974] – The ICMP monitor can fail, even if valid responses are received before the timeout
  • [NMS-7977] – JMX Configuration Generation misbehavior on validation error
  • [NMS-7981] – The ReST API code throws exceptions that turns into HTTP 500 for things that should be HTTP 400 (Bad Request)
  • [NMS-7985] – New servers in install guide
  • [NMS-7997] – Background of notifications bell icon is too dark
  • [NMS-7998] – Provisiond default setting does not allow to delete monitoring entities
  • [NMS-7999] – Upgrade to commons-collections 3.2.2
  • [NMS-8001] – NPE in JMXDetector
  • [NMS-8004] – Iplike could not be installed following install guide

Enhancement

  • [NMS-1488] – Add option to the <service> element in poller-configuration.xml to specify service-specific RRD settings
  • [NMS-1910] – Additional storeByGroup capabilities
  • [NMS-2362] – Infoblox events file
  • [NMS-3479] – Adding SNMP traps for Raytheon NXU-2A
  • [NMS-4008] – Add A10 AX load balancer trap events
  • [NMS-4364] – Interactive JMX data collection configuration UI
  • [NMS-5016] – Add Force10 Event/Traps
  • [NMS-5071] – Event definition for Juniper screening SNMP traps
  • [NMS-5272] – events definiton file for DSVIEW-TRAP-MIB
  • [NMS-5397] – Trap definition files for Evertz Multiframe and Modules
  • [NMS-5398] – Trap and data collection definitions for Ceragon FibeAir 1500
  • [NMS-5791] – New (additional) event file for NetApp filer
  • [NMS-6770] – New Fortinet datacollection / graph definition
  • [NMS-7108] – DefaultResourceDao should use RRD-API to find resources
  • [NMS-7131] – MIB support for Zertico environment sensors
  • [NMS-7191] – Implement "integration with OTRS-3.1+" feature
  • [NMS-7258] – Unit tests should be able to run successfully from the start of a compile.
  • [NMS-7404] – Create a detector for XMP
  • [NMS-7520] – Remove linkd
  • [NMS-7553] – Add Juniper SRX flow performance monitoring and default thresholds
  • [NMS-7614] – Enable real SSO via Kerberos (SPNEGO) and LDAP
  • [NMS-7618] – Create opennms.properties option to make dashboard the landing page
  • [NMS-7689] – Get rid of servicemap and servermap database tables
  • [NMS-7700] – Add support for Javascript-based graphs
  • [NMS-7722] – Dell Equallogic Events
  • [NMS-7768] – Persist the CdpGlobalDeviceIdFormat
  • [NMS-7798] – Add Sonicwall Firewall Events
  • [NMS-7805] – JMS Alarm Northbounder
  • [NMS-7821] – DNS Resolution against non-local resolver
  • [NMS-7868] – Recognize Cisco ASA5580-20 for SNMP data collection
  • [NMS-7949] – Promote Compass app when mobile browser detected
  • [NMS-7986] – Document how to configure RRDtool in OpenNMS

Story

  • [NMS-7711] – nodeSource[] resource ids only work when storeByFs is enabled
  • [NMS-7894] – Flatten and improve web app style
  • [NMS-7929] – Document HeatMap ReST services
  • [NMS-7940] – Cleanup docs modules

2015 Dev-Jam: Day Four

Since I sincerely doubt even my loyal readers get to the bottom of my long posts, I figured I’d start this one with the group picture:

Dev-Jam Group Picture

That antenna behind Goldy’s head is part of Jonathan’s project to use OpenNMS to collect and aggregate FunCube data from around the world. Can I get an “Internet of Things“? (grin)

There is this myth that just by making your software open source, thousands of qualified developers will give up their spare time to work on your project. While there are certainly projects with lots of developers, I am humbled by the fact that we have 30-40 hard core people involved with OpenNMS.

Unless you’ve gone through this, it is hard to understand. At one time, OpenNMS was pretty much me in my attic and an IRC channel. Luckily for the project that didn’t last long. My one true talent is getting amazing people to work with me. Then all I have to do is create an environment where they can be awesome.

It’s why I love Dev-Jam.

I also love pizza. Chris at Papa Johns was kind enough to send us some free pie for dinner:

Dev-Jam Pizza

Today we spent time talking about documentation. Documentation tends to be the weak point of a lot of software, and open source software in particular. The Arch Linux people do about the best job I’ve seen, but even then it is hard to keep everything current. For over a year now a group of people has been working very hard to improve the documentation for OpenNMS, and the new documentation site is most excellent.

It does take a little time to understand the navigation. The documentation is included in the source and managed on GitHub, so there is a new version for each release. But just as an example, check out the Administrator’s Guide for 16.0.2.

Written in AsciiDoc, it is now the best place for accurate information on how to use the software. We also want to extend a special thanks to the Atom project for creating the editor used to create it.

One of the things we discussed was how to deal with the wiki and the .org website. It’s not practical to duplicate the AsciiDoc information on the wiki, so the plan is to include the relevant part from the documentation in something like an iframe and use the wiki more for user stories. The “talk” page can then be used for suggestions on improving the documentation, and once those suggestions are merged they can be removed.

I had suggested that we make the wiki page the default landing page for the .org site, but Markus pointed out that we need to do a better job of marketing OpenNMS, and the landing page should be more about “why to use OpenNMS” versus “how”. I had to agree, as we need to do a better job of marketing the software. My friend Waleed pointed out in Twitter this weakness:

Twitter Comment 1 from Waleed

Twitter Comment 2 from Waleed

To better educate folks about why OpenNMS is so amazing, we are considering merging the .com and .org sites and using the .com WordPress instance for the “why you should use OpenNMS” with a very obvious link to the wiki so people can learn how to use OpenNMS. Part of me has always wanted to keep the project and commercial aspects of OpenNMS separate, but it then becomes really hard to maintain both sites.

In case you haven’t guessed, we do spend a lot of time thinking about stuff like this. (grin)

Dev-Jam Thursday

A lot of other cool stuff got done on Thursday. DJ announced that he had separated out the unit tests in OpenNMS (for features) from the integration tests (for regression). OpenNMS has nearly 7,000 junit tests (and growing). It’s the main way we insure that nothing breaks as we work to add new things to the software. But with so many tests it can take a real long time to see if your commit worked or not. This should make things easier for the developers.

It’s hard to believe that Dev-Jam is almost over. Luckily, it sets the stage for the next year’s worth of work. Since our goal is nothing less than making OpenNMS the de facto network management platform of choice, there is a lot of work to be done.

Linux on the Dell M3800

I am way behind on a number of tech reviews, but I’m hoping to catch up soon. Please bear with me.

Earlier in the year I had a disappointing experience with the new Dell XPS 13 and Linux. It was especially hard because I really loved that hardware – not since my first Powerbook have I felt such an attachment to a laptop. I was happy to learn later that there were kernel-level issues with the hardware that had to be addressed, so it wasn’t just my lack of ability in dealing with Linux.

While that story is not over, I did send it back and decided to check out Dell’s other Ubuntu offering, the powerful M3800.

I dutifully placed an order for the Ubuntu version of the laptop, and since it is much larger than the XPS 13 there were more options. I liked the fact that I could get an SSD as well as a standard HDD, so I chose the 256GB SSD option and a 1TB HDD. I travel a lot and thought it would be cool to carry more media with me while still having a fast primary drive.

The order process was pretty painless. Still not as streamlined as the Apple Store, but not too bad.

Then I waited.

My expected arrival date kept slipping. This went on for several weeks until I got an e-mail that, due to a misconfiguration, my order was canceled.

What?

Considering that the website pretty much walks you through the ordering process and indicates any kind of impossible combination (such as a larger battery and an extra drive, since they can’t both occupy the same space) I was confused and a little torqued off.

After a few days to calm down, I decided to retry the process. It turns out that the “misconfiguration” was due to the extra drive, which was surprising. Order it with Windows? No problem. Check Ubuntu and it fails.

Grrr.

I did some investigation and was led to believe that the M3800 Ubuntu version ships with a vanilla 14.04 install. So I decided to pay the Microsoft tax and order the hardware I wanted, and then to base it and install Ubuntu.

This time the process was much smoother, and the laptop even arrived about a week earlier than they told me it would. It was a pleasant surprise.

The shipping box was a bit dinged up:

Dell M3800 Unboxing - Picture 1

But they did a good job of protecting the actual laptop box:

Dell M3800 Unboxing - Picture 2

There were actually two boxes, one holding the laptop and one holding accessories:

Dell M3800 Unboxing - Picture 3

All in all, it was a decent unboxing experience:

Dell M3800 Unboxing - Picture 4

The accessories included the power brick, a restore USB stick and a USB Ethernet adapter.

Dell M3800 Unboxing - Accesories

I liked having the Ethernet adapter since I’ve found installing Linux on a laptop works best when wired. While a lot of modern distros ship the proprietary wireless drivers needed, many times they aren’t enabled during install.

I got the HiDPI touchscreen option (3840×2160) and so I decided to install Linux Mint on it. I figured that if Ubuntu worked on it, I should be able to get Mint to work, and I prefer Cinnamon to Unity, plus Mint handles HiDPI screens much better than Ubuntu. Ubuntu has a scaling factor but it doesn’t really apply across the board, so you end up seeing things like clipped text under icons, etc., and sometimes the selection boxes can be very small. I believe Mint does what Apple does and just doubles everything (i.e. represents system graphics with four pixels instead of one).

This system is screamingly fast (I got the Quad Core 3.3GHz CPU and 16GB of RAM) and the display is solid, but as someone who uses desktops primarily, I wasn’t used to using such a large laptop (although it was quite thin).

Dell M3800 - Mint Login Screen

Mint worked pretty well, but there was a frustrating issue with the clickpad. Sometimes I was unable to select a piece of text on the first try. On a second (or sometimes third attempt) it worked fine, but I could never get the behavior to go away entirely. I have found hints on the Intertoobz that suggest it is a known issue with Cinnamon, so perhaps it will be addressed in 17.2.

My main issue with the unit, outside of the size, was the battery life. I could sit and watch the battery percentage drop, about one percent a minute. This was in light duty mode, such as writing e-mails and browsing the web. While 100 minutes of battery life isn’t terrible, it is less than half of what I am used to.

I took a guess that part of the problem could be in the weird hybrid video controller setup they use. There is both an NVidia card and an Intel card in the unit. I installed bumblebee and that seemed to help some, but it didn’t make the power issue go away.

[Note: as an aside, many thanks to Arch for having such amazing documentation]

Dell M3800 - Mint desktop

Overall, if I was looking for a laptop to replace my desktops, I would have tried to stick with it longer. But the size coupled with the battery issues made me send it back. I was still in love with the XPS 13 so I decided to just wait until they supported Linux on it.

Oregon

I really like visiting the state of Oregon, from Portland all the way down to Roseburg. While I haven’t been to the eastern side, the western side is beautiful, and there is also a lot of OpenNMS history there. The City of Portland uses OpenNMS, as does Earthlink Business Solutions (currently across the river in Vancouver, WA, but with a data center in Portland). Ken Eshelby, who works for the State of Oregon, has one of the most amazing installations of OpenNMS I’ve ever seen (he takes my definition of OpenNMS as a platform very seriously).

But my heart always resides with Oregon State University down in Corvallis. When I first started out on my own back in 2002, OSU was the second organization to purchase a Greenlight project. They’ve been using it for ten years, and last week they invited me back to do a “Tune My OpenNMS” project in order to get them on the latest version and to show them ways to maximize how they are using the tool.

The “Tune My OpenNMS” project (once called “Pimp My OpenNMS” but we had a client warn that he could never submit a purchase request with the word “pimp” in it) is three days long, so I decided to come in a day early to visit friends down in the Peoples Republic of Eugene. Sunday we sat outside drinking microbrews and feasting on salmon caught off the coast, and on Monday I got to go hiking in the Tamolitch Valley.

The area has both old and new growth forests, and there are some pretty extensive lava flows. Here’s a picture of my friend Kate where you can see the lava starting to be overgrown with brush.

The path we took followed the McKenzie River, which made me wish I had brought along my waders and fly rod, but since I didn’t I had to content myself with just pointing out those places where the monster trout would live.

Our destination was a place called The Blue Pool. This is a small pool that contains (so I learned) a lot of dissolved silica. While it shows up as white on the tree trunks and rocks downstream, in the still water of the pool it shows up as an incredibly rich blue (as it scatters blue light). There were once falls on one side of the pool but a lava flow covered them up. There is still water flowing under the rock and it comes out under the water, so they call it a “dry” falls.

I said goodbye and headed up to Corvallis Monday night. On Tuesday I met with Joel Burks at OSU and we got down to business migrating their existing 1.6.7 install to 1.10.5. For lunch we met Bill Ayres (OGP) who was one of the leaders of the OSU OpenNMS project until he retired, and the three of us had a lot of fun.

One night we drove out to Newport to eat seafood at Local Ocean. It was amazing.

I also got to see the controversial mural located downtown that illustrates atrocities committed by Chinese soldiers against Tibetan monks.

I thought it was quite the coincidence that I was in Corvallis when a news story broke that wasn’t about OSU athletic scores.

I didn’t get a paper accepted at OSCON this year so this was my only trip to the area, and I had missed it. I hope to return soon.

Super Bowl XLVI

Congratulations to the world champion New York Giants for winning Super Bowl XLVI.

I’ve been an NFL fan since I was nine years old. I was born the year before the first Super Bowl, and my team, the Pittsburgh Steelers, won Super Bowl IX on my ninth birthday, so I’ve always had a soft spot for the game (NFL expansion has made sure that my birthday will never fall on Super Bowl Sunday again). In all those years of watching football, I have never seen the situation where one team wanted to let the other score a touchdown, and to watch an offensive player tried his damnedest not to score one.

Of course, it wouldn’t be the Super Bowl without Papa Johns Pizza, and this year I got to order from the brand new Pittsboro store. Here is a screenshot of the OpenNMS store monitoring instance:

I ordered our pies about 2pm for a 5pm pickup and it went flawlessly (included getting 50% off by using the promotion code “CANIAC” since the Carolina Hurricanes had won their last game). We had some of the gang from the office and other friends over, and it was a nice respite from trying to get OpenNMS 1.10 out the door.

The commercials could have been better, however.

Sys-con Media Rates OpenNMS Number One

I’ve spent the first half of this week teaching an OpenNMS course. It’s a lot of fun and we have a great class (the next one is in May if you are interested).

While I was talking to the students, one pointed out that he was able to get permission to attend the class because he was going to learn about “the number one systems management tool” available. While I didn’t disagree with him (grin) I did ask how he came by that information, and he pointed me to a Sys-con Media article published last month that compared 11 systems management offerings, both open and closed source.

I had missed this article, but it ends with:

OpenNMS 1.6.10 scores better than the competition, and is thus a better server monitoring software. Its basic features include a faster configuration process, web interface, compatibility and advanced features, such as “better automatic corrective actions”. OpenNMS is also free of cost.

OpenNMS rated a 7 out of 9. Of the other 10 products reviewed, there was one 3, three 4’s, four 5’s and two 6’s.

I, of course, think OpenNMS should have scored a 9 out of 9. The two areas that we missed were “Mobile Access” and “Integrated Maps”. Since the review was against 1.6.10 (versus 1.8.10 which is the latest stable version available) it didn’t have access to the iPhone app, and we have both greatly improved the built-in OpenNMS mapping feature as well as added an integration with Google Maps, Mapquest and Open Street Map for the remote pollers.

It was still nice to come out on top, however, and I hope this gets even more people interested in OpenNMS.