Javadoc
to provide extensibility, we need a clear differentiation between framework job and provider logic
policy evaluator framework:
- connect to eagle data source
- read all policy definitions
- compare with cached policy definitions
- figure out if policy is created, deleted or updated
- if policy is created, then invoke onPolicyCreated
- if policy is deleted, then invoke onPolicyDeleted
- if policy is updated, then invoke onPolicyUpdated
- for policy report, replace old evaluator engine with new evaluator engine which is created by policy evaluator provider
- specify # of executors for this alert executor id
- dynamically balance # of policies evaluated by each alert executor
- use zookeeper to balance. eaglePolicies/${alertExecutorId}/${alertExecutorInstanceId} => list of policies
policy evaluator business features:
- register mapping between policy type and PolicyEvaluator
- create evaluator engine runtime when configuration is changed