Previous Topic: Create a Metric Family XML TemplateNext Topic: Basic Properties


Understanding the Metric Family XML Structure

A metric family defines the set of metrics to collect and report on for a given technology. These metrics are normalized so that reporting is uniform regardless of the vendor (data source). Not all vendors provide a value for every metric in a metric family, and not all metrics are required. Metrics are "null" when the vendor does not provide a value. Also, any report views based on the null metrics are empty.

A metric family also defines attributes that are captured during discovery, like the item name and index. There can also be discovery rules defined that reconcile component matching. You include a metric family in a monitoring profile. The set of metric families in a monitoring profile determines which metrics to collect for the devices in each device collection that is associated with the profile.

Here is an example of a metric family that supports our Frame-Relay PVC example. Notice how our example custom component, frPVC, is included in the ComponentFacets section (in bold, for example purposes):

<?xml version="1.0" encoding="UTF-8" ?> 
<!-- Auto-generated by the type catalog local manager.  --> 
<DataModel namespace="http://im.ca.com/normalizer" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="IMDBCertificationFacet.xsd">
  <FacetType name="frPVCInfo" descriptorClass="com.ca.im.core.datamodel.certs.NormalizedFacetDescriptorImpl">
    <Documentation>Frame Relay Permanent Virtual Circuit</Documentation> 
    <FacetOf namespace="http://im.ca.com/core" name="Item" /> 
    <AttributeGroup name="AttributeGroup" external="true" list="true">
      <Documentation /> 
      <Attribute name="Indexes" type="ObjectID[]">
         <Documentation /> 
         <Polled>false</Polled> 
         <Baseline>false</Baseline> 
         <IsDbColumn>false</IsDbColumn> 
         <Variance>false</Variance> 
         <StandardDeviation>false</StandardDeviation> 
         <Minimum>false</Minimum> 
         <Maximum>false</Maximum> 
         <WriteOnPoll>false</WriteOnPoll> 
         <RollupStrategy /> 
         <AttributeDisplayName /> 
         <Percentile>0</Percentile> 
       </Attribute>
       <Attribute name="Names" type="String">
         <Documentation>The name of the frame relay circuit</Documentation> 
         <Polled>false</Polled> 
         <Baseline>false</Baseline> 
         <IsDbColumn>false</IsDbColumn> 
         <Variance>false</Variance> 
         <StandardDeviation>false</StandardDeviation> 
         <Minimum>false</Minimum> 
         <Maximum>false</Maximum> 
         <WriteOnPoll>false</WriteOnPoll> 
         <RollupStrategy /> 
         <AttributeDisplayName /> 
         <Percentile>0</Percentile> 
        </Attribute>
        <Attribute name="Description" type="String">
          <Documentation>A description for the frame relay circuit</Documentation> 
          <Polled>false</Polled> 
          <Baseline>false</Baseline> 
          <IsDbColumn>false</IsDbColumn> 
          <Variance>false</Variance> 
          <StandardDeviation>false</StandardDeviation> 
          <Minimum>false</Minimum> 
          <Maximum>false</Maximum> 
          <WriteOnPoll>false</WriteOnPoll> 
          <RollupStrategy /> 
          <AttributeDisplayName /> 
          <Percentile>0</Percentile> 
        </Attribute>
        <Attribute name="BECNIn" type="Double">
          <Documentation>Backward congestion since the virtual circuit was created</Documentation> 
          <Polled>true</Polled> 
          <Baseline>false</Baseline> 
          <IsDbColumn>true</IsDbColumn> 
          <Variance>false</Variance> 
          <StandardDeviation>false</StandardDeviation> 
          <Minimum>false</Minimum> 
          <Maximum>false</Maximum> 
          <WriteOnPoll>false</WriteOnPoll> 
          <RollupStrategy>Sum</RollupStrategy> 
          <AttributeDisplayName /> 
          <Percentile>0</Percentile> 
        </Attribute>
        <Attribute name="FECNIn" type="Double">
          <Documentation>Forward congestion since the virtual circuit was created</Documentation> 
          <Polled>true</Polled> 
          <Baseline>false</Baseline> 
          <IsDbColumn>true</IsDbColumn> 
          <Variance>false</Variance> 
          <StandardDeviation>false</StandardDeviation> 
          <Minimum>false</Minimum> 
          <Maximum>false</Maximum> 
          <WriteOnPoll>false</WriteOnPoll> 
          <RollupStrategy>Sum</RollupStrategy> 
          <AttributeDisplayName /> 
          <Percentile>0</Percentile> 
        </Attribute>
        <Attribute name="FramesIn" type="Double">
          <Documentation>Frames received since the virtual circuit was created</Documentation> 
          <Polled>true</Polled> 
          <Baseline>false</Baseline> 
          <IsDbColumn>true</IsDbColumn> 
          <Variance>false</Variance> 
          <StandardDeviation>false</StandardDeviation> 
          <Minimum>false</Minimum> 
          <Maximum>false</Maximum> 
          <WriteOnPoll>false</WriteOnPoll> 
          <RollupStrategy>Sum</RollupStrategy> 
          <AttributeDisplayName /> 
          <Percentile>0</Percentile> 
        </Attribute>
        <Attribute name="FramesOut" type="Double">
          <Documentation>Frames sent since the virtual circuit was created</Documentation> 
          <Polled>true</Polled> 
          <Baseline>false</Baseline> 
          <IsDbColumn>true</IsDbColumn> 
          <Variance>false</Variance> 
          <StandardDeviation>false</StandardDeviation> 
          <Minimum>false</Minimum> 
          <Maximum>false</Maximum> 
          <WriteOnPoll>false</WriteOnPoll> 
          <RollupStrategy>Sum</RollupStrategy> 
          <AttributeDisplayName /> 
          <Percentile>0</Percentile> 
        </Attribute>
        <Attribute name="BytesIn" type="Double">
          <Documentation>Bytes received since the virtual circuit was created</Documentation> 
          <Polled>true</Polled> 
          <Baseline>false</Baseline> 
          <IsDbColumn>true</IsDbColumn> 
          <Variance>false</Variance> 
          <StandardDeviation>false</StandardDeviation> 
          <Minimum>false</Minimum> 
          <Maximum>false</Maximum> 
          <WriteOnPoll>false</WriteOnPoll> 
          <RollupStrategy>Sum</RollupStrategy> 
          <AttributeDisplayName /> 
          <Percentile>0</Percentile> 
        </Attribute>
        <Attribute name="BytesOut" type="Double">
          <Documentation>Bytes sent since the virtual circuit was created</Documentation> 
          <Polled>true</Polled> 
          <Baseline>false</Baseline> 
          <IsDbColumn>true</IsDbColumn> 
          <Variance>false</Variance> 
          <StandardDeviation>false</StandardDeviation> 
          <Minimum>false</Minimum> 
          <Maximum>false</Maximum> 
          <WriteOnPoll>false</WriteOnPoll> 
          <RollupStrategy>Sum</RollupStrategy> 
          <AttributeDisplayName /> 
          <Percentile>0</Percentile> 
        </Attribute>
      </AttributeGroup>
      <Attribute name="SourceFacetTypes" cached="true" list="true" persistent="true" type="QName">
        <Documentation /> 
      </Attribute>
      <DisplayName>Frame Relay PVC</DisplayName> 
      <Expressions>
        <ExpressionGroup destCert="{http://im.ca.com/core}Item">
          <Expression destAttr="Name">Names</Expression> 
        </ExpressionGroup>
        <ExpressionGroup destCert="{http://im.ca.com/inventory}DeviceComponent">
          <Expression destAttr="IndexList">Indexes</Expression> 
        </ExpressionGroup>
        </Expressions>
        <TableName>FR_PVC_INFO</TableName> 
        <ComponentFacets>
         <Facet>{http://im.ca.com/inventory}frPVC</Facet> 
        </ComponentFacets>
        <Protocol>IMDB</Protocol> 
        <Normalized>true</Normalized> 
       </FacetType>
     </DataModel>