It's time once again for OpenNMS On the Horizon.

Since last time, we worked on newts, detector, OpenDaylight, build, provisioning handler, geomap, and JICMP docs, plus maven optimizations, flapping tests, device config backup improvements, installation bugs, datacollection from events, event parm querying, Scriptd, octet-string handling for traps, JAXB dependencies, SNMP community string handling, arm64 Horizon, new UI updates, the Helm flow datasource, and HTTP pre-auth.

Github Project Updates

Internals, APIs, and Documentation

  • I did a bunch of cleanup in our <repository> entries to (hopefully) do less work finding dependencies during builds
  • I worked on fixing some flapping tests
  • Mark updated some Newts and detector documentation
  • Chandra worked on some improvements to device config backup scripting
  • Dustin did more work on device config backup config in the poller config (whew!)
  • Christian fixed an issue with permissions on the log directory
  • Dustin cleaned up the device config backup metadata types
  • Bonnie worked on documentation for OpenDaylight, building from source, and provisioning handlers
  • Freddy continued his work implementing datacollection on incoming event data
  • Pushkar worked on making it possible to query events based on multiple parms
  • Marked fixed the links printed out in Debian and RPM postinstalls
  • Zoë's worked on making Scriptd not register an event processor if it has an empty config
  • Alex fixed an upgrade issue with the data directory on Debian
  • Marcel worked on geomap documentation
  • Chandra cleaned up device config backup test dependencies
  • Alex cleaned up some escaping in traps when handling octet-strings
  • I worked on cleaning up our JAXB dependencies using the maven-enforcer-plugin
  • I updated RANCID to be LGPLv3 and fixed our dependencies to use it
  • Christian worked on end-to-end tests of the device config backup feature
  • I worked on documentation for JICMP, as well as fixing the CI pipeline
  • Mark cleaned up a bunch of common parameter stuff in the docs
  • Alex fixed a bug in community string handling in the SNMP4J strategy
  • I fixed some weird dependency stuff in the remote poller in older foundation branches
  • Freddy worked on converting the Horizon Docker container to use our newer deploy base so it can support native arm64 images

Web, ReST, UI, and Helm

  • Mike added some test framework stuff for the new UI
  • Alex updated the MailerServlet to use java APIs under the hood rather than wrapping an external binary
  • Mike did more work on fleshing out the device config backup web UI
  • Alberto worked on the handling of null values in the Helm flow datasource
  • I cleaned up some dependencies in some of our javascript-based projects
  • Chinh Le worked on various cleanups in the new UI
  • Jesse wrapped up his changes to support honoring pre-authorization headers
  • Chinh Le updated the UI to the latest Feather
  • Alberto fixed an issue with URL handling in the graph UI


Thanks to the following contributors for committing changes since last OOH:

  • Mike Rose
  • Alex May
  • Freddy Chu
  • Stefan Wachter
  • Christian Pape
  • Pushkar Suthar
  • Chinh Le
  • Alberto Ramos
  • Jesse White
  • Bonnie Robinson
  • Scott Theleman
  • Mark Mahacek
  • Chandra Gorantla
  • Ronny Trommer
  • Dustin Frisch
  • Marcel Fuhrmann
  • Zoë Knox
  • Maxim Brener
  • Benjamin Reed

Releases and Roadmap

March Releases

In March, we released updates to all OpenNMS Meridian versions under active support, as well as Horizon 29. (Twice!)

Meridian Stable Updates

Meridians 2019.1.31 and 2020.1.20 contain a number of bug fixes and small security updates.

On top of those changes, Meridian 2021.1.12 includes few documentation updates.

Later in the month, we made another release to fix a regression in graph viewing.

For a list of changes, see the release notes:

Horizon 29

Release 29.0.7 contains all of the fixes included in the Meridian March stable releases, as well as a number of additional bugfixes and enhancements, as well as an improvement to support pre-auth HTTP headers.

For a high-level overview of what has changed in Horizon 29, see What’s New in OpenNMS Horizon 29.

For a complete list of changes, see the 29.0.7 and 29.0.8 changelogs.

The codename for Horizon 29.0.7 is Pileated Woodpecker, and the codename for 29.0.8 is Chickadee.

Upcoming April Releases

OpenNMS is on a monthly release schedule, with releases happening on the second Wednesday of the month.

The next OpenNMS release day is April 13th, 2022.

We currently expect an update to Horizon 29, plus Meridians 2019 through 2022.

Next Horizon: 30 (Q2 2022)

The next major Horizon release will be Horizon 30.
It is currently expected to be released in May.

Horizon 30 is currently expected to have the following features:

  • the start of a new Vue-based UI using the Feather Design System
  • thresholding support for Flow data
  • initial work moving configuration from XML files to the database -- the first config file implemented on top of the new system will be provisiond-configuration.xml
  • support for running OIA plugins on Minion and Sentinel
  • support for backing up router configuration files

Next Meridian: 2022 (Q1 2022)

Meridian 2022 binaries are ready and we are prepping for release on schedule, at the end of this month.

If you want a taste of what's coming, the documentation is available on

Meridian 2022 is based on Horizon 29.


Note that this is just based on current plans; dates, features, and releases can change or slip depending on how development goes.

The statements contained herein may contain certain forward-looking statements relating to The OpenNMS Group that are based on the beliefs of the Group’s management as well as assumptions made by and information currently available to the Group’s management. These forward-looking statements are, by their nature, subject to significant risks and uncertainties.

...We apologize for the excessive disclaimers. Those responsible have been sacked.

Mynd you, møøse bites Kan be pretti nasti...

We apologise again for the fault in the disclaimers. Those responsible for sacking the people who have just been sacked have been sacked.

Until Next Time…

If there’s anything you’d like me to talk about in a future OOH, or you just have a comment or criticism you’d like to share, don’t hesitate to say hi.

- Ben

Resolved Issues Since Last OOH

  • JICMP-26: Create Antora documentation for JICMP
  • NMS-13805: Validate IP Addresses when adding/updating nodes via REST API
  • NMS-13806: Improve handling of invalid IP addresses during provisioning cycle
  • NMS-13888: Trap parameter values are incorrectly saved in the database
  • NMS-13925: End to End Poller test with Sample device
  • NMS-13951: Create alarm when device config backup fails
  • NMS-14000: Upgrading opennms ignores RUNAS when setting ownership on logs directory
  • NMS-14002: Resolve SonarCloud High priority Security Hotspots
  • NMS-14015: Switch to using a java e-mail library instead of system mail
  • NMS-14019: Minion installation from Debian packages failed with missing dir /var/lib/minion/data/tmp
  • NMS-14040: Fix issues on DeviceConfig Rest Service
  • NMS-14045: Scriptd helpers ignore community setting
  • NMS-14049: Unify and streamline metadata and service handling
  • NMS-14050: Review wording of the new Provisiond UI
  • NMS-14053: Wrong wiki URL in debian installer
  • NMS-14057: OpenNMS points to the wrong URL when trying to generate graphs
  • NMS-14059: Add support for pre-authorization via HTTP header (to be used with pre-authentication)
  • NMS-14061: Revisit error/exception handling in SshScriptingServiceImpl
  • NMS-14062: Update inline help text for new provisiond UI
  • NMS-14065: Document missing handlers
  • NMS-14066: Document HTTP and HTTPS handlers
  • NMS-14069: Always retrieve script from file instead of inline script
  • NMS-14073: Expand newts converter documentation
  • NMS-14074: Add TcpDetector documentation
  • NMS-14077: Device Config Retrieval fails if TFTP Server is getting reopened
  • NMS-14080: Incorporate Device Config Demo feedback
  • NMS-14081: DCB: UI fixes as per Demo Feedback
  • NMS-14082: DCB: Return config data as text in Rest API
  • NMS-14088: Build from source documentation needs a minor correction
  • NMS-14090: Vue UI - Upgrade all packaged to latest, introduce auto-imports
  • NMS-14091: Misspelling in SystemExecuteMonitor error text
  • NMS-14093: relicense rancid-api to LGPL, change dependency to match
  • NMS-14095: Unable to configure dispatcher threads amount in QueueConfig
  • NMS-14100: Hostname command is missing when running in a container
  • NMS-14104: Upgrade feather to v0.10.1, fix CSS changes, breaking TS changes

Jump to section

About the Author: RangerRick

Principal Software Engineer. Manages the release process of OpenNMS Horizon and Meridian, and a bunch of other stuff.