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

Since last time, we worked on DAO internals, the config manager API, flow and flow thresholding documentation, device config backup, CI and flapping tests, non-root documentation, metadata provisioning updates, SSH support, Minion docker images, the SNMP detector, the Quartz scheduler, servlet input improvements, node page service bar graphs, TLS config, new UI plugins, topology, and provisioning, legacy UI dependency updates, and node REST validation.

Github Project Updates

Internals, APIs, and Documentation

  • Alex updated some DAO internals to use better SQL APIs
  • Patrick and Yang Li did more work on exposing multiple instances of the same config service in OSGi
  • Bonnie did more work on flow documentation improvements
  • Chandra cleaned up service name mapping in the device config backup code
  • I cleaned up some CI build image issues
  • Ronny added example documentation for running Horizon 29 as root
  • Alberto worked on fixing some flaky smoke tests
  • Chandra implemented manual device config backup triggering
  • I worked on implementing reporting dependency licenses in our build
  • Alex cleaned up some query parameter binding in DAO code
  • Christian worked on flow thresholding documentation
  • Julian changed the CI build to cache node artifacts
  • Christian fixed metadata handling to update properly from the requisition
  • Chandra worked on SSH fixes in Karaf
  • Julian did more work on pushing Minion docker images to Azure
  • Chandra created a default poller config for device config backup
  • Stefan updated our embedded JSCH
  • Christian fixed the SNMP detector to expose TTL parameters
  • Stefan updated the device config poller to expose metadata about the filename
  • Zoë fixed an issue with quartz scheduler job details
  • Stefan added initial documentation for device config backup

Web, ReST, UI, and Helm

  • Alex worked on cleaning up some servlet input handling
  • Gerald updated the bar graph on the node page to indicate better when polling started
  • Mike did more work on loading web UI plugins dynamically
  • Stefan and Scott worked on the REST service for device config backups
  • Alberto cleaned up the default TLS types used in our example Jetty SSL config
  • Yang Li did more work on the UI plugin backend
  • Mike started working on topology in the new UI
  • Scott did more work on provisioning in the new UI
  • I updated a number of dependencies in the legacy web UI build
  • Gerald fixed the node interface REST API to disallow creating multiple SNMP primary interfaces on a device
  • Scott worked on implementing device config backup downloading


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

  • Alberto Ramos
  • Mike Rose
  • Benjamin Reed
  • Scott Theleman
  • Zoë Knox
  • Chandra Gorantla
  • Stefan Wachter
  • Alex May
  • Christian Pape
  • Yang Li
  • Bonnie Robinson
  • Gerald Humphries
  • Scott Thompson
  • Julian Buliga
  • Patrick Schweizer
  • Mark Mahacek
  • Ronny Trommer
  • Pushkar Suthar

Upcoming March Releases

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

FYI: March's releases are being pushed out a week.

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

We currently expect updates to Horizon 29 and Meridians 2019 through 2021.

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-13629: Test latest Grafana security update
  • NMS-13647: Provide the ability to define application thresholds and trigger events based on the thresholds.
  • NMS-13746: NMS-13746: Allow OIA plugins to extend the new Vue3 UI
  • NMS-13795: Telemetryd error occurring when testing with hsflowd
  • NMS-13801: DCB - Create a default poller config for backup
  • NMS-13811: Troubleshooting flows: basic
  • NMS-13822: OpenNMS Availability 'Chart' Shouldn't Include Time Before Connected
  • NMS-13830: Update Classification Engine chapter in flows section
  • NMS-13845: TLS: Diffie-Hellman Key Exchange Insufficient DH Group Strength Vulnerability
  • NMS-13847: Password field with autocomplete enabled
  • NMS-13862: Sitemap is generated with instead
  • NMS-13872: Revisit smoke test for OIA plugins
  • NMS-13890: Unable to modify node/interface/service metadata through requisition after initial synchronization
  • NMS-13901: Web UI redirects to http even with base-url set to https
  • NMS-13936: Create module to retrieve Device Config backup manually
  • NMS-13937: Create Sink module that can receive Device Config backup updates
  • NMS-13947: Build process improvement: Cache node artifacts
  • NMS-13954: Vue/Charjs Resource Graphs
  • NMS-13965: Handle both Running/Default ConfigTypes in the same Poller
  • NMS-13970: Add Rest API to Retrieve Device Config Schedule Data
  • NMS-13998: Make sure current CM Rest API meet KDMP needs
  • NMS-14030: Doc Update: Don't expose ONMS console to Internet
  • NMS-14031: Add Karaf command to retrieve Device Config
  • NMS-14032: install script fails if an OpenNMS directory contains root-owned lost+found directory

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.