It's time once again for OpenNMS On the Horizon.

Since last time, we worked on ALEC (situation datasource, UI timeline), CircleCI config improvements, device config backup telemetry, Horizon Stream (Minion gRPC, Minion gateway, ICMP/SNMP polling, traps, PagerDuty integration, operator and Skaffold, Sonar code coverage, Spring Boot, maps, and UI), Documentation (style guide, doc-writing guide, quick start, events, DCB, Cortex time-series), offheap queueing for time-series, Docker image publishing and ARM improvements, Sonar CI fixes, publishing to Maven Central, Helm queries and flows, web UI fixes, DCB analytics, partial updates for config REST.

Github Project Updates

Internals, APIs, and Documentation

  • Benjamin Janssens added some additional fields to the ALEC situation data source.
  • Morteza worked on some tweaks to the dynamic CircleCI config.
  • Alex and Alexander added an integration test for device config backup telemetry.
  • Łukasz continued his work on Minion gRPC integration in Horizon Stream, including bringing over ICMP and SNMP RPC implementations.
  • Yang Li worked on caching for the device BFF backend in Stream.
  • Bonnie did more work on the quick start documentation.
  • Chandra incorporated the config API into Stream.
  • Pushkar added application count to the datasources telemetry.
  • Alex fixed an issue with device config node telemetry.
  • Patrick worked on some fixes for unique system IDs.
  • Mark Mahacek worked on documentation for writing documentation. ;)
  • James did more work on PagerDuty support in Stream.
  • Jason made some fixes to Stream local resource usage.
  • Mark Frazier and Gerald did more work on Skaffold for Stream.
  • Emily did more work on the style guide.
  • Arthur continued his work on the Kafka Minion gateway in Stream.
  • Gerald worked on Sonar integration in the Stream build.
  • Dustin updated some event-related documentation.
  • Freddy continued to work on enhancements to offheap time-series queueing.
  • I merged my enhancements to docker container generation and publishing, including normalizing support for ARM images.
  • Gerald worked on some Spring Boot changes in the Stream Minion gateway.
  • Chandra added trap consumption to Stream.
  • I worked on fixing up issues in running Sonar code coverage.
  • Bonnie updated some device config backup documentation in the operation guide.
  • I did some preliminary work backporting dynamic config and docker changes to earlier branches.
  • I worked on what needs to be done to publish full build Maven artifacts to Central.
  • Bonnie did some more work on Cortex time-series plugin documentation.

Web, REST, UI, and Helm

  • Chinh Le continued to work on tuning device support in the Horizon Stream map.
  • Anya worked on using the ALEC situation REST datasource in the UI.
  • Alberto did some additional work on improvements to Helm queries, including node handling and flows.
  • Christian fixed some escaping in a few web element spots.
  • Rob worked on fixing an issue with device lists.
  • Scott did more work on device config backup analytics in the UI.
  • Mike Rose worked on refactoring how widgets get wrapped in the Stream UI.
  • Dmitri merged his work on partial update support in the config REST API.


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

  • Emily Marsh
  • Alberto Ramos
  • Patrick Schweizer
  • Benjamin Janssens
  • Chandra Gorantla
  • Benjamin Reed
  • Bonnie Robinson
  • Jason Berry
  • Chinh Le
  • Anya Rybalova
  • Yang Li
  • Alex May
  • Morteza Ershad-Manesh
  • Rob Ellis
  • James Hutchinson
  • Christian Pape
  • Pushkar Suthar
  • Łukasz Dywicki

Coming Soon: JIRA Migration

We will be migrating our JIRA issue-tracker from a self-hosted version to Atlassian's cloud version.
I don't have a timeline for this yet, but expect it in the coming months.

If you currently have an account at the OpenNMS issue tracker your account should already be migrated to JIRA Cloud, but you will need to perform a password reset with the "Can't log in?" link before you can log in.

Releases and Roadmap

Upcoming September Releases

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

The next OpenNMS release day is September 14th, 2022.

We currently expect updates to Horizon 30 and all supported Meridian releases.

Next Horizon: 31 (Q4 2022)

The next major Horizon release will be Horizon 31.

It will contain a number of improvements, including:

  • a refactoring of flow APIs including support for some flow hooks in the plugin API (plugin API 1.1.0+)
  • major improvements and refactoring in Enlinkd's bridge topology mapping and collection scheduling

Next Meridian: 2023 (Q1 2023)

Meridian 2023 is still reasonably early in its development cycle, but you can expect it to contain, at the very least, the work that's going into Horizon 30.


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.

Calendar of Events

Open Source Summit Europe - Dublin, Ireland - September 13th through 16th

We are a silver sponsor this year for Open Source Summit, and will be hosting a booth in the exhibition area.

Craig Gallen and some of the crew from Belfast will be there, so pop on by and say hello.

Open Source Day 2022 - September 16th

The OpenNMS Group is proud to support Grace Hopper Conference's Open Source Day (OSD) 2022, and our very own Sandy Skipper is serving on the OSD Steering Committee.

OSD is an all-day hackathon in which participants of all skill levels learn about open source while contributing to projects designed to solve real world problems.
The goal is to celebrate and encourage women in open source.

OSD will take place as a pre-event on Friday, September 16 from 8am - 3pm PDT. Participation is open to anyone who has a GHC registration ticket (in-person or virtual).

For more information, contact Sandy Skipper or see the OSD site.

Grace Hopper Celebration - Orlando, FL - September 20th through 23rd

In addition to our involvement in Open Source Day, Veena Kannan will be presenting a virtual lightning talk at the Grace Hopper Conference titled "Open Source 101 – Myth Buster Edition" at the Grace Hopper Celebration.

Her talk will be Thursday the 22nd, at 11:00am.

All Things Open - Raleigh, NC - October 30th through November 2nd, 2022

All Things Open is local to our headquarters, and is a truly fantastic event.
We love it so much, we will be the exclusive live stream sponsor. 😉

We'll also have a booth in the exhibition hall.
A bunch of OpenNMS folks will be attending and/or helping out in the booth, so please be sure to say hi!

Open Source Monitoring Conference - Nuremberg, Germany - November 14th through 16th

The OpenNMS Group is a gold sponsor of OSMC this year, and will have a booth as well.
Stop by and say hello!

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

  • ALEC-165: Timeline alarms
  • ALEC-173: Situation endpoint with more data
  • ALEC-175: Use new situation endpoint
  • ALEC-176: Improve getSituationStatusList endpoint
  • ALEC-177: Fixes situation metrics
  • HELM-336: Flow DS query interfacesOnExporterWithFlows() does not accept FS:FID as argument
  • HELM-337: exporterNodesWithFlows() query handles criteria differently than other queries
  • HS-315: Remove unnecessary step from main README
  • HS-320: Production build of the Vue.js app
  • HS-327: Skaffold is always triggering builds of Jib-based images like notification and rest-server, even when nothing has changed
  • HS-341: java.lang.Double on adding multiple devices
  • HS-349: Skaffold file sync stopped working in UI project
  • HS-350: Trigger SonarCloud code scanning jobs in Horizon Stream
  • NMS-13553: directory listing beautification
  • NMS-14310: provisiond config partial update
  • NMS-14449: Rest API v2 for obtaining a list of SNMP interfaces doesn't return back node id
  • NMS-14542: Event / Alarms filtering no longer works
  • NMS-14555: Development and test environment for Velocloud SD-WAN integration
  • NMS-14579: Add KPI for DCB device count by sysObjectID
  • NMS-14580: Add KPI for DCB cumulative config count
  • NMS-14581: Add KPI for DCB cumulative backup failure count
  • NMS-14626: Publish images to Docker Hub
  • NMS-14655: Appliance: Minion fails to come up with 30.0.2 and bleeding image
  • NMS-14657: Graph page doesn't escape <> in resource labels
  • NMS-14669: Dynamic Yaml generation: Simplify and improve dynamic generation
  • NMS-14673: Implement VCO API v1 authentication
  • NMS-14674: Implement Velocloud API version abstracton layer
  • NMS-14687: UI update for DCB KPI
  • NMS-14688: REST API update for DCB KPI
  • NMS-14690: Need to get Sonar Cloud runs going again.
  • NMS-14691: Dynamic Yaml generation: handle merge-foundation branch and when build-trigger override file is detected better
  • NMS-14696: Upgrade dom4j to latest version
  • NMS-14697: Investigate the failure in integration-test job
  • NMS-14706: Dynamic Yaml Generation: Code Improvements to how we detect merge-foundation branch and changes to epoch file and documentation