Guide on how to use qos_processor to enrich/modify QoS messages
Guidance
Background
The qos_processor probe is responsible for:
1. updating the Origin changes in the database when the Origin changes at the robot and hub
2. allowing custom enrichment of QoS metric properties
The qos_processor probe listens for QOS_MESSAGE subjects on the UIM bus, evaluates and potentially modifies some non-key attributes of the record corresponding to the monitor. The baseline_engine depends on qos_processor to save the QOS_BASELINE messages in the UIM database. Both the qos_processor and baseline_engine probes are automatically deployed to the primary hub by the CA UIM Server installer.
Instructions
Overview of QoS enrichment (modifying origin of QoS data)
The qos_processor probe uses a Ruby script (called "enrichment.rb") to specify "origin enrichment" - that is, adding a new/extra origin to an existing device through altering the origin on incoming QoS data.
A simple use case is included below. There is a lot of information on Ruby Scripting available on the web which you may find useful as well.
Example environment:
- A primary hub, with origin "OriginOne"
- A remote/secondary hub, with origin "OriginTwo"
- net_connect probe is on the primary hub, and sending net_connect data with "OriginOne" on the QoS
- net_connect probe monitors a Robot, called 'MyRobot', which reports to the secondary hub and has origin "OriginTwo" for the robot's discovered origin
- net_connect is set to send "MyRobot.Mycompany.com" as the QoS Profile name
- cdm probe is installed on MyRobot, and cdm QoS data has "OriginTwo" origin
Example Use case/purpose - you want the metrics from net_connect to show up for the same device as the robot metrics from CDM when it is displayed in UMP (USM).
Method: Automatcially alter the origin on the net_connect data to match the robot/cdm origin "OriginTwo" for that profile.
The enrichment.rb script contents would be as follows:================= cut here =================
# lines starting with pound sign denote a comment
# sample enrichment.rb
require 'java'
if ( $monitor.probe == "net_connect")
if ( $monitor.source == "MyRobot.Mycompany.com" )
$monitor.origin = "OriginTwo"
end
end
# end of script
================= cut here =================
You could also decide to enrich any net_connect QoS which had "MyRobot" in it, whether FQDN or not:================= cut here =================
# lines starting with pound sign denote a comment
# sample enrichment.rb
require 'java'
if ( $monitor.probe == "net_connect")
if ( $monitor.source.include? "MyRobot" )
$monitor.origin = "OriginTwo"
end
end
# end of script
================= cut here =================