Outlook: What could be possible with Meta-Data?

Motivation

The Meta-Data concept is already used in several parts of OpenNMS that improved the configuration part immensely.
But there are still other parts that could use and benefit from it.

This article should inspire OpenNMS administrators, engineers and developer and should be used to add other ideas to collect them in one place, instead of writing multiple Jira issues.

Filters

Using Meta-Data in filters. Two examples:

  • NodeDown Slack notifications only for nodes with Meta-Data environment:pro
  • Thresholds that are bound on all nodes that belong to department:it

Events

NodeLostService

Right now nodeLostService is a very generic event. There is not much space to customize it for specific needs.
So the nature of this event is to have one operator instruction field that can be filled with static data. Of course each defined service attached to your nodes in your environment is handled differently and need specific documentation.

Just to make sure: I’m talking about all the ICMP, SNMP, HTTP, HTTPS, etc., services.

So static information in the operator instruction field is definitely not helpful. Meta-data will also be a benefit here.

Add ${requisition:documentationurl} into the event field operinstruct and every nodeLostService event will get dynamic content. Additionally, the operator instruction content can also be used in notifcations using %operinstruct% in the text field.

Dynamic severites

First of all: I think this feature should be built in OpenNMS by default.

But also here it might be possible to use Meta-Data.
I could imagine that it could be possible to set the severities individually.
nodeLostService is always and for all services minor.
This is so not true :slight_smile:

Services could get an individual priority if a service severity Meta-Data is defined differently.

Enriching details

Right now the event descriptions are very static. But often it is required to have more dynamic content in there.
No matter if you want to add a description label as described in several other sections here, like [administration:pro:webserver], or adding important asset information (The assets will be migrated to the Meta-Data in future) to print the location or serialnumbers of nodes into an event, it does make sense to be able to use Meta-Data in events.

Search Box

The new search box that is available in Horizon >= 27 could be able to search for Meta-Data.
Similar to the filter example:

  • Show me all nodes in environment:test
  • Search for all nodes that run application:webservers

Since the Search Box in the web UI uses the new search API, it also help automating stuff. Generating lists out of OpenNMS to work with in other tools.

Grafana

Queries could use Meta-Data to select nodes or resources.
Also it would be pratical to see a self-defined Meta-Data string or a combination of different ones in Grafana besides the nodeLabel(that is mostly not helpful). For example:

web01-srv - [administration:pro:webserver]

The definition of the string could be:

[${requisition:stack}:${requisition:environment}:${requisition:application}]

Web UI

When using Meta-Data for labeling nodes, we need to display it (or them, when using combinations of Meta-Data) at different places.

  • The node page
  • Alarm detail page and alarm overview page
  • Availability views

Business Service Monitors

Maybe it could be possible to provide a function to add easily all “defined list of services” of nodes with application:webservers and environment:pro. Right now it is a huge amount of time that is required until you have added many nodes into the web UI.

Provisiond

Provision policies are a mighty tool to administrate your nodes.
Being able to set Meta-Data in policies, maybe based on IP ranges, name schemes, requisitions, categories, SNMP OIDs etc will make sure, you can and want to use Meta-Data in all other places.

3 Likes

Personally I am thinking of populating the meta-data tab for the node with some configurations related parameters, either populate via API or requisition (not sure which one fits yet). This way my end users can read out and compare configurations without having to access the equipment monitored.

For that reason it would be nice to be able to have sections being configurable, or even some kind of template framework. Unless this can be achieved in another way that is.

@marwe what do you think about How to Monitor Websites Using Metadata?

Wow! That is definitely something to look into, thanks for the link!

This’s really necessary for me. I need to see service meta-data in my alarm panel. Please make it possible.