Since last time, we worked on the config manager API schemas, imports, validation, and editing, a proof-of-concept Zabbix agent plugin, Enlinkd optimization and MikroTik router support, the Twin API, SNMP improvements, documentation, IFTTT SSL handling, Flows, startup, related events, the featherDS Vue UI, and Vue geomaps.

Github Project Updates

Internals, APIs, and Documentation

  • Freddy worked on exposing an OpenAPI URL with config manager schemas.
  • Jesse and Yang Li worked on a plugin for interacting with the Zabbix agent.
  • Antonio worked on discovering topology on MikroTik routers.
  • Upendra updated the config manager to import trapd-configuration.xml.
  • Chandra did more improvements to the gRPC Twin implementation.
  • Shankar updated the config manager to import enlinkd-configuration.xml.
  • Chandra changed the SNMP API to use the full trap OID even if the sub-id is 0.
  • Dustin worked on wrapping up the JMS and in-memory implementations of the Twin API.
  • Patrick reworked some of the config API implementation for managing types and validation.
  • Chandra simplified some response handling in the core Twin API.
  • Christian optimized some bridge node handling in Enlinkd.
  • Tikayat updated the config manager to import discovery-configuration.xml.
  • Bonnie worked on a glossary of terms for the docs.
  • Stefan updated the documentation for Cortex persistence.
  • David Schlenk contributed a fix to honor START_TIMEOUT in systemd mode.
  • Patrick started to implement .cfg importing into the config API.
  • Chandra worked on supporting "patch" changes in Twin API communication.
  • Chandra added node label and location to protobuf node metadata.
  • Christian wrapped up his SSL handling changes for IFTTT.
  • Christian fixed an issue with connecting to the local JVM.
  • Dustin started to work on adding thresholding support to flow data.
  • Marcel continued working on daemon reload documentation.
  • Stefan did more work on flow document optimizations.
  • David Schlenk contributed a fix to the "related events" UI when no metadata matches.

Web, ReST, UI, and Helm

  • Mike and Sagar continued work on the new featherDS Vue UI, including UX improvements, validation, and a GUI file editor.
  • Jane worked on autosizing and other UX improvements in the new Vue geomaps.
  • Jesse worked on exposing certain config files over ReST.


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

  • Antonio Russo
  • Benjamin Reed
  • Bonnie Robinson
  • Chandra Gorantla
  • Christian Pape
  • David Schlenk
  • Dustin Frisch
  • Freddy Chu
  • Jane Hou
  • Jesse White
  • Marcel Fuhrmann
  • Mark Mahacek
  • Maxim Brener
  • Mike Rose
  • Patrick Schweizer
  • Sagar Salunkhe
  • Shankar Suman
  • Stefan Wachter
  • Tikayat Mohanta
  • Tripti Bansal
  • Upendra Guggilam
  • Yang Li

Reminder: Breaking Changes Coming in Horizon 29

With Horizon 29 slated for next month, I wanted to take a moment 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.

    Be prepared for some downtime while upgrading.

  2. Amazon SQS support for communicating with Minion will be removed.
    RPC communication and the handling of configuration are changing significantly
    enough that we would need to rewrite the SQS component and we don't believe
    it to be in wide deployment, compared to using gRPC or Kafka.

  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 November Releases

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

The next OpenNMS release day is November 10th, 2021.

We currently expect the first release in the Horizon 29 series, as well as updates to Meridians 2019 through 2021.

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-2510: RRD creation for JMX data fails
  • NMS-3171: HttpMonitor doesn't check JSON responses for response-text
  • NMS-3336: provisiond : snmpinterfaces not created
  • NMS-3736: Resource Graphs and custom time period error while refreshing
  • NMS-3848: Reasons Missing From nodeLostService events
  • NMS-12611: Documentation for reloadable daemons
  • NMS-12778: Incorporate node related information to events and alarms topic in opennms-kafka-producer feature
  • NMS-13377: Nephron: Get rid of convo_key and grouped_by_key
  • NMS-13437: The Info ReST endpoint is not showing the services status
  • NMS-13487: Grpc IPC and Twin should be able to run from the same port
  • NMS-13490: Support multiple auth params for same SNMPV3 username
  • NMS-13501: IFTTT integration not working anymore
  • NMS-13593: Discovery LLDP Topology for devices supporting TIMETRA-LLDP-MIB
  • NMS-13622: Topologies menu
  • NMS-13627: Move IFTTT integration topic under Alarms
  • NMS-13633: geo-map: "

    " in column "LOG MESSAGE"

  • NMS-13634: geo-map: Adjust to column width
  • NMS-13635: Documentation for the new feature persisting flows in Cortex
  • NMS-13639: geo-map: Add count to the Alarms and Nodes tab name
  • NMS-13660: Nodes with complex hardware configuration are not correctly rendered
  • NMS-13661: automation cleanUpRpStatusChanges that references removed action with same name remains in default vacuumd-configuration.xml configuration
  • NMS-13662: Implement auto-labeling of GitHub Pull Requests
  • NMS-13664: ALEC in distributed mode doesn't start on Sentinel
  • NMS-13670: property name importer.adapter.dns.reverse.level is incorrect in commented out example
  • NMS-13688: Check doc source for wiki links
  • NMS-13700: Create Release Notes for Horizon 29
  • NMS-13702: START_TIMEOUT ignored when run from systemd
  • NMS-13703: macOS Monterey: older OpenNMS branches do not start anymore
  • NMS-13705: related events box in alarm detail shows all events when alarm has no node / interface / service / ifindex