What’s New in OpenNMS Horizon 30

System requirements

  • Java 11: OpenNMS Horizon 30 runs on JDK 11.

  • PostgreSQL 10 or higher: Horizon 30 requires any supported version of PostgreSQL from 10 up to (and including) 14.

Breaking changes

OpenNMS Plugin API required version updated to 1.0.0

The OpenNMS Plugin API required version has been updated to 1.0.0, following its first stable release. Plugins intended to run in Horizon must implement version 1.0.0 (or higher).

New configuration management API

A new API has been introduced for accessing and manipulating configurations, including moving configuration from XML files into the database. The initial implementation proof-of-concept converts the provisiond-configuration.xml to the new API.

The Horizon installer will import your existing provisiond-configuration.xml file on upgrade. This will happen automatically, but if you rely on programatically manipulating the provisiond configuration you will need to convert your code to use the config management REST API instead.

Docker images

The Horizon and Sentinel Docker images are now based on a minimal install of Ubuntu, rather than CentOS. Symlinks are provided to match the old paths in /opt, but it’s possible you will run into subtle differences when transitioning.

Collectd strict interval

The org.opennms.netmgt.collectd.strictInterval setting now defaults to true.

Previously, collectd would not reschedule collection for a device until after the previous collection completes. This means that if Horizon is collecting at a 5-minute interval, and it takes 1 minute to collect the data, then the next collection will start 6 minutes after the previous collection was launched.

The new default behavior is to always schedule collection as a predictable interval.

You can switch to the previous behavior by creating a property file in $OPENNMS_HOME/etc/opennms.properties.d/ with the following line of code: org.opennms.netmgt.collectd.strictInterval=false.

New features and improvements

New UI (early access)

Work has begun on creating a new UI with an eye towards making more common workflows easier. The new design uses Vue 3 and the Feather Design System. You can try it out by clicking "UI Preview" in the navigation bar of the web UI.

It is also now possible to write OpenNMS Plugin API plugins that extend the new UI.

Device config backup

Initial support has been added for performing configuration backups of infrastructure devices like routers and switches. Backups are performed as part of polling the device, and can be viewed (and triggered) in the web UI.

OpenNMS Plugin API supported on Minion and Sentinel

The OpenNMS Plugin API can now be used to extend Minion and Sentinel. A subset of APIs are supported, as appropriate for each platform.

Secure credentials vault

You can now validate credentials stored in the SCV with the scv-validate Karaf command. Additionally, support for encrypted credentials has been extended to more places inside Horizon, most notably in metadata interpolation. Also, a REST API has been added for accessing and updating the SCV.

Flows and Nephron

It is now possible to configure thresholding on flow data.


Polling, metadata, and collection

  • The XML collector can now treat a collected value as an enumerated value, which lets you convert strings into integers to store as a gauge.

  • It is now possible to passively "collect" data from incoming events as time-series data, including those that come from traps or syslog. The eventconf has additional options to configure what data to collect from parameters including regular-expression matches.

  • The BgpSessionMonitor can now be configured to use a custom OID prefix for devices that publish peer tables in a non-standard location.

Additions or updates to graphs and collections have been made for:

  • F5 Devices

  • Flows

  • Node Exporter

  • Prometheus

  • Windows Exporter


  • Improvements have been made to the criteria querying API to support "Multi-And" and regexp restrictions, allowing for queries involving multiple event parameters, or complex string matching.


An unspeakable amount of work has gone into documentation improvements and additions across the board.

Notable additions include:

  • Developer documentation for OSGi in OpenNMS, the OpenNMS Plugin API (formerly OIA), the config management API, device config backup APIs, and the Health REST service.

  • Operation documentation updates relating to SNMP property extenders, performance data and collection, thresholding, the log file viewer, SCV, and the new UI preview.

  • Documentation improvements regarding "housekeeping" and other administrative tasks, alarms, Business Service Monitoring, Passive Status Monitoring, and more.

Important internal changes

  • Kafka components have been updated to version 3.0.0.

  • Our embedded Karaf has been updated to version 4.3.6.