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

Since last time, we worked on documentation (SNMP poller, Trapd, Enlinkd, requisitions, quick start guide), Enlinkd refactoring, Docker container scanning, Horizon Stream (Keycloak integration, operator config, port forwarding, metrics, PostgreSQL auth, CI, Minion gateway, Kafka, docs, PagerDuty, ignite tests, Helm charts, UI navigation), event improvements, Sonar and code coverage, ALEC (API, test coverage, UI), tests (CI improvements, device config backup, logging), time-series off-heap support, provisioning, cookies and CSRF, JavaScript dependencies, Helm (AngularJS to React transition), and UI preview integration.

Github Project Updates

Internals, APIs, and Documentation

  • Mark Mahacek worked on SNMP poller and Trapd documentation
  • Antonio refactored some Enlinkd scheduling classes out into core/daemon
  • Morteza worked on Docker container security scanning
  • I worked on backporting Docker changes to foundation-2022
  • Gerald did more work on the Keycloak integration in Horizon Stream
  • Dmitri continued his work on poller config support in OPA
  • Antonio added some test coverage for Enlinkd startup
  • Antonio made a bunch of updates to Enlinkd documentation
  • Emily worked on a bunch of cleanups to the requisition docs
  • Jeffrey-David Kapp did a bunch of simplifications to operator config and port forwarding for Stream
  • Thomas started implementing datachoices metrics in Stream
  • Gerald enabled configuring PostgreSQL authentication in Stream
  • Jason continued his work on a CI pipeline for Stream
  • Łukasz and Mark Frazier did more work on the Minion gateway in Stream
  • Mark Mahacek worked on a number of event formatting and reduction key improvements
  • I worked on fixing up Sonar runs in foundation-2022 including supporting code coverage from smoke tests
  • James fixed some Kafka-related test failures in Stream
  • Ronny worked on some doc changes in Stream
  • Benjamin Janssens worked on adding and removing alarms from situations in ALEC
  • Mike Rose worked on the PagerDuty integration in Stream
  • Arthur worked on ignite integration in Stream test infrastructure
  • Bonnie worked on service availability info in the quick start guide
  • Emily worked on baseline and notifications docs in the quick start guide
  • I fixed some CI fallout from recent integration test container changes
  • Alexander worked on creating a device config backup smoke test
  • I fixed maven signing in the ALEC release CI
  • Gerald worked on helm chart improvements in Stream
  • Morteza worked on speeding up smoke tests by combining them in a single CircleCI job
  • I changed a bunch of AbstractMockDao logging to trace-level, it's way too chatty when running tests
  • Freddy worked on some buffering improvements in time-series off-heap caching
  • Sean fixed an issue with an NPE in provisioning when the web UI is run independent of the backend

Web, REST, UI, and Helm

  • Christian made some changes to default cookie handling and CSRF tokens for forms
  • I worked on modernizing some of our javascript dependencies
  • Chinh Le reworked the Horizon Stream navigation
  • Benjamin Janssens worked on test coverage for the ALEC UI
  • Anya worked on pagination and search in the ALEC UI
  • Rob did more work on fixing an add issue with limits in the location REST API
  • Scott worked on converting Helm's AngularJS components to React
  • Scott did some initial work to integrate the new UI and menu bar


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

  • Chinh Le
  • Scott Theleman
  • Łukasz Dywicki
  • Benjamin Reed
  • Mark Frazier
  • Dmitri Herdt
  • Christian Pape
  • Sean Torres
  • Gerald Humphries
  • Anya Rybalova
  • Bonnie Robinson
  • Morteza Ershad-Manesh
  • Freddy Chu
  • Emily Marsh
  • Benjamin Janssens
  • Alexander Chadfield
  • Thomas Bigger
  • Scott Thompson
  • Mark Mahacek
  • Jeffrey-David Kapp
  • Arthur Naseef
  • Mike Rose
  • Rob Ellis
  • Antonio Russo
  • Alberto Ramos
  • James Hutchinson
  • Ronny Trommer
  • Jason Berry

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.


It's that time of year again!

Hacktoberfest 2022 has started, and it is once again time to make open source projects better and maybe get a t-shirt in the process. ;)

OpenNMS is participating and we've got a bunch of issues marked quickwin or quickwindoc in our issue tracker if you'd like to play along.

Feel free to join our Mattermost chat server and pop in to the OpenNMS Development channel if you have any questions or want some guidance on where to start.

Happy hacking!

Releases and Roadmap

Upcoming Releases

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

The next OpenNMS release day is October 12th, 2022.

We currently expect updates to all supported Meridians, plus Horizon 30.

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
  • a bunch of improved analytics in our datasources plugin
  • support for Hashicorp Vault in SCV
  • promoting a number of the "UI preview" enhancements to become part of the main UI
  • improvements to the requisitions REST API
  • a new Quick Start Guide in the documentation

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.

Meridian 2019 EOL in November

Meridian releases are supported for 3 years.
The initial Meridian 2019 happened pretty late in the year, so its 3-year birthday will be November 6th, 2022.
The November 9th release cycle will be the final release as it rolls out of active support.


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

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-142: Situation Storage: Implement situation storage to definite location.
  • ALEC-178: Sonar Cloud Security Grade A - Figure out What We Need to Fix and Report the List
  • ALEC-180: Investigate MIMIC to test ALEC
  • ALEC-183: Fix visual bugs - release 2.1.x
  • ALEC-191: Backend - Create endpoint to add/remove alarms from situation
  • HS-117: Release tags for Docker Images and Github
  • HS-127: Ingress update for latest k8s versions
  • HS-129: Allow for instance specific SSL certs
  • HS-140: Cleanup UI yaml and for hs ui image
  • HS-234: Add notifications GQL mutation when service is available
  • HS-282: Elasticsearch pod stuck pending
  • HS-310: Remove manual steps from dev environment setup
  • HS-339: Stats: Implement Phase 1 Metrics collection
  • HS-344: Grafana test and config for operator
  • HS-354: Expose notifications endpoints through GQL
  • HS-368: Strimzi Kafka memory usage
  • HS-370: Get ingress to use port 80, https as well.
  • HS-380: FE - Add store unit tests
  • HS-382: Keycloak realm import from Keycloak operator sometimes fails when deployed into Kind
  • HS-384: Error from first Keycloak realm import: "Key (name)=(master) already exists."
  • HS-395: Dynamic imports only work in local dev
  • HS-397: Research/prototype with different charting libraries
  • HS-402: Update and fix Vitest config to handle latest Featherds versions
  • HS-403: Repo cleanup: remove local-sample
  • HS-407: AlarmKafkaConsumerIntegrationTest.testProducingAlarmWithConfigSetup fails intermittently
  • HS-409: Convert any ConfigMaps that store sensitive info to Secrets
  • HS-410: Enable Postgres authentication
  • HS-411: Allow Operator to generate passwords with special characters
  • HS-412: Handle TLS properly across Helm chart
  • HS-416: Keycloak password is showing in Core logs
  • HS-420: Allow configuration of ingress port numbers in Operator/CRD
  • HS-423: UX competitive analysis on 5 competitors
  • NMS-9334: BSMAdminIT flapping
  • NMS-14125: Discourage and optimize use of cci build workspace
  • NMS-14397: EnhancedLinkd Collection priority Scheduling
  • NMS-14450: VMware requisition import fail with "Problem getting input stream: '{}'"
  • NMS-14520: Build MOS dashboard and supporting components
  • NMS-14539: Identify web UI styling quick wins
  • NMS-14593: Populate Velocloud Partner Requisition with Gateway Nodes
  • NMS-14617: Quick Start: Set up a threshold
  • NMS-14660: MOS CDR: Grafana/Helm Integration, display MOS data
  • NMS-14671: Add documentation for partial configuration modification via REST
  • NMS-14716: Form Can Be Manipulated with Cross-Site Request Forgery (CSRF)
  • NMS-14717: Session Cookie (Authentication Related) Does Not Contain The "HTTPOnly" Attribute
  • NMS-14724: backport CircleCI and Docker enhancements from develop to release-30.x
  • NMS-14729: Add new handling options for the snmp provisioning metadata adapter
  • NMS-14731: Can the OG nav-bar coexist with a Feather / Vue app?
  • NMS-14740: Kafka Producer NPE causes collection failure overall
  • NMS-14763: Add Priority Executor Classes
  • NMS-14771: Move Common Adapter Enlinkd classes to Core
  • NMS-14772: Implement connection manager
  • NMS-14773: Provide SubNetwork Classes for Enhanced Linkd
  • OIA-45: OIA Add interface for poller-configuration

Jump to section

About the Author: RangerRick

Principal Software Engineer. Manages the release process of OpenNMS Horizon and Meridian, and a bunch of other stuff.