- 1 Product Description
- 1.1 Known Versions
- 2 Software Pattern Summary
- 3 Platforms Supported by the Pattern
- 4 Identification
- 5 Versioning
- 5.1 Obtaining the install root
- 5.2 WMI Versioning
- 5.3 Active Versioning
- 5.4 File versioning
- 5.5 Path versioning
- 5.6 Registry versioning
- 5.7 Package versioning
- 6 Application Model Produced by Software Pattern
- 6.1 Product Architecture
- 6.2 Pattern Trigger
- 6.3 Additional attributes
- 6.4 SI Depth
- 6.5 Relationship creation
- 7 Subject Matter Expertise
- 8 Testing
- 9 Information Sources
- 10 Open Issues
- Discover with BMC ADDM
- What is this?
- This is a product information page, containing details of the information that BMC Atrium Discovery gathers about a product and how it is obtained.
- Product Name
- Performance Assurance Agent
- Publisher Page
- Performance Management Software
- TKU 2013-Jul-1
- Change History
- Reports & Attributes
- Publisher Link
BMC Performance Assurance for servers helps predict future capacity requirements and optimize resouces. It provides server sizing capabilities to identify underutilized or over-utilized servers for consolidation projects.
|Note:BMC Performance Assurance was marketed as BMC Patrol up to version 7.3. This documentation refers to both products|
Software Pattern Summary
|Product Component||OS Type||Versioning||Pattern Depth|
|Agent||UNIX, Windows||WMI, Active, File, Path, Registry, Package||Instance-based|
|Collector||UNIX, Windows||WMI, Active, File, Path, Registry, Package||Instance-based|
Platforms Supported by the Pattern
The patterns support both the Windows and UNIX platforms.
Software Instance Triggers
Simple Identification Mappings
The following processes are given simple identities.
|BMC Performance Assurance Agent||\bbgsagent$|
|BMC Performance Assurance Agent||(?i)\bbgsagent\.exe$|
|BMC Performance Assurance Agent Collector||\bbgscollect$'|
|BMC Performance Assurance Agent Collector||(?i)\bbgscollect\.exe$|
|BMC Performance Assurance Agent Service||(?i)\bbgs_sdservice\.exe$|
Obtaining the install root
The install root is obtained by one of the following methods, listed in order of preference
- On Windows, the trigger process is parsed using regular expression ^(\w\:\\.+)\\bgs\\bin\\bgs
- On UNIX, the trigger process is parsed using regular expression ^(/.+)/bgs/bin/bgs
- The process arguments are parsed using regular expression -[bB]\s*"(.+?)"
- The process arguments are parsed using regular expression -[bB]\s*(\S+)
- On Windows, the following registry key is parsed: HKEY_LOCAL_MACHINE\\SOFTWARE\\BMC Software\\BEST1\\Service\\ContextDir
This is attempted for Windows only
The CIM_DataFile class in the root\CIMV2 namespace on Windows platform is responsible for storage of information of the files, present on the host. The version of the product can be obtained by running one of the following WMI queries:
- If trigger process is fully qualified: SELECT Version FROM cim_datafile where name='<trigger process>'
- If trigger process is not fully qualified: SELECT Version FROM cim_datafile where name='<install root>\\bgs\\bin\\bgsagent.exe' (or similarly with bgscollect.exe for the collector)
If the trigger process is fully qualified, it is run with the -h option
If the trigger process is not fully qualified, the command <install root>/bgs/bin/bgsagent -h (or bgscollect -h for the collector) is run
The output of the command is parsed using the following regular expression:
- For the agent: Perform Agent Version (\d+(?:\.\d+)*)
- For the collector: bgscollect Version (\d+(?:\.\d+)*)
|Note: Active Versioning is not attempted for the collector on Windows. Unlike the agent, and unlike on UNIX, bgscollect -h gives a non zero return value, which Atrium Discovery interprets as a failed commant. Hence the output from bgscollect -h on Windows cannot be used|
Obtaining the configuration file
On Windows the configuration file is obtained from location <install root> \\..\\..\\bpaInstalledConfiguration.xml
On UNIX, finding the path to the configuration file is more complicated. First the pattern must obtain the path to the file. It does so by parsing the following file with the following regular expression:
- File: <install root>/bgs/log/bgscollect.log
- Regular expression: (?i)Current working directory: (/.+/).+?/best1
(if several matches are returned for the regular expression the last one is used)
The configuration file <working directory>/bpaIsntalledConfiguration.xml is then extracted
Parsing the configuration file
Version is obtained by parsing the configuration file with the following xpaths
If the install root was not obtained from the registry, the full version can be obtained by parsing the install root using the following regular expression(?i)best1[_\\](\d+(?:\.\d+)*)
The version can be obtained from the following registry key
- HKEY_LOCAL_MACHINE\\SOFTWARE\\BMC Software\\BEST1\\Install\\Agent\\BuildNumber
This method is attempted on Windows only.
The pattern searches for all packages that match the following regular expression:
- ^(?i)BMC Performance Assurance
Version information is obtained from the packages using one of the following two methods (listed in order of preference):
- Parsing the package name using regular expression: ^(?i)BMC Performance Assurance (\d+(?:\.\d+)*)
- Extracting the package version number
If several packages match, the package with the greatest version is used.
Application Model Produced by Software Pattern
The product consists of an agent and a linked collector. In addition to the linked collector (which always had instance "noInstance") there can be several additional test collectors, distinguished by having different instances. It is believed there can be several running instances of the product, each running in different locations
The Agent pattern triggers on the bgsagent process, the Collector pattern triggers on the bgscollect process.
In the agent pattern, several port attributes are found using the following methods. If several methods are possible, the leftmost method is used first
|Port name||Parse trigger process arguments with regular expression||Parse configuration file with xpath||Obtain registry key|
|Agent Port||-a\s*(\d+)\b||/installationTaskConfiguration /propertyBundle /property /[name= "PERFORM_AGENT_PORT"] /value|
|Investigate Port||-d\s*(\d+)\b||/installationTaskConfiguration /propertyBundle /property /[name= "PERFORM_INVESTIGATE_PORT"] /value|
|SMTP Port||/installationTaskConfiguration /propertyBundle /property /[name= "PERFORM_AGENT_SMTP_PORT"] /value|
|Service Port||/installationTaskConfiguration /propertyBundle /property /[name= "PERFORM_AGENT_SERVICE_PORT"] /value||HKEY_LOCAL_MACHINE \\SOFTWARE \\BMC Software \\Service \\Port|
In the collector pattern, the instance name is obtained by parsing the arguments with the following regular expression:
For the agent, if the install root was obtained an instance based Software Instance is created via a key based on normalised install root, type and host key. Otherwise a grouped Software Instance is created with the default key group of type and host key.
For the collector, if instance and install root are both obtained an instance based SI based on instance, install root, type and host key is created. Otherwise a grouped SI, based on whichever of the aforementioned attributes are obtainable, is created
The collector pattern attempts to link to the relevant agent.
If the parent process ID of the collector is the same as the process ID of the agent, a client server link is created (the collector is the client).
If the above method fails, a link is created between the collector and an agent on the same host with the same install root. This method is only attempted if the collector has an instance of "noInstance".
Subject Matter Expertise
Subject Matter Expert input will be welcome on any other potential approaches not discussed to improving product versioning coverage and depth of BMC Performance Assurance Agents.
This pattern was tested against a live installation of the product
Most of the information used to develop this pattern came from analyzing a live installation of the product. The troubleshooting guide contains useful information on the product architecture. A list of ports used is available here
There are no known open issues with this pattern.