A Concrete Sample of Holmes Rules

The data structure shown below may vary according to the changes of the VES standard. Actually it is used only internally in Holmes. Other projects do not have to care about it.

public class VesAlarm {
    private String eventId;
    private String sourceId;
    private String specificProblem;
	private long alarmRaisedTime;
     
    // getters and setters are ommitted for brevity
    ...
}

Alarm codes selected below are just used for demonstration. They are chosen randomly from the existing network and may not be necessarily related to each other in reality.

package dcae.ves.test
import org.onap.some.related.packages;
 
// Alarm codes and specific problems used in the following rules:
// specificProblemID   specificProblem
// 4271                LSS_externalLinkDown
// 4272                LSS_failedAttachReqsRateExceeded
// 121297              LSS_cpiPCSCFFailReg
// 120267              LSS_cpiSIPRetransmitInvite
 
// the entity of the rule
rule "SameVNF_Relation_Rule"  
salience 120
no-loop true
	when
		$root : VesAlarm(  									
			$sourceId: sourceId, sourceId != null && !sourceId.equals(""),
			specificProblem in ( "LSS_cpiPCSCFFailReg(121297)", "LSS_cpiSIPRetransmitInvite(120267)" ),
			$eventId: eventId)									
		$child : VesAlarm( eventId != $eventId, 
			CorrelationUtil.getInstance().isTopologicallyRelated(sourceId, $sourceId),
			specificProblem in ("LSS_externalLinkDown(4271)","LSS_failedAttachReqsRateExceeded(4272)"),
			this after [-60s, 60s] $root)				    	
	then					
		DmaapService.publishResult(...);		
end
  • No labels