What’s New in OpenNMS Horizon 30
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.
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).
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.
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.
org.opennms.netmgt.collectd.strictInterval setting now defaults to
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:
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.
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.
The OpenNMS Plugin API can now be used to extend Minion and Sentinel. A subset of APIs are supported, as appropriate for each platform.
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.
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:
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.