The InfoDictItem Descriptor can appear anywhere after the InfoHub Descriptor, except before an Env Descriptor, but most logically falls among or after any InfoDict [domain] Descriptors and before the Publisher Descriptors. InfoDictItems form the set of nodes the InfoHub can store. While you can create them explicitly, the configuration process can implicitly create InfoDictItems corresponding to some other InfoHub components (Publishers, xLines, Subscribers). The syntax of an InfoDictItem Descriptor is:
InfoDictItem:{InfoDictID | InfoDictName}:ItemName:[InfoDictItemID]:[Label]:[Type][;ItemDescription]
InfoDictId or InfoDictName: The name or ID of the parent InfoDict Domain.
ItemName: A string value that identifies the InfoDict Item. An attempt to explicitly or implicitly configure an InfoDictItem without a Name produces an IHNAMEREQ error.
InfoDictItemID: A unique number that identifies an InfoDict Item and does not change once it is defined in an InfoHub.
If InfoDictItemID is not specified, the configuration gets the InfoDictItemID from the specified InfoDict domain. If the specified domain has no definition for the Name, the InfoHub configuration process generates a new unique random 31-bit positive integer to use (that is, InfoDictID is unique for each InfoDictID), and stores it with the InfoDictItem information. If the configuration process detects there is no Name or ID for the InfoDict, it produces an IHIDORNAMEREQ error. Note: the SNMP sub-agent provided with the GT.M monitoring Reference Implementation uses InfoDictItemIDs as indices in the OID index for each Value.
If InfoDictItemID is specified, configuration processing verifies before configuration completion that the specified InfoDict domain maps the specified InfoDictItemName; if it detects there is no Name or ID for a InfoDictItem, it produces an IHIDORNAMEREQ error; if it detects an attempt to map multiple InfoDictItemIDs to one Name, it produces an IHDUPITEM error. If configuration processing detects InfoDictItem Name and ID combinations supplied by multiple descriptors conflict, it produces an IHIDMISMATCH error; note that Publisher, Subscriber and xLine descrptors may implicitly define InfoDictItems. If configuration processing detects the configuration uses the same ID from two InfoDicts such that both fall on the same path at the same path level, it produces an IHPATHCONFLICT error.
Label: A alternate name for the InfoDict Item. If not specified, InfoHub uses InfoDictItemName for the Label.
Type: Indicates the type of value. There are four types of values—String, NONE, and META and user-defined. String denotes any String value and is the default. NONE indicates that the Item is not a leaf node, that is, it has sub-items but no value of its own. META means that the item triggers a Subscription for some set of other nodes but has no data of its own. META nodes act to aggregate multiple conditions into a single Subscription. Attempting to define a META node without a Subscription produces an IHMETANOSUB error. Attempting to use a NoInfo Subscription on a META node produces an IHMETANOINFO error. Attempting to use a Subscription on a NONE node produces an IHTNONENOSUB error. User-defined types enable a Reporter Adaptor to appropriately format and present information in the target environment it feeds. For example, the Reference Implementation SNMP sub-agent adapter, uses Label and Type configuration information to generate the MIB for InfoHub data.
ItemDescription: Description of the Item, typically for documentation purposes.
Note | |
---|---|
When the same InfoHub has multiple adapters, the user-defined Types must be a superset of the Types required by all the adapters, and the transforms for each adapter must deal appropriately with all Types, including transforming those outside their set into those within their set. |
InfoHub Internals | |
---|---|
Configuration processing stores InfoDict item information in the following nodes: ^InfoHubConf(InfoHubID,"InfoDicts",InfoDictID,BeginningSequenceNumber,ItemID)=[EndingSequenceNumber]:ItemName;Label:[Type]:[ItemDescription] ^InfoHubConf(InfoHubID,"InfoDicts","Dnames",InfoDictID,ItemName)=ItemID ^InfoHubConf(InfoHubID,"InfoDicts","Dnames",InfoDictName)=InfoDictID ^InfoHubConf(InfoHubID,BeginningSequenceNumber,"Paths",int1...)=ItemName;Label:[Type][:ItemDescription] |
Example:
InfoDict:UpTime::UpTimeDict InfoDictItem:UpTime:Days:3030400::Integer:Days since last reboot InfoDictItem:UpTime:Load01:3030401::Float:One minute load average InfoDictItem:UpTime:Load05:3030405::Float:Five minute load average InfoDictItem:UpTime:Load15:3030415::Float:Fifteen minute load average
This example defines an InfoDict Domain called UpTime and 4 InfoDict Items called Days, Load01, Load05, and Load15. This example is a part of SimpleMonitor.conf configuration file in the ULFM Reference Implementation.