When attempting to extend Vendor Certification in CA Performance Management (CAPM), getting error - "destAttr does not exist in metric family"
search cancel

When attempting to extend Vendor Certification in CA Performance Management (CAPM), getting error - "destAttr does not exist in metric family"

book

Article ID: 399357

calendar_today

Updated On:

Products

Network Observability CA Performance Management

Issue/Introduction

When attempting to extend a Vendor Certification, in this case - hrStorageMIB with the following to add buffers to the memory utilization calculation:

<Expression destAttr="Used Memory Percentage"> snmpProtectedDiv((hrStorageUsed - (hrStorageMemorybuffers + hrStorageCachedmemory) ) ,hrStorageSize)* 100</Expression>

 

It returns the following error when running the PUT request to extend the VC:

<statusMessage>destAttr does not exist in metric family</statusMessage>
<errorText> "Used Memory Percentage" is not defined in {http://im.ca.com/normalizer}NormalizedMemoryInfo</errorText>

Environment

DX NetOps CAPM all currently supported releases

Cause

Before extending the Vendor Certification (VC), you need to add the new Attribute you're using - UsedMemoryPercentage (the new metric) to the Metric Family (MF), since it doesn't currently exist.

NOTE: There should be no spaces in the attribute name, so change "Used Memory Percentage" to "UsedMemoryPercentage"

Resolution

First, add the new metric (UsedMemoryPercentage) to the we have to do the following:

  1. Get the current NormalizedMemoryInfo MF extensions by running a GET request on:

    http://<DA_HOST>:8581/typecatalog/metricfamilies/extension/NormalizedMemoryInfo

  2. This will return a template (if you already have extensions defined, it will show them). Then in this template, we add the UsedMemoryPercentage (NOTE: no spaces between the words) attribute as follows:

    <AttributeGroup name="MemoryInfo" list="true" external="true">
    <Attribute name="UsedMemoryPercentage" type="Double">
    <Documentation>The percentage of used memory.</Documentation>
    <IsDbColumn>true</IsDbColumn>
    <Baseline>false</Baseline>
    <RollupExpression />
    <Minimum>true</Minimum>
    <Maximum>true</Maximum>
    <RollupStrategy>Avg</RollupStrategy>
    <StandardDeviation>true</StandardDeviation>
    <Variance>false</Variance>
    <Percentile>95</Percentile>
    <Percentile2>0</Percentile2>
    <Percentile3>0</Percentile3>
    <ProjectionPercentile>0</ProjectionPercentile>
    <AggregateToDevice>true</AggregateToDevice>
    <DeviationFromBaseline>false</DeviationFromBaseline›
    </AttributeGroup>

    See the following screenshot:



    You run this as a PUT request


  3. Once the attribute is added, you can then do the VC extension, first by running a GET request on the VC extensions to retrieve the template to use:

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

  4. Then add the OIDs to be used:

    <AttributeGroup name="hrStorageStats" external="true" list="true">
    <Attribute name="hrStorageMemorybuffers" type="Long">
    <Documentation />
    <IsKey>true</IsKey>
    <Source >1.3.6.1.2.1.25.2.3.1.6.6</Source>
    </Attribute >
    <Attribute name="hrStorageCachedmemory" type="Long">
    <Documentation />
    <IsKey>true</IsKey>
    <Source >1.3.6.1.2.1.25.2.3.1.6.7</Source>
    </Attribute>
    </AttributeGroup>


    Followed by the Expression (see the screenshot below):

    <Expression destAttr="UsedMemoryPercentage"> snmpProtectedDiv((hrStorageUsed - (hrStorageMemorybuffers + hrStorageCachedmemory) ) ,hrStorageSize)* 100</Expression>


  5. Then run the above as a PUT request

    If you run the GET request on the VC extensions again, you should see it as follows:



  6. Then you should see it in your VC page:



  7. You may need to click on "Update Metric Families" for the device to see the new metric.

Additional Information