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

Since last time, we worked on documentation (Plugin API, daemons, Minion, Helm), Horizon Stream (Minion, build system, Keycloak, operator/Skaffold improvements, notifications, metrics, maps, and device UI), CircleCI, Enlinkd, datachoices telemetry, SNMP provisioning policy handling, ALEC situations, the location REST service, regex node filters in Helm, web validation.

Github Project Updates

Internals, APIs, and Documentation

  • Mark Frazier worked on moving over a lot of code for the Minion into Horizon Stream.
  • Arthur worked on a proof-of-concept "parent pom" structure for Stream.
  • Bonnie worked on documentation for "getting started", polling/service assurance, the event translator, and notifications.
  • Jeffrey-David Kapp and Jason did more work on Keycloak integration and docker deployment in Stream.
  • Emily worked on plugin API, PassiveStatus daemon, Minion port binding, and Provisiond documentation.
  • Morteza wrapped up some of his CircleCI job rearranging in anticipation of completing the first phase of the new dynamic CircleCI generation code.
  • I fixed some race condition issues with feature loading in newer branches.
  • Thomas continued his work on notifications fed from Kafka in Horizon Stream.
  • Antonio did more work improving Enlinkd's collection scheduling.
  • Alex and Lars worked on tracking strategy config and user/group counts in the datachoices telemetry.
  • Alex improved the SNMP interface model to differentiate between collection configs specified by provisioning policy, or user config.
  • I worked on a bunch of improvements to how our Docker images are generated.
  • Chandra wrapped up some changes related to Minion job scheduling in Stream.
  • Chandra worked on cleaning up and separating device creation and retrieval models in Stream.
  • Gerald worked on some operator improvements in Stream.
  • Łukasz added support for providing metrics using the OpenTelemetry API in Stream.
  • Arthur worked on configuring the Minion gateway in k8s/Skaffold for Stream.
  • Chandra implementing grouping of Minion metrics in Stream.
  • Mark Mahacek worked on various Helm documentation cleanups and improvements, including expanded entity datasource info.
  • Bonnie and Mark Mahacek worked on a "quick start" section in the operation docs.

Web, REST, UI, and Helm

  • Benjamin Janssens continued his work filling out the Situation APIs in ALEC.
  • Rob fixed a bug in the location REST service where it would only return the first 10 results.
  • Mike Rose worked on geomap device integration in Horizon Stream.
  • Chinh Le worked on geomap tests in Stream.
  • Mike Rose added Minion latency and uptime to the Stream device UI.
  • Alberto worked on support for using regular expressions to filter nodes in Helm.
  • I cleaned up some Sonar complaints in Helm.
  • Dmitri added support for partial updates in the config manager REST API using JSONpath.
  • Alex fixed some validation issues in user and discovery editing in the UI.
  • Chinh Le fixed the handling of empty values on device POST in Stream.


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

  • Antonio Russo
  • Jason Berry
  • Arthur Naseef
  • Łukasz Dywicki
  • Morteza Ershad-Manesh
  • Benjamin Reed
  • Mark Frazier
  • Chandra Gorantla
  • Bonnie Robinson
  • Mike Rose
  • Mark Mahacek
  • Alberto Ramos
  • Benjamin Janssens
  • Chinh Le
  • Thomas Bigger
  • Lars Schreiber
  • Alex May
  • Emily Marsh
  • Jeffrey-David Kapp
  • Dmitri Herdt
  • Gerald Humphries
  • Rob Ellis

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

OpenNMS Plugin API 1.1.0

OpenNMS Plugin API 1.1.0 was released last week, with a number of improvements to the features available to plugin implementers.

  • support serialization of time-series data to disk
  • support APIs for flow persistence in plugins
  • remove the dev flag from yarn for UI plugins

Please note that some plugin features will only be available in the upcoming Horizon 31 release.

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 Meridian 2022.

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 Experience - Paris, France - November 8th and 9th

We will be exhibiting at Open Source Experience in Paris, this year.

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-135: Accept/Reject situations
  • ALEC-163: Add endpoint to get situations status
  • ALEC-166: Situations cannot be accepted and rejected at the same time
  • HELM-332: HELM: Regex for Grafana Template Variable does not work on labels [Performance Datasource]
  • HS-144: Tenanted ingress controllers for each ONMS instance
  • HS-191: Backend: Schedule periodic jobs for the default Minion
  • HS-212: Add keycloak client through REST API opennms realm
  • HS-218: Create a CI-CD workflow to create the grafana wrapper, need to add Dockerhub repo for it.
  • HS-227: Minion landing - writing
  • HS-265: FE - Add geomap route, render page, hide search/dropdown/filtering elements
  • HS-266: FE - Render devices on map with useDeviceQueries
  • HS-269: Separate Device DTO models for creation / querying Devices
  • HS-279: FE - Forms should not send empty strings if value entered then erased
  • HS-283: FE - Add map unit tests
  • HS-288: Notification Service Alarm Kafka Consumer
  • HS-303: Prometheus PushGateway overrides metrics with same name
  • HS-306: SNMP RPC failures while Polling
  • NMS-8566: EventTranslator Daemon Documentation
  • NMS-13057: Update PG installation documentation to use SCRAM
  • NMS-13584: Migrate Notification wiki pages into docs
  • NMS-13911: Please update the copyright year on the docs page!
  • NMS-14007: Enhance MIB imports to handle OPAQUE data type implementation
  • NMS-14124: Reduce storage taken by artifacts
  • NMS-14423: Document allowed characters in service-names
  • NMS-14431: Documentation references invalid docker version for latest horizon version release
  • NMS-14490: Add KPI for installed OIA plugins to datachoices telemetry
  • NMS-14572: simplify assembly tarballs
  • NMS-14576: snmpCollect being reset to C even if a policy sets it to N
  • NMS-14590: Reflective XSS
  • NMS-14639: Release Work (August 10)
  • NMS-14642: Improve CircleCI jobs