• Loading...
Discover with BMC ADDM

This product can be discovered by Enterprise version of BMC Atrium Discovery and Dependency Mapping, but you can still Download our free Community Edition to discover other products!

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

BMC Performance Assurance Agent - Change History

Reports & Attributes

BMC Performance Assurance Agent - Reports & Attributes

Publisher Link

Product Description

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

Known Versions

  • 6.5
  • 6.5.20
  • 6.6.00
  • 7.1.20
  • 7.1.40
  • 7.1.41
  • 7.2.00
  • 7.2.10
  • 7.3
  • 7.4
  • 7.4.1
  • 7.5

Software Pattern Summary

Product ComponentOS TypeVersioningPattern Depth
AgentUNIX, WindowsWMI, Active, File, Path, Registry, PackageInstance-based
CollectorUNIX, WindowsWMI, Active, File, Path, Registry, PackageInstance-based

Platforms Supported by the Pattern

The patterns support both the Windows and UNIX platforms.


Software Instance Triggers

PatternTrigger NodeAttributeConditionArgument
PerformanceAssurancePerformDiscoveredProcesscmdmatches \bbgsagent$
cmdmatches (?i)\bbgsagent\.exe$
CollectorDiscoveredProcesscmdmatches \bbgscollect$
cmdmatches (?i)\bbgscollect\.exe$

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

WMI Versioning

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)

Active Versioning

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

File versioning

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

  • /installationTaskConfiguration/product[@id="productbpa"]/version/@releaseVersion
  • /installationTaskConfiguration/product[@id="productbpa"]/version/@majorVersion
  • /installationTaskConfiguration/product[@id="productbpa"]/version/@minorVersion

Path versioning

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


Registry versioning

The version can be obtained from the following registry key

  • HKEY_LOCAL_MACHINE\\SOFTWARE\\BMC Software\\BEST1\\Install\\Agent\\BuildNumber

Package versioning

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

Product Architecture

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

Pattern Trigger

The Agent pattern triggers on the bgsagent process, the Collector pattern triggers on the bgscollect process.

Additional attributes

Port information

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 nameParse trigger process arguments with regular expressionParse configuration file with xpathObtain 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

Instance name

In the collector pattern, the instance name is obtained by parsing the arguments with the following regular expression:

  • -I\s(\w+)\b

SI Depth

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

Relationship creation

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

Information Sources

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

Open Issues

There are no known open issues with this pattern.

Created by: Chris Blake 8 Feb 2010
Updated by: Rebecca Shalfield 16 Jul 2013

Skip to end of metadata
Go to start of metadata