The following applies to November 2018 release or later
In this page:
The monitoring stream handles continuous execution check and check for stuck workflows (workflows which execution takes longer than expected). Parameters for this checks are set in *.spf profiles described below.
SPF Profiles
Example of an *.spf profile contents:
… unit|workflowCheck|workflow|eagle_dkm_source_collector|type|checkPeriodicWorkflow|timeperiod|300|error_prefix|XXX3 Periodic Alert|notificationemail|email_example@eagleinvsys.com|patterns|ON SEND ALERTS unit|workflowCheck|workflow|eagle_dkm_source_launcher|type|checkPeriodicWorkflow|timeperiod|300|error_prefix|XXX3 Periodic Alert|notificationemail|email_example@eagleinvsys.com|patterns|ON SEND ALERTS unit|workflowCheck|workflow|eagle_dkm_source_launcher|type|checkStuckWorkflow|timethreshold|600|error_prefix|XXX3 Stuck Workflow Alert|notificationemail|email_example@eagleinvsys.com|patterns|ON SEND ALERTS unit|workflowCheck|workflow|eagle_dkm_source_collector|type|checkStuckWorkflow|timethreshold|600|error_prefix|XXX3 Stuck Workflow Alert|notificationemail|email_example@eagleinvsys.com|patterns|ON SEND ALERTS …
where
- unit is a special parameter, works as a pointer on type of the include in case of new alerts processing;
- workflow is workflow name;
- type sets the type of processing ;
- timeperiod is time period in seconds;
- timethreshold is processing limit in seconds;
- error_prefix sets default type of alerts for this workflow;
- notificationemail is default email for notifications;
- patterns switches on/off sending alerts
Processing Details
Query
read_workflow_profiles.inc executes the following sql query:
Result of this query is all necessary information about launched workflows (except for already processed).
All this is loaded to a file and then include checks existing *.spf profiles in ml2-0_cm_profiles folder.
Alerts Processing
Alert processing uses methods from the time utils include. A search in the query results file is performed for every workflow in the profile. For periodic alerts last workflow with name from profile is checked by update_date and current time values difference and if the difference is greater than timeperiod parameter – this workflow is written down into current event array. For stuck workflow alerts type all processing workflows will be checked and if theirs processing time will be greater than timethreshold – it will be also write down in the current event array.
TSR Generation
Every line in current event array will be parsed. With create_tsr.inc TSR with necessary information will be created. Type of the TSR message is chosen from current event line time variables type.
<EagleML xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="TaskStatusResponse" eaglemlVersion="2-0" xsi:schemaLocation="http://www.eagleinvsys.com/2011/EagleML-2-0 eagleml-main-2-0.xsd" eaglemlType="TaskStatusResponse"> <header><messageId>B810J250HIKUOGBG</messageId> <sentBy>monitoring</sentBy> <sendTo>eas_distribution</sendTo> <creationTimestamp></creationTimestamp> </header> <statusItem> <taskIdentifier> <correlationId>84040C2ADCC6D46</correlationId> <businessTaskId>B810J250HCFFDWIC</businessTaskId> </taskIdentifier> <status>REPORTING</status> <severityCode>1</severityCode> <reason> <reasonTypeEnum>INFO</reasonTypeEnum> <reasonCode>1</reasonCode> <description>================================== PPFT3 PERIODIC ALERT: Workflow eagle_dkm_source_launcher didn't launch in time period 300 seconds. Last launch was in 20181009 091845 CorrId 84040C2ADCC6D46 AlertNotificationEmail:vmironov@eagleinvsys.com</description> <reasonTag>PPFT3 PERIODIC ALERT</reasonTag> </reason> </statusItem> </EagleML>
Eas_distribution changes
TSR parsing
For parsing incoming TSRs tsr_to_w_state.inc is used. This include file transforms incoming TSR with
xslt translation to correlation Id and email address from error description (if the TSR has in description AlertNotificationEmail) and with correlation ID and get_w_state.inc get task parameter AlertNotificationEmail (this parameter is unique!) . If this parameter is exist – it will be used as email address, if parameter doesn’t exist include will use address from description or default email.
Result of this stage – new email address (if TSR was for new types of alerts).
New xslt translation patterns
4 new patterns will be made:
1)PPFT3 PERIODIC ALERT
If error description contains keywords PPFT3 PERIODIC ALERT – this pattern will be used. This will make email with error description from TSR.
2)PPFT3 STUCK WORKFLOW ALERT
If error description contains keywords PPFT3 STUCK WORKFLOW ALERT – this pattern will be used. This will make email with error description from TSR.
3)PPFT3 ERROR
If error description contains keywords PPFT3 ERROR – this pattern will be used. This pattern will make email with all errors from all task, that it can get from incoming TSR.
4)PPFT3 WARNING
If error description contains keywords PPFT3 WARNING – this pattern will be used. This pattern will make blank email subject, and eas_distribution will not send emails with blank email subject