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

Since last time, we worked on moving configs to the new config manager API, requisition validation, Docker image updates, test infrastructure improvements, system report improvements, Nephron, flow, and SNMP property extender docs, Adoptium/Temurin JDK support, device config backup, Helm docs, Karaf shell, Telemetryd, JMX RMI, IPC, service startup, Maven, Non-Root, Jetty config, UI dependencies, web plugins, event configuration UI, and provisioning UI updates.

Github Project Updates

Internals, APIs, and Documentation

  • Pushkar, Dmitri, and Freddy worked on moving notificationCommands.xml, notifications.xml, and wsman-config.xml to the config manager API
  • Alex worked on performing IP address validation in provisioning requisitions
  • Julian did more work on pushing Docker images to Azure
  • I worked on eliminating EasyMock from our tests to ease moving to JDK 17
  • Gerald worked on cleaning up the system reports to scrub password information
  • Bonnie continued her work updating nephron and flow documentation
  • I did more work on fixing the build on JDK17
  • Chandra worked on integrating the new device config backup persistence into the poller
  • Christian did a bit more work to wrap up flow thresholding
  • I updated our build environment docker containers to use CentOS stream and newer Adoptium JDKs
  • I fixed our Debian dependencies to accept Temurin as a valid JDK
  • Gerard fixed a rendering issue in the full text system report
  • Patrick continued his work on handling multiple config service instances in OSGi
  • Gerard fixed opennms:show-event-config to filter out duplicates
  • I did more work on trying to fix flapping tests
  • Marcel wrapped up his changes to split up the SNMP property extender docs into separate pages
  • Stefan fixed a thread-safety issue in telemetry registry lookup
  • Stefan worked on triggering config retrieval from devices
  • Dustin worked on scheduling for the device config backup
  • Christian fixed a regression in JMX RMI config in Karaf
  • Julian worked on a tool to clean up old docker feature branches in dockerhub
  • Bonnie updated the docs for running as non-root on older (eg RHEL7) Linux kernels
  • Chandra worked on being able to manually trigger device config backup jobs
  • Freddy fixed some issues in recent datacollection config changes
  • Chandra added some documentation on the new consolidated IPC config for Minion
  • I did more work on fixing opennms status and opennms stop on linux when JMX RMI is unavailable
  • I did some work attempting to optimize our CircleCI pipeline
  • Stefan refactored a bunch of the device config pieces into features
  • Freddy changed the Systemd service to not use the SysV init links for startup
  • I bumped our embedded build Maven to 3.8.4
  • Alberto removed the (unused) REST client code from the Minion and Sentinel
  • Alberto changed the default Jetty config to exclude some old cipher algorithms
  • I fixed a bug in Telemetryd that would block OpenNMS clean shutdown

Web, ReST, UI, and Helm

  • Mike updated a bunch of UI dependencies, plus cleaned up color/font handling
  • Yang Li worked on cleaning up/simplifying the new web plugin API
  • Mike started working on a UI for the device config backup
  • I made some additions to the Helm developer documentation
  • Scott did some work on the new configuration UI
  • Chandra and Stefan worked on the device config backup REST API
  • I updated a number of web UI node dependencies
  • Alberto fixed a bug in the event configuration web UI where log destination changes wouldn't persist
  • Yang Li worked on an issue with broken redirects when using HTTPS
  • Gerald worked on fixing password input types around the UI
  • Maxim did some work on provisioning UI tests


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

  • Alberto Ramos
  • Gerald Humphries
  • Maxim Brener
  • Benjamin Reed
  • Yang Li
  • Stefan Wachter
  • Scott Thompson
  • Freddy Chu
  • Chandra Gorantla
  • Bonnie Robinson
  • Dustin Frisch
  • Dmitri Herdt
  • Julian Buliga
  • Mike Rose
  • Alex May
  • Pushkar Suthar
  • Christian Pape
  • Patrick Schweizer
  • Marcel Fuhrmann
  • Ronny Trommer

Release Roadmap

Completed February 2022 Releases - Horizon 29.0.6, Meridians 2021.1.11, 2020.1.19, 2019.1.30

In February, we released updates to all OpenNMS Meridian versions under active support, as well as Horizon 29.

Meridian Stable Updates

Meridians 2019.1.30 and 2020.1.19 contain a number of bug fixes and security updates.

On top of those changes, Meridian 2021.1.11 includes few additional bug fixes and a doc update.

For a list of changes, see the release notes:

Horizon 29.0.6

Release 29.0.6 contains all of the fixes included in the Meridian stable release, as well as a number of additional bugfixes and enhancements.

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 changelog.

Thanks to Sahil Tikoo from Etisalat for reporting the Grafana endpoint issue.

A note about security issues: we have traditionally created CVEs in a pretty ad-hoc manner. We are in the process of formalizing how we’ll be doing so going into the future.

The codename for Horizon 29.0.6 is Dodo.

Upcoming March Releases

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

The next OpenNMS release day is March 9th, 2022.

We currently expect updates to Horizon 29 and all supported Meridian releases.

Next Horizon: 30 (Q2 2022)

The next major Horizon release will be Horizon 30.

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)

The current expectation is that we will release Meridian 2022 in March of 2022.
It will be 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

  • NMS-4487: Make password field on the node asset page a true passord field type that masks out the password
  • NMS-11064: WebMonitor
  • NMS-11885: Update OpenNMS to compile with JDK 11
  • NMS-12863: show-event-config displays unexpected content after adding new event definitions
  • NMS-13474: Split long doc pages into multiple for readability
  • NMS-13695: Migrate Discourse KSC Reports article to main docs
  • NMS-13707: Flow Thresholds: Documentation
  • NMS-13729: Event configuration UI fails to persist logmsg dest changes
  • NMS-13760: Split SNMP Property Extenders into multiple pages
  • NMS-13768: Remove requirements/logic from Dockerfile/Entrypoint/Confd about the OpenNMS HTTP URL from the Minion and Sentinel due to Twin API
  • NMS-13783: Systemd startup uses legacy SysV init script
  • NMS-13810: Phase 4 flows documentation: Nephron for aggregation
  • NMS-13831: Support -> System Report exposes credentials in plain text
  • NMS-13865: Lunr search indexing runs out of memory while building the docs
  • NMS-13866: Add additional steps running as non-root on old Kernels, e.g. RHEL7
  • NMS-13887: Remote RMI is broken in 29.0.x
  • NMS-13914: rest endpoint for device config retrieval
  • NMS-13920: Setup OpenNMS with appropriate configuration for Pen Testing
  • NMS-13921: Define scope and outline scenarios for OpenNMS PenTest effort
  • NMS-13928: automatically prune old feature branches from dockerhub
  • NMS-13929: Kafka Minions with JMS disabled log errors loading JMS bundles
  • NMS-13935: Create a module that handles all device config retrieval and receiving backup config
  • NMS-13945: Flow Thresholds: Fix handling of rrdRepository
  • NMS-13948: "full" report type in Support -> System Report inserts "%n%n" between entries instead of newlines
  • NMS-13950: Move persistence to MonitorAdaptor, add failure related fields
  • NMS-13957: remove easymock from tests
  • NMS-13960: Update UI packages, fix breaking change, modify featherDS color var usage
  • NMS-13961: Unsynchronized access to service factories in TelemetryServiceRegistryImpl
  • NMS-13967: Add DCB UI Scaffolding - Components/Store/Service/Routing

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.