@Override public void onPolicyUpdate(AlertDefinitionAPIEntity newAlertDef) { LOG.info("onPolicyUpdate called"); AbstractPolicyDefinition policyDef = null; try { policyDef = JsonSerDeserUtils.deserialize(newAlertDef.getPolicyDef(), AbstractPolicyDefinition.class, PolicyManager.getInstance().getPolicyModules(newAlertDef.getTags().get("policyType"))); } catch (Exception ex) { LOG.error("initial policy def error, ", ex); } MLRuntime previous = mlRuntime; mlRuntime = newMLRuntime((MLPolicyDefinition) policyDef); synchronized (previous) { previous.mlAnomalyCallbacks = null; previous.mlAlgorithmEvaluators = null; previous.mlPolicyDef = null; } previous = null; }
protected PolicyEvaluator<AggregateDefinitionAPIEntity> createPolicyEvaluator(AggregateDefinitionAPIEntity alertDef) { String policyType = alertDef.getTags().get(Constants.POLICY_TYPE); Class<? extends PolicyEvaluator> evalCls = PolicyManager.getInstance().getPolicyEvaluator(policyType); if (evalCls == null) { String msg = "No policy evaluator defined for policy type : " + policyType; try { policyDef = JsonSerDeserUtils.deserialize(alertDef.getPolicyDef(), AbstractPolicyDefinition.class, PolicyManager.getInstance().getPolicyModules(policyType)); } catch (Exception ex) { LOG.error("Fail initial alert policy def: " + alertDef.getPolicyDef(), ex);
protected PolicyEvaluator<T> createPolicyEvaluator(T alertDef){ String policyType = alertDef.getTags().get(Constants.POLICY_TYPE); Class<? extends PolicyEvaluator> evalCls = PolicyManager.getInstance().getPolicyEvaluator(policyType); if(evalCls == null){ String msg = "No policy evaluator defined for policy type : " + policyType; try { policyDef = JsonSerDeserUtils.deserialize(alertDef.getPolicyDef(), AbstractPolicyDefinition.class, PolicyManager.getInstance().getPolicyModules(policyType));
@Override public void onPolicyUpdate(T newAlertDef) { AbstractPolicyDefinition policyDef = null; try { policyDef = JsonSerDeserUtils.deserialize(newAlertDef.getPolicyDef(), AbstractPolicyDefinition.class, PolicyManager.getInstance().getPolicyModules(newAlertDef.getTags().get(Constants.POLICY_TYPE))); } catch (Exception ex) { LOG.error("Initial policy def error, ", ex); } SiddhiRuntime previous = siddhiRuntime; siddhiRuntime = createSiddhiRuntime((SiddhiPolicyDefinition) policyDef); synchronized (previous) { if (!previous.markdownEnabled) // condition to check if previous SiddhiRuntime was started after policy validation previous.siddhiManager.getExecutionPlanRuntime(previous.executionPlanName).shutdown(); } }