
[[gu-bsm-edges]]
= Edges
:description: How to use edges to map alarm status monitoring with {page-component-title}: child service, IP service, reduction key, and application.

Edges map the alarm status monitoring with OpenNMS.

The following types can be used:

* <<gu-bsm-child-service, Child Service>>: A reference to an existing business service on which to depend.
* <<gu-bsm-ip-service, IP Service>>: A convenient way to refer to the alarms that a monitored IP service can generate.
This will automatically provide edges for the nodeLostService, interfaceDown, and nodeDown reduction keys of the specified service.
* <<gu-bsm-reduction-key, Reduction Key>>: A resolved reduction key that refers to a specific alarm.
This must match a specific alarm reduction key, not the reduction key formula from your event definitions.
* <<gu-bsm-application, Application>>: A reference to an existing application.
This automatically provides edges for the nodeLostService, interfaceDown, and nodeDown reductions keys of the defined services of this application.
+
TIP: If you need help determining the reduction key used by alarm, trigger the alarm in question and copy the reduction key from the alarm details page.

All edge types have the following parameters:

Map Function:: The associated xref:operation:deep-dive/bsm/map-functions.adoc[Map Function] for this edge.
Weight:: The relative weight of this edge.
Used by certain reduce functions to adjust how much the status of an edge impacts the business service status.

Both IP Service and Reduction Key type edges also support a friendly name parameter which allows you to set how the edge is labeled in the Topology User Interface.

[[gu-bsm-child-service]]
== Child Services

To create a hierarchy of Business Services, create the child service(s) first.
Select the Business Service as Child Service dependency to build the hierarchy.

[[gu-bsm-ip-service]]
== IP Services

The IP Service is a predefined set of reduction keys that lets you easily assign a specific monitored service to the given business service.
As an example, you have multiple servers with a monitored service SMTP and you want to model a business service named Mail Communication.
If just the reduction key for a nodeLostService is assigned, the business service would not be affected if the IP interface or the whole node goes down.
To provide coverage for these events, the IP Service monitors the following reduction keys for the assigned service:

* `uei.opennms.org/nodes/nodeLostService:%nodeId%:%ipAddress%:%serviceName%`: Matches alarms when the given monitored service goes down
* `uei.opennms.org/nodes/interfaceDown:%nodeId%:%ipAddress%`: Matches alarms when the given IP Interface of the monitored service goes down
* `uei.opennms.org/nodes/nodeDown:%nodeId%`: Matches alarms when the given Node of the monitored service goes down

[[gu-bsm-reduction-key]]
== Custom Reduction Key

The reduction key edge is used to refer to specific instance of alarms.
When an alarm with the given reduction key is present, the alarm's severity will be used to calculate the operational status of the business service.
To give a better explanation, you can set a friendly name for use in the Business Service View.

.Example of a Reduction Key for a specific nodeLostService
[source]
----
uei.opennms.org/nodes/nodeLostService::2:192.168.42.69:Postgres
----

[[gu-bsm-application]]
== Application

Already defined Applications can be used in Business Service topologies.
An Application itself defines a set of monitored services.
Each of these generate nodeLostService, interfaceDown, and nodeDown reduction keys automatically.
