ViPR SRM: How to prevent unwanted metrics from being pushed to the database

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Instructions

In some cases you may not want to have all devices / metrics pushed the the database, like in the case of ephemeral VDI that are deleted and recreated on a regular basis.

One way of doing this is by using the Variable Handling Filter BlockAllHandler.
This handler allows you to drop metrics that match the filter so that they do not go any further in the collection chain and not make it to the database.

Below is an example from the Load-Balancer:

<handling-configuration id="Block">
        <matcher class="com.watch4net.apg.v2.collector.plugins.variablehandlingfilter.matchers.APGFilterMatcher">
                <parameter name="filter">device=='devblock'</parameter>
        </matcher>
        <handler class="com.watch4net.apg.v2.collector.plugins.variablehandlingfilter.handlers.BlockAllHandler" />
</handling-configuration>


In this case the filter is used to block devices that have the name devblock.
However this example can be adapted to filter out other devices, the easiest way to refine the filter is by using the Advanced Frontend search or Metric of Database Management to test and make sure that the filter only returns the devices / metrics that you want to drop.

filter predicates and operators:

Predicates
property= pattern  Variable selection based on a property SQL pattern
property== value  Variable selection based on an exact property match
property Selects only the variables that have the specified property

Operators
& AND Operator
| OR Operator
! NOT Operator

SQL pattern Note: may contain  %  and  _  wildcard characters. Do not forget to escape characters that have a special XML meaning such as  & ,  < ,  >  and so on. You may encapsulate the filter within <![CDATA[:::]] > to avoid having to escape every single special character.

Filter example: device=='MyDevice' & ((parttype=='Interface' & (part='Gigabit%' | part='Ether%')& name=='ifInOctets') | (!part & name=='Availability'))
This matches raw values that have a device property set to  MyDevice  AND ((have a parttype set to  Interface , have either part values starting with  Gigabit  or  Ether  and have name set to  ifInOctets ) OR (do not have the part property and have name set to  Availability )).

Depending on the specifics of your use case you may want to add the BlockAllHandler in one of the existing Variable Handling Filters of the Collector-Manager of the SolutionPack or in the Collector-Manager of the Load-Balancer. You can also add a new Variable Handling Filter in the collection chain.
You can also download the Variable Handling Filter pdf attached to this KB

Additional Information

However you choose to do this, you should take time to document the change as this customization will be lost when you upgrade or reconfigure the module.

You should also consider having such a change done by professional services if you are not comfortable with editing xml or affecting the data collection chain.

Affected Products

Storage Software
Article Properties
Article Number: 000019502
Article Type: How To
Last Modified: 16 Jun 2025
Version:  4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.