Using Vendor Certification extensions to filter component element discovery

Document ID : KB000045041
Last Modified Date : 17/08/2018
Show Technical Document Details
Issue:
After linking a Monitoring Profile containing default QoS based Metric Families, the Data Aggregator performance became very poor and CA Performance Manager Dashboards become non-responsive.
Environment:
CAPM 2.8 and later
Cause:

Applying QoS based Certifications to devices in CA Performance Manager (CAPM) can, in certain environments with large QoS configurations, lead to the creation of millions of new unwanted and unexpected component elements.

Resolution:

After cleaning up and removing/deleting the problem elements from the system, some extensions to the Vendor Certifications involved can be created. This will limit the number of component elements created. This will in turn, result in the problem not being seen again.

NOTE:  While this solution focuses on QoS data, it can be applied to other Vendor Certifications.

The extension will tell the system to only generate new component elements when the MIB data matches a particular text string. The example QoS VC used here is:

http://<DA_HOST>:8581/typecatalog/certifications/snmp/extension/CiscoQosClassMapCounter64Mib 

The imported data we used to filter, as an example, is:

<?xml version="1.0" encoding="UTF-8"?>
<DataModel namespace="http://im.ca.com/certifications/snmp" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="SNMPCertificationFacet.xsd">
<Author>CA</Author>
<Version>1.42</Version>

<FacetType name="CiscoQosClassMapCounter64Mib" descriptorClass="com.ca.im.core.datamodel.certs.CertificationFacetDescriptorImpl">
<FacetOf namespace="http://im.ca.com/core" name="Item" />
<Expressions>

<ExpressionGroup destCert="{http://im.ca.com/normalizer}NormalizedQosClassMapInfo" name="CiscoQosClassMapMibDS">
<Filter>cbQosObjectsType==2 &amp;&amp; (cbQosInterfaceAdminStatus!=2) &amp;&amp; (cbQosInterfaceType!=24) &amp;&amp; (cbQosInterfaceType!=1) &amp;&amp; (cbQosCMName.contains('a_production_critical') || cbQosCMName.contains('a_video'))</Filter>
<Expression destAttr="ParentUniqueIDs">cbQosServicePolicyIfIndexValue</Expression>
</ExpressionGroup>

</Expressions>
</FacetType>

</DataModel> 

 

Another example for a second QoS VC would be:

http://<DA_HOST>:8581/typecatalog/certifications/snmp/extension/CiscoQosClassMapMib 

The imported data we used to filter, as an example, is:

<?xml version="1.0" encoding="UTF-8"?>
<DataModel namespace="http://im.ca.com/certifications/snmp" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="SNMPCertificationFacet.xsd">
<Author>CA</Author>
<Version>1.42</Version>
<FacetType name="CiscoQosClassMapMib" descriptorClass="com.ca.im.core.datamodel.certs.CertificationFacetDescriptorImpl">
<FacetOf namespace="http://im.ca.com/core" name="Item" />
<Expressions>

<ExpressionGroup destCert="{http://im.ca.com/normalizer}NormalizedQosClassMapInfo" name="CiscoQosClassMapMibDS">
<Filter>cbQosObjectsType==2 &amp;&amp; (cbQosInterfaceAdminStatus!=2) &amp;&amp; (cbQosInterfaceType!=24) &amp;&amp; (cbQosInterfaceType!=1) &amp;&amp; (cbQosCMName.contains('a_production_critical') || cbQosCMName.contains('a_video'))</Filter>
<Expression destAttr="ParentUniqueIDs">cbQosServicePolicyIfIndexValue</Expression>
</ExpressionGroup>

</Expressions>
</FacetType>
</DataModel>

In both cases the <Filter> statement is where edits take place to accomplish this goal. In the out of the box form, the <Filter> for the CiscoQosClassMapMib and CiscoQosClassMapCounter64Mib are the same. They look like this unedited:

<Filter>

cbQosObjectsType==2 && (cbQosInterfaceAdminStatus!=2) && (cbQosInterfaceType!=24) && (cbQosInterfaceType!=1)

</Filter>

We added these two filters that further limit the matching entries found that would lead to element generation:

(cbQosCMName.contains('a_production_critical') || cbQosCMName.contains('a_video')


In the examples above only entitied in the MIB that have MIB Objects that contain:

cbQosCMName MIB OID that contains 'a_production_critical' in the value
cbQosCMName MIB OID that contains 'a_video' in the value

Additional Information:
Full instructions for using the VC Extension functionality can be found in the CAPM online Wiki Documentation:

https://docops.ca.com/ca-performance-management/3-6/en/building/self-certification/create-or-extend-vendor-certifications