Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Policy Creator UI Design 

General Mode

Info

Policy Editor (General Mode) mainly supports some general alert template and provide easy-to-use template form and general native eagle policy in backend using the submitted form data and policy template.

Image Removed

Backend Support

 

Code Block
languagejs
titleFramework Interface
enum PolicyTemplateScope {
	General,Embedded, 
	// Template Interface and GeneralPolicyTemplateDesc for API
interface GeneralPolicyTemplate {
	Class<?> getType(); // org.apache.eagle.policy.GeneralPolicyTemplate Customized: possible to support save certain ad-hoc policy as template
}
 
interface PolicyTemplate {	
	String getName(); // "SINGLE_SOURCE_THRESHOLD_ALERT"
	String getDescription(); // "An alert policy template consuming single stream source."
	String getCreateFormgetFormPath(); // "/path/to/create/form"
	String getEditForm 
     <Class extends PolicyTemplateConfig> getConfigType(); // "/path/to/create/form"
	String PolicyTemplateScope getViewFormgetScope(); // "/path/to/create/form"

     GeneralPolicyConfigPolicyDefinition renderConfigrender(StringPolicyTemplateConfig);
}
 
abstract class PolicyTemplateConfig  PolicyDefinition renderPolicy(GeneralPolicyConfig);{
	internal: String
}
 
//final Staticclass TemplatePolicyTemplateEntity Metadata{
GeneralPolicyEntity {	uuid: UUID,
	config: GeneralPolicyTemplateConfigPolicyTemplateConfig,
	template: "org.apache.eagle.policy.GeneralPolicyTemplatePolicyTemplate"
}

General Mode

Info

Policy Editor (General Mode) mainly supports some general alert template and provide easy-to-use template form and general native eagle policy in backend using the submitted form data and policy template.

Image Added

Backend Support

Code Block
languagejs
// Template Interface and GeneralPolicyTemplateDesc for API
abstract class GeneralPolicyTemplate extends PolicyTemplate{
	final PolicyTemplateScope getScope() {
		return PolicyTemplateScope.General;
	}
}


// GeneralPolicyTemplateConfig
GeneralPolicyTemplateConfig{
	internal: String, // json string
}
 
// Case Example
SingleStreamThresholdPolicyTemplateConfig extend GeneralPolicyTemplateConfigPolicyTemplateConfig {
    from: HDFS_AUDIT_SRC_STREAM,
    partition: {                    
        type: "GROUPBY",field: "USER"
    },
    window: {
        type: "SLIDING_WINDOW",
        configs: {
            length: "20 hour"
        }
    },
    aggregators: [
        {
            function: "SUM",
            field: "USER",
            alias: "USER_COUNT" 
        }
    ],
    filters: [
            {
            field: "USER_COUNT", 
            function: ">",
            value: 20 
        },                  
        {
            field: "USER", 
            function: "NOT IN",
            value: "HADOOP, HDFS, MAPRED"
        }
    ]
}

Embedded Mode

Backend Support

Code Block
languagejs
abstract class EmbeddedPolicyTemplate extends PolicyTemplate{
	final PolicyTemplateScope getScope() {
		return PolicyTemplateScope.Embedded;
	}
}

// Case Example
TOO_LARGE_DELETION_ALERT_CONFIG extend PolicyTemplateConfig {
    users: List<String>,
	hdfsSizeThreshhold: Long
}

Advanced Mode

 

 

 

 

 

 

 

 

 

 

 

 

...