What’s New in OpenNMS Horizon 32
System requirements
-
Java 11 and 17: OpenNMS Horizon 32 runs on JDKs 11 and 17.
-
PostgreSQL 10 or higher: Horizon 32 requires any supported version of PostgreSQL from 10 up to (and including) 15.
New features and important changes
JDK 17
Horizon 32 adds support for running on JDK 17, while retaining support for JDK 11. We are not (yet) taking advantage of JDK 17 specific features, but the new JDK provides a bunch of performance improvements under the covers that benefit any application running on it.
Kafka version 3.x
Documentation has been updated to indicate that Kafka version 3 is supported for the message broker.
Newts: DataStax driver for Cassandra upgrade
The DataStax driver for Cassandra was updated from version 3.x to 4.x. This allows us to introduce the following functionality:
-
Set additional Cassandra driver settings using system properties (for example, you can set
datastax-java-driver.basic.request.timeout="30 seconds"
to configure the connection timeout). See Configuration in the official DataStax documentation for details. -
Configure all driver settings using an external file. To do so, set the following system properties in
${OPENNMS_HOME}/etc/opennms.properties.d/newts.properties
:org.opennms.newts.config.keyspace=newts org.opennms.newts.config.driver_settings_file=/opt/opennms/etc/newts-on-cassandra.conf
-
For example, a minimal version of the file would resemble the following snippet:
datastax-java-driver { basic.contact-points = [ "127.0.0.1:9042" ] session-name = "default" session-keyspace = "newnewts" basic.load-balancing-policy { local-datacenter = datacenter1 } }
-
See reference.conf in the DataStax GitHub repository for a complete example.
-
Native Holt-Winters forecasting
The Holt-Winters forecasting filter no longer depends on the R
package, and has been converted to Java.
This leverages adaptive alerting work done by the team at Expedia.
You can continue to use the filter as-is; no changes are needed to use this forecasting method.
The filter that depends on the R
package will be discontinued in a future release.
Enhanced Linkd improvements
Enlinkd has been refactored, improving performance, fixing bugs, and adding a number of new features, most notably new Karaf command-line tools:
-
enlinkd-discovery-bridge-domain: triggers bridge topology discovery
-
enlinkd-run-collection: triggers an SNMP linkd collection
-
enlinkd-reload: restarts Enlinkd
-
enlinkd-reload-config: reload the Enlinkd configuration
-
enlinkd-reload-topology: refresh topology to force an update based on enlinkd data
-
enlinkd-snmp-collect: perform an Enlinkd SNMP group/table collection
Poll Status History enabled by default
Our service monitor infrastructure has had support for storing the up/down history of poll status, but it is now enabled by default, including graph definitions for all included services. This allows you to get historical availability per-service beyond 24 hours.
Experimental asynchronous polling
The poller engine has been updated to support asynchronous polling, allowing OpenNMS to use fewer Pollerd threads to handle the same amount of load. This will become the default in a future Horizon release.
Details on enabling it are in the operation manual.
OpenNMS Plugin API
The OpenNMS Plugin API has been updated to version 1.5.0, which includes additional alarm- and ticketer-related APIs for plugin authors.
Usage statistics
Consent to share collected usage statistics is now assumed by default on new installs. Existing installs respect the setting in effect before upgrading.
For more details, see the admin guide.
Breaking changes
Newts: DataStax driver for Cassandra upgrade
The DataStax driver for Cassandra was updated from version 3.x to 4.x. This introduces the following breaking changes:
-
org.opennms.newts.config.datacenter
is now required. Set this to the value of your local datacenter for the best performance. -
org.opennms.newts.config.core-connections-per-host
andorg.opennms.newts.config.max-connections-per-host
have been removed. Useorg.opennms.newts.config.connections-per-host
to configure the number of connections per host.
JMX MBean name changes
Because of an upgrade of the Dropwizard Metrics library, some JMX MBeans object names have changed.
The built-in data collection configurations have been updated to use the new object names, and will continue to work as-is.
If you have other collections, or you are otherwise relying on MBeans, you may need to adjust the object references there.
For example, org.opennms.newts:name=search.update
has become org.opennms.newts:name=search.update,type=timers
, and the type
attribute has been added to the object.