Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Code Block
languagejs
titleFramework Interface
collapsetrue
enum PolicyTemplateScope {
	General,Embedded, 
	// 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 getFormPath(); // "/path/to/form"
 
     <Class extends PolicyTemplateConfig> getConfigType();
	 PolicyTemplateScope getScope();
     PolicyDefinition render(PolicyTemplateConfig);
}
 
abstract class PolicyTemplateConfig {
	internal: String
}
 
final class PolicyTemplateEntity {
	uuid: UUID,
	enabled: Boolean, // FALSE: save, TRUE: deploy
	config: PolicyTemplateConfig,
	template: "org.apache.eagle.policy.PolicyTemplate"
}

...

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

Embedded Mode

Image Removed

Advanced Mode

Image Removed

Image Added

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

// Case Example
SingleStreamThresholdPolicyTemplateConfig extend PolicyTemplateConfig {
    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 (TODO)

Each policy can only be deployed for one time per site, change "Save/Deploy" to "Enable/Disable"

Image Added

Code Block
languagejs
titleBackend Support for Embedded Template
collapsetrue
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

Image Added

Image Added

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Gliffy Diagram
namepolicy_view

 

 

 

 

 

 

 Image Removed