+ A rule defines all the things for SSM to work, what kind of data metrics are involved, what
+ conditions, at what time which actions should be taken when the conditions are true.
+
+
+ By writing rules,
+ a user can easily manage cluster and adjust its behavior for certain purposes. A rule contains 4 parts. Here
+ is the format,
+
+
+ Objects_to_manipulate : Trigger | Conditions | Commands
+
+
+ Trigger part is optional. “:” and “|” are used as the separator to separate different
+ rule part. These two characters are reserved for SSM, cannot be used in rule
+ content, otherwise rule parse will fail.
+
+
+ Detail information of each rule part are listed in following tables.
+
+
Object | +Description | +Example | +
---|---|---|
file | +Files | +file.path matches "/fooA/*.dat" | +
Format | +Description | +Example | +
---|---|---|
at<time> | +Execute the rule at the given time | +-at "2017-07-29 23:00:00" -at now |
+
every<time interval> | +Execute the rule at the given frequency | +-every 1min | +
from<time>[To <time>] | +Along with 'every' expression to specify the time scope | +-every 1day from now -every 1min from now to now+7day |
+
Ingredient | +Description | +Example | +
---|---|---|
Object property | +Object property as condition subject, refer to table4 to supported object property list | +-length > 5MB | +
Time | +-"yyyy-MM-dd HH:mm:ss:ms" -Predefined -Time + TimeInterval |
+ -"2017-07-29 23:00:00" -now -now+7day |
+
Time Interval | +-Digital + unit -Time - Time |
+ -5sec, 5min, 5hour, 5day -now - "2016-03-19 23:00:00" |
+
File Size | +-Digital + unit | +-5B, 5kb, 5MB, 5GB, 5TB, 5PB | +
String | +Start and ends with", support escapes | +-"abc", "123", "Hello word\n" | +
Logical operator | +and, or, not | ++ |
Digital operator | ++, -, *, /, % | ++ |
Compare | +>, >=, <, <=, ==, != | ++ |
Object | +Property | +Description | +
---|---|---|
file | +path | +file in HDFS | +
age | +Time from last been modified | +|
atime | +Time accessed last time | +|
accessCount(interval) | +Access counts during in the last time interval | +|
blocksize | +Block size of the file | +|
storagePolicy | +Storage policy of file | +|
length | +Length of the file | +|
isInCache | +Test if file is in cache now | +|
mtime | +Last modification time of the file | +
Command(case insensitive) | +Description | +
---|---|
cache | +Cache file in HDFS Cache | +
uncache | +Uncache file | +
onessd | +Move one copy of file to SSD | +
allssd | +Move all copies of file to SSD | +
archive | +Move file to 'Archive' storage type | +
checkstorage | +Check file block storage type | +
Read | +Read the file and discart the content readed | +
Write | +Create the file and fill the content with random value | +
+ Here is a rule example,
+
+
+ file: path matches "/fooA/*.dat": age > 30day | archive
+
+
+ This example defines a rule that for each file with path matches regular expression
+ “/fooA/*.dat”, if the file has been created for more than 30 days, then move the file to archive storage.
+