Requires opCharts-4.5.8 or greater
opCharts introduces a powerful new feature known as Metric Links. This feature enhances the visualization capabilities in topological, geographical, or network maps. It enables the establishment of a custom metric defining link weight and color. A common use-case for this might be defining the Signal-to-Noise Ratio (SNR) for a radio link between two distinct towers.
Metric Links utilize the NMIS status system to derive their values, providing flexibility in defining what constitutes a good link versus a bad link. For detailed guidance on how to set this up, please refer to the guide on Creating Thresholds with NMIS Modelling.
Metric Links are compatible with all map types.
Example:
Adding a Metric Link
You can find the Add Metric Link button next to the Add Interface Link button.
Adding a Metric Link:
Locate the Metric Link button situated next to the Add Interface Link button.
Metric Links function similarly to Interface Links. The key difference is that Metric Links allow the usage of any resource with a threshold to calculate the metric, instead of only interface data.
Choose the desired node. The resources (inventory) for the selected node will appear.
Choose the Resource you require. Next, choose the index for the resource.
If a threshold exists for the node, resource, and index, the status field will be auto-populated.
Lastly, select the link destination and save your changes.
The link between the two nodes will now utilize the status document's level to display the overall status, colouring the link accordingly. The link's weight will be calculated based on the value.
Line Weight
Level Range | Weight |
---|---|
Level < 5 | 2 |
5 <= Level < 10 | 3 |
10 <= Level < 20 | 4 |
20 <= Level < 40 | 5 |
40 <= Level < 60 | 6 |
60 <= Level < 80 | 8 |
80 <= Level | 10 |
Line Colour
Status | Color Code |
---|---|
"reachable", "normal", "up" | #5cb85c |
"degraded", "error", "minor", "warning" | #FFD700 |
"unreachable", "major", "critical", "fatal", "down" | #d9534f |
Others / Null | #999 |
Metric Link Resource Views
Another powerful aspect of the Metric Links feature in opCharts is the ability to configure custom resource panels, complete with tables and charts.
To set up these panels, you need to create a file located at conf/table_schemas/opCharts_panels-all.json
. You can use the template file provided in omk/lib/json/opCharts/table_schemas/opCharts_panels-all.json
as a starting point.
The JSON file is an array of objects. Each object includes three top-level keys:
id | The resource name or inventory name. |
table | An array of objects constituting the cells of the table. For more information on customizing the table schema, please refer to the documentation. |
charts | An array of objects that generate radial charts at the bottom of the panel. |
[ { "id": "ospfNbr", "table": [ { "label": "Node", "name": "nodes.name", "cell": "Tooltip", "formatter": "ShortenedString", "editable": "false", "maxLength": 22 }, { "label": "ospfNbrIpAddr", "name": "inventory.data.ospfNbrIpAddr", "cell": "Tooltip", "formatter": "ShortenedString", "editable": "false", "maxLength": 22 }, { "label": "ospfNbrRtrId", "name": "inventory.data.ospfNbrRtrId", "cell": "Tooltip", "formatter": "ShortenedString", "editable": "false", "maxLength": 22 }, { "label": "ospfNbrState", "name": "inventory.data.ospfNbrState", "cell": "Tooltip", "formatter": "ShortenedString", "editable": "false", "maxLength": 22 } ], "charts": [ { "name": "inventory.data.ospfNbrEvents", "max": 100, "label": "ospfNbrEvents", "levels": [ "red", 75, "orange", 50, "yellow", 25, "green", 0 ] } ] }, { "id": "pkts_hc", "table": [ { "label": "Node", "name": "nodes.name", "cell": "Tooltip", "formatter": "ShortenedString", "editable": "false", "maxLength": 22 }, { "label": "Hardware", "name": "inventory.data.Hardware", "cell": "Tooltip", "formatter": "ShortenedString", "editable": "false", "maxLength": 22 }, { "label": "IP", "name": "inventory.data.ipAdEntAddr1", "cell": "Tooltip", "formatter": "ShortenedString", "editable": "false", "maxLength": 22 } ], "charts": [ { "name": "latest_data.subconcepts.pkts_hc.derived_data.ifOutUcastPkts", "max": 100, "label": "outUcastPkts", "levels": [ "red", 75, "orange", 50, "yellow", 25, "green", 0 ] }, { "name": "latest_data.subconcepts.pkts_hc.derived_data.ifInUcastPkts", "max": 100, "label": "inUcastPkts", "levels": [ "red", 75, "orange", 50, "yellow", 25, "green", 0 ] } ] } ]
In some cases, a resource might not have an existing table schema. These will be auto-generated in future updates.