DEV Community

Benjamin Reed for OpenNMS

Posted on • Originally published at on

OpenNMS On the Horizon – November 8th, 2021

Since last time, we prepped for Horizon 29 and worked on Zabbix agent support, test fixes, Karaf, the Twin API, documentation, the config management API, SNMPv3 settings, macOS Monterey fixes, schema handling, gRPC, PostgreSQL, SQS, Minion, REST, JavaMail TLS, GeoIP provisioning, Enlinkd LLDP, healthcheck, the web config editor, vue Geomaps, and the new featherDS UI.

Github Project Updates

Internals, APIs, and Documentation

  • Yang Li and Jesse did some more work on Zabbix agent support.
  • I forked the release-29.x branch in preparation for the upcoming Horizon 29.
  • Dustin cleaned up some Karaf shell code for the Twin API.
  • David Schlenk made ping less demonic 😈
  • Maxim worked on config API updates.
  • Christian worked on wrapping up support for multiple SNMPv3 settings per user.
  • Christian fixed a bug in starting OpenNMS on macOS Monterey.
  • Freddy made some improvements to config API schema handling.
  • Chandra cleaned up some gRPC/Karaf service code.
  • I updated H29 to support PostgreSQL versions through 14.
  • Dustin removed the last vestiges of SQS support.
  • David Schlenk's changes to update JavaMail to 1.6 (for better TLS support) were merged to Horizon 29.
  • Christian worked on wrapping up his GeoIP provisioning adapter.
  • Antonio worked on some updates to Enlinkd LLDP support.
  • Sean worked on bumping the Kafka test dependencies to v3.
  • Chandra did more work on Twin API patch (incremental update) support.
  • Patrick worked on moving the datasources config to the new config manager.
  • Chandra added healthcheck support for the Kafka twin subscriber.

Web, ReST, UI, and Helm

  • Freddy did more work on the config ReST API.
  • Mike continued to work on the config editor UI.
  • Tripti worked on some updates to the UI code.
  • The first proof-of-concept of the new featherDS Vue UI has been merged to develop.
  • Stefan removed unneccesary REST client code from the Minion.
  • Farid worked on some alarm code in the new Geomaps.
  • Jane worked on some visual improvements to the new Geomaps.


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

  • Antonio Russo
  • Benjamin Reed
  • Chandra Gorantla
  • Christian Pape
  • David Schlenk
  • Dustin Frisch
  • Farid Ahmad
  • Freddy Chu
  • Jane Hou
  • Jesse White
  • Maxim Brener
  • Mike Rose
  • Patrick Schweizer
  • Sean Torres
  • Stefan Wachter
  • Tripti Bansal
  • Yang Li

Reminder: Breaking Changes Coming in Horizon 29

With Horizon 29 slated for release this week, here is one last reminder to note some changes that are coming.

Along with a bunch of bug fixes and enhancements, we have a couple of things that are changing significantly that it's worth noting.

  1. OpenNMS will run as non-root by default.

    However, because it is possible to have a significant number of resources writing files into the $OPENNMS_HOME/share directory, we will not automatically fix ownership of those files on upgrade, because it could take an indeterminate amount of time to run chown on the entire shared data tree.

  2. Minion Communication Changes

    If you are using gRPC or Kafka for Minion communication, you will need to perform some additional configuration with the introduction of the new Twin API.

    If you are using SQS for Minion communication, it will no longer be supported as of Horizon 29.

  3. Time-Series Metadata Changes

    Resource level string attributes are now also stored via the plugin in the respective time series database.

    The timeseries_meta table which previously stored this metadata has been removed.

    There is no migration; string values are generally updated on the next poll.

Release Roadmap

Upcoming December Releases

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

The next OpenNMS release day is December 8th, 2021.

We currently expect a minor update to Horizon 29.

Next Horizon: 29 (Q4 2021)

The next major Horizon release will be Horizon 29.

Horizon 29 will be a new release branch for Horizon, introducing a ton of bug fixes and cleanups, plus a number of new features:

  • running as non-root by default
  • the Minion's communication has been refactored to get rid of out-of-band ReST calls to the OpenNMS core
  • persistence of flows to Cortex
  • many improvements and optimizations to Nephron, flow processing, and flow classification
  • a number of other improvements to polling, metadata handling, and validation
  • Enlinkd support for TIMETRA-LLDP-MIB-capable devices

Next Meridian: 2022 (Q1 2022)

The current expectation is that we will release Meridian 2022 in Q1 of next year. It will be based on Horizon 29 plus any bug fixes that happen between November and the Meridian release.


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-1652: Data Collection Retries not really Retries
  • NMS-12717: Prometheus collector won't process untyped metrics
  • NMS-13283: The node and interface counters of the Evaluation Layer are incorrect
  • NMS-13402: Integrate Object replication with Trapd (for SNMPV3 Users)
  • NMS-13488: Add Karaf Command to add query and publish Twin Objects
  • NMS-13576: Support partial updates to Twin API
  • NMS-13598: Add version support for Twin Object retrieval
  • NMS-13636: Components that use JavaMail unable to use TLS 1.2+
  • NMS-13637: Discover LLDP topology on devices running MikroTik RouterOS
  • NMS-13640: Drop SQS support
  • NMS-13641: Remove Rest Client / OpenNMS Rest Health Checks on Minion
  • NMS-13663: Add Health Check for Twin on Minion
  • NMS-13701: Add Twin feature/strategy to conf.d/smoke test
  • NMS-13704: GeoIP Provisioning Adapter
  • NMS-13714: Allow PostgreSQL 14
  • NMS-13717: SNMP Metadata Provisioning Adapter: wrong line in debian/rules
  • NMS-13719: NPE when synchronizing requisition with existing nodes in database

Top comments (0)