Datasources

Instance Grouping

DataSource instances can be grouped together to improve how they're displayed in the device tree. Grouping also dictates how overview graphs are constructed, since overview graphs are generated per instance group.

LogicMonitor supports two methods for managing instance groups:

  • Manual instance group management
  • Automatic instance group management

Manual Instance Group Management

Instance groups and their members can be managed manually from the Instances tab found in a DataSource's configurations, as discussed in Instance Groups.

Automatic Instance Group Management

Alternately, you can allow the DataSource to automatically create instance groups for you and auto-assign instances to these groups upon discovery. As shown (and discussed) next, automatic group management is established from the Group method field found in the Active Discovery area of the DataSource definition.

Note: In order to use Group method, the DataSource's Multi-instance? and Enable Active Discovery options must both be checked.

As shown in the previous screenshot, the Group method field's dropdown features up to four automated grouping methods that allow you to organize instances based on shared attributes. The methods you are presented with here are dependent upon what is supported by the protocol (e.g. SNMP, WMI, etc.) being used to discover instances (as defined in the Discovery method field).

Each of the four available automated instance grouping methods is discussed next.

NetScaler

Used only for Citrix NetScalers, this grouping method automatically groups services according the Load Balancing VIPs in which they are members.

NetScalerServiceGroup

Used only for Citrix NetScalers, this grouping method automatically groups services according to service group names.

Regular Expression

This method supports three parameters:

  • useValue="name"|"value"
  • dynamicGroup="a regex with capturing"
  • groupName1="regex1" groupName2="regex2"

As detailed in the following sections, these parameters exist to answer two basic questions:

  1. How should instances be organized and what should those resulting groups be called? (Determined via either the groupName or dynamicGroup parameter; these two parameters are mutually exclusive.)
  2. When evaluating the first question, which property of the instance should be used—either its name or value? (Determined via the useValue parameter.)

useValue (optional)

This parameter determines which instance property (name or value) will be evaluated. It is optional; if useValue is not specified, the instance name (also commonly referred to as "WILDALIAS") will be used by default.

The following examples illustrate how the useValue parameter can be used in conjunction with either the dynamicGroup or groupName parameter to indicate that the instance's value (also commonly referred to as "WILDVALUE") should be evaluated, rather than its name.

useValue="value" dynamicGroup="\w+"
useValue="value" Controllers="tray\d+controller." Batteries="tray\d+battery." CacheDIMMs="tray\d+dimm." Fans="tray\d+fan." PowerSupplies="tray\d+psu." SFPs="tray\d+sfp."

dynamicGroup

If you want to dynamically extract group names from instance names or values, you can specify a regular expression with capturing (i.e. a portion of the regular expression that should be used as the group name, which will be the first capture group, defined by parentheses). For example, Linux hosts may have some set of physical block devices (e.g. sda, sdb, hdb, hdc, etc.), each with zero or more partitions. To group each partition (e.g. sda1, sda2, sda3, sdb2, sdc5) with its parent block device (sda, sdb, sdc) without requiring advanced knowledge of all possible block device names (and thus groups), you could use the following expression, which would return group name "sda" for sda1, sda2, and sda3; group name "sdc" for sdc5; and so on.

dynamicGroup="^(.d.)"

groupName

You can assign instances to a predefined set of groups based on the name or value of the instances. The parameters are group name, followed by a regular expression. Any instance that matches the regular expression will become a member of the group. Instances can be members of more than one group if they match more than one regular expression.

For example, a Linux host may have physical disks sda, sdb, and sdc, along with Logical Volume Manager (LVM) disks dm0, dm1, and dm2. To auto-assign all LVM disks into group "LVM", and all physical disks into group "physical", you could use the following expression:

physical="sd.*" LVM="dm.*"

The regular expression must match the entire instance in order for the instance to be assigned to that group. Thus, it is usually necessary to end in regex wildcards, as shown in the previous example (i.e. ".*"). Additionally, predefined group names cannot contain spaces.

Instance Level Property

If you enter an Instance Level Property name (prepended with "auto.") into the Parameters field, an instance group for each unique value of that ILP will be created. For example, if you wanted to group all instances that share a common port speed, you would enter the following:

auto.port_speed

This would result in unique groups being created for instances with port speeds of 100Mbps, 1Gbps, 10Gbps, and so on. Note that ILPs are case sensitive in this field.