If the custom agent monitor does the basic as well as detail monitoring, then detail monitoring code must be conditional. This avoids scheduling of detail monitoring if not required. VCSAG_GET_MONITOR_LEVEL API can be used to check if detail monitoring needs to be scheduled.
VCSAG_GET_MONITOR_LEVEL API fetches and sets the values of the LevelTwoMonitorFreq attribute.
#!/bin/sh # CustomAgent Monitor script . $VCS_HOME/bin/ag_i18n_inc.sh RESNAME=$1 VCSAG_SET_ENVS $RESNAME STATE=${VCS_RES_ONLINE}; # Fetch the value of detail (Level-2) monitoring. # VCSAG_GET_MONITOR_LEVEL will store this values in # VCSAG_MONITOR_LEVEL_TWO environment. VCSAG_GET_MONITOR_LEVEL(); # Logic for custom agent basic monitoring. # Based on logic set STATE to OFFLINE or ONLINE # if basic monitoring of the resource state that resource is ONLINE, # check if detail monitoring (Level-2) need to be performed. if [ ${STATE} -eq ${VCS_RES_ONLINE} ]; then if [ ${VCSAG_MONITOR_LEVEL_TWO} -ne 0 ]; then # Logic for custom agent detail monitoring. # Based on logic return OFFLINE or ONLINE # If resource is found as OFFLINE STATE = ${VCS_RES_OFFLINE}; # If resource is found as ONLINE STATE = ${VCS_RES_ONLINE}; fi fi exit $(STATE);