diff --git a/src/main/resources/MapReduce/JobUsageRecord/callerQualifier/map.js b/src/main/resources/MapReduce/JobUsageRecord/callerQualifier/map.js new file mode 100644 index 0000000..8cb7e83 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/callerQualifier/map.js @@ -0,0 +1,33 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + var callerQualifier=doc.callerQualifier ? (doc.callerQualifier) : "UNKNOWN"; + propertiesKey.push(callerQualifier); + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/callerQualifier/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/callerQualifier/reduce.js new file mode 100644 index 0000000..e27dd0d --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/callerQualifier/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__host/map.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host/map.js new file mode 100644 index 0000000..d7264cb --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host/map.js @@ -0,0 +1,35 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.consumerId); + propertiesKey.push(doc.host); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__host/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__operationResult/map.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__operationResult/map.js new file mode 100644 index 0000000..ca2b856 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__operationResult/map.js @@ -0,0 +1,36 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.consumerId); + propertiesKey.push(doc.host); + propertiesKey.push(doc.operationResult); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__operationResult/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__operationResult/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__operationResult/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__operationResult__serviceClass/map.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__operationResult__serviceClass/map.js new file mode 100644 index 0000000..57892ce --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__operationResult__serviceClass/map.js @@ -0,0 +1,37 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.consumerId); + propertiesKey.push(doc.host); + propertiesKey.push(doc.operationResult); + propertiesKey.push(doc.serviceClass); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__operationResult__serviceClass/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__operationResult__serviceClass/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__operationResult__serviceClass/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__operationResult__serviceClass__serviceName/map.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__operationResult__serviceClass__serviceName/map.js new file mode 100644 index 0000000..2cbc7af --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__operationResult__serviceClass__serviceName/map.js @@ -0,0 +1,38 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.consumerId); + propertiesKey.push(doc.host); + propertiesKey.push(doc.operationResult); + propertiesKey.push(doc.serviceClass); + propertiesKey.push(doc.serviceName); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__operationResult__serviceClass__serviceName/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__operationResult__serviceClass__serviceName/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__operationResult__serviceClass__serviceName/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__operationResult__serviceName/map.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__operationResult__serviceName/map.js new file mode 100644 index 0000000..e430e05 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__operationResult__serviceName/map.js @@ -0,0 +1,37 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.consumerId); + propertiesKey.push(doc.host); + propertiesKey.push(doc.operationResult); + propertiesKey.push(doc.serviceName); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__operationResult__serviceName/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__operationResult__serviceName/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__operationResult__serviceName/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__serviceClass/map.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__serviceClass/map.js new file mode 100644 index 0000000..9eb2367 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__serviceClass/map.js @@ -0,0 +1,36 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.consumerId); + propertiesKey.push(doc.host); + propertiesKey.push(doc.serviceClass); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__serviceClass/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__serviceClass/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__serviceClass/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__serviceClass__serviceName/map.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__serviceClass__serviceName/map.js new file mode 100644 index 0000000..98eee67 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__serviceClass__serviceName/map.js @@ -0,0 +1,37 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.consumerId); + propertiesKey.push(doc.host); + propertiesKey.push(doc.serviceClass); + propertiesKey.push(doc.serviceName); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__serviceClass__serviceName/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__serviceClass__serviceName/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__serviceClass__serviceName/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__serviceName/map.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__serviceName/map.js new file mode 100644 index 0000000..6734b9d --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__serviceName/map.js @@ -0,0 +1,36 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.consumerId); + propertiesKey.push(doc.host); + propertiesKey.push(doc.serviceName); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__serviceName/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__serviceName/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__host__serviceName/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__operationResult__serviceClass/map.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__operationResult__serviceClass/map.js new file mode 100644 index 0000000..6e34a3d --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__operationResult__serviceClass/map.js @@ -0,0 +1,36 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.consumerId); + propertiesKey.push(doc.operationResult); + propertiesKey.push(doc.serviceClass); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__operationResult__serviceClass/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__operationResult__serviceClass/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__operationResult__serviceClass/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__operationResult__serviceClass__serviceName/map.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__operationResult__serviceClass__serviceName/map.js new file mode 100644 index 0000000..7572ec6 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__operationResult__serviceClass__serviceName/map.js @@ -0,0 +1,37 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.consumerId); + propertiesKey.push(doc.operationResult); + propertiesKey.push(doc.serviceClass); + propertiesKey.push(doc.serviceName); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__operationResult__serviceClass__serviceName/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__operationResult__serviceClass__serviceName/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__operationResult__serviceClass__serviceName/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__operationResult__serviceName/map.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__operationResult__serviceName/map.js new file mode 100644 index 0000000..e80bb6e --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__operationResult__serviceName/map.js @@ -0,0 +1,36 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.consumerId); + propertiesKey.push(doc.operationResult); + propertiesKey.push(doc.serviceName); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__operationResult__serviceName/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__operationResult__serviceName/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__operationResult__serviceName/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__serviceClass/map.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__serviceClass/map.js new file mode 100644 index 0000000..d5534eb --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__serviceClass/map.js @@ -0,0 +1,35 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.consumerId); + propertiesKey.push(doc.serviceClass); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__serviceClass/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__serviceClass/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__serviceClass/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__serviceClass__serviceName/map.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__serviceClass__serviceName/map.js new file mode 100644 index 0000000..7e60c9a --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__serviceClass__serviceName/map.js @@ -0,0 +1,36 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.consumerId); + propertiesKey.push(doc.serviceClass); + propertiesKey.push(doc.serviceName); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__serviceClass__serviceName/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__serviceClass__serviceName/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__serviceClass__serviceName/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__serviceName/map.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__serviceName/map.js new file mode 100644 index 0000000..cd24b11 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__serviceName/map.js @@ -0,0 +1,35 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.consumerId); + propertiesKey.push(doc.serviceName); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/consumerId__serviceName/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/consumerId__serviceName/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/consumerId__serviceName/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/host/map.js b/src/main/resources/MapReduce/JobUsageRecord/host/map.js new file mode 100644 index 0000000..d385013 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/host/map.js @@ -0,0 +1,34 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.host); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/host/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/host/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/host/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/host__operationResult/map.js b/src/main/resources/MapReduce/JobUsageRecord/host__operationResult/map.js new file mode 100644 index 0000000..00e6e6f --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/host__operationResult/map.js @@ -0,0 +1,35 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.host); + propertiesKey.push(doc.operationResult); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/host__operationResult/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/host__operationResult/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/host__operationResult/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/host__operationResult__serviceClass/map.js b/src/main/resources/MapReduce/JobUsageRecord/host__operationResult__serviceClass/map.js new file mode 100644 index 0000000..ff8a3ae --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/host__operationResult__serviceClass/map.js @@ -0,0 +1,36 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.host); + propertiesKey.push(doc.operationResult); + propertiesKey.push(doc.serviceClass); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/host__operationResult__serviceClass/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/host__operationResult__serviceClass/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/host__operationResult__serviceClass/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/host__operationResult__serviceClass__serviceName/map.js b/src/main/resources/MapReduce/JobUsageRecord/host__operationResult__serviceClass__serviceName/map.js new file mode 100644 index 0000000..25ce492 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/host__operationResult__serviceClass__serviceName/map.js @@ -0,0 +1,37 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.host); + propertiesKey.push(doc.operationResult); + propertiesKey.push(doc.serviceClass); + propertiesKey.push(doc.serviceName); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/host__operationResult__serviceClass__serviceName/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/host__operationResult__serviceClass__serviceName/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/host__operationResult__serviceClass__serviceName/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/host__operationResult__serviceName/map.js b/src/main/resources/MapReduce/JobUsageRecord/host__operationResult__serviceName/map.js new file mode 100644 index 0000000..1a21550 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/host__operationResult__serviceName/map.js @@ -0,0 +1,36 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.host); + propertiesKey.push(doc.operationResult); + propertiesKey.push(doc.serviceName); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/host__operationResult__serviceName/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/host__operationResult__serviceName/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/host__operationResult__serviceName/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/host__serviceClass/map.js b/src/main/resources/MapReduce/JobUsageRecord/host__serviceClass/map.js new file mode 100644 index 0000000..532ab23 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/host__serviceClass/map.js @@ -0,0 +1,35 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.host); + propertiesKey.push(doc.serviceClass); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/host__serviceClass/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/host__serviceClass/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/host__serviceClass/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/host__serviceClass__serviceName/map.js b/src/main/resources/MapReduce/JobUsageRecord/host__serviceClass__serviceName/map.js new file mode 100644 index 0000000..c116b78 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/host__serviceClass__serviceName/map.js @@ -0,0 +1,36 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.host); + propertiesKey.push(doc.serviceClass); + propertiesKey.push(doc.serviceName); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/host__serviceClass__serviceName/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/host__serviceClass__serviceName/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/host__serviceClass__serviceName/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/host__serviceName/map.js b/src/main/resources/MapReduce/JobUsageRecord/host__serviceName/map.js new file mode 100644 index 0000000..b58fffb --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/host__serviceName/map.js @@ -0,0 +1,35 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.host); + propertiesKey.push(doc.serviceName); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/host__serviceName/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/host__serviceName/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/host__serviceName/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/operationResult__serviceClass/map.js b/src/main/resources/MapReduce/JobUsageRecord/operationResult__serviceClass/map.js new file mode 100644 index 0000000..f90e7f6 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/operationResult__serviceClass/map.js @@ -0,0 +1,35 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.operationResult); + propertiesKey.push(doc.serviceClass); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/operationResult__serviceClass/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/operationResult__serviceClass/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/operationResult__serviceClass/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/operationResult__serviceClass__serviceName/map.js b/src/main/resources/MapReduce/JobUsageRecord/operationResult__serviceClass__serviceName/map.js new file mode 100644 index 0000000..a446b0a --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/operationResult__serviceClass__serviceName/map.js @@ -0,0 +1,36 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.operationResult); + propertiesKey.push(doc.serviceClass); + propertiesKey.push(doc.serviceName); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/operationResult__serviceClass__serviceName/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/operationResult__serviceClass__serviceName/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/operationResult__serviceClass__serviceName/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/operationResult__serviceName/map.js b/src/main/resources/MapReduce/JobUsageRecord/operationResult__serviceName/map.js new file mode 100644 index 0000000..91054d9 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/operationResult__serviceName/map.js @@ -0,0 +1,35 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.operationResult); + propertiesKey.push(doc.serviceName); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/operationResult__serviceName/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/operationResult__serviceName/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/operationResult__serviceName/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/serviceClass/map.js b/src/main/resources/MapReduce/JobUsageRecord/serviceClass/map.js new file mode 100644 index 0000000..ba6ae29 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/serviceClass/map.js @@ -0,0 +1,34 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.serviceClass); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/serviceClass/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/serviceClass/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/serviceClass/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/serviceClass__serviceName/map.js b/src/main/resources/MapReduce/JobUsageRecord/serviceClass__serviceName/map.js new file mode 100644 index 0000000..824308e --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/serviceClass__serviceName/map.js @@ -0,0 +1,35 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.serviceClass); + propertiesKey.push(doc.serviceName); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/serviceClass__serviceName/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/serviceClass__serviceName/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/serviceClass__serviceName/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file diff --git a/src/main/resources/MapReduce/JobUsageRecord/serviceName/map.js b/src/main/resources/MapReduce/JobUsageRecord/serviceName/map.js new file mode 100644 index 0000000..560138e --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/serviceName/map.js @@ -0,0 +1,34 @@ +function(doc,meta) { + if(doc.usageRecordType == "JobUsageRecord" || doc.recordType == "JobUsageRecord"){ + if((doc.operationCount && isNaN(Number(doc.operationCount))) || (doc.duration && isNaN(Number(doc.duration)))){ + emit([0, "Invalid Value", doc.id], doc); + return; + } + + var data = {}; + data.operationCount = doc.operationCount ? Number(doc.operationCount) : 1; + data.duration = doc.duration ? Number(doc.duration) : 1; + data.maxInvocationTime = doc.maxInvocationTime ? Number(doc.maxInvocationTime) : data.duration; + data.minInvocationTime = doc.minInvocationTime ? Number(doc.minInvocationTime) : data.duration; + + var propertiesKey = []; + propertiesKey.push(doc.serviceName); + + + var timestamp=Number(doc.creationTime); + var date = new Date(timestamp); + var dataKey = []; + dataKey.push(date.getUTCFullYear()); + dataKey.push(date.getUTCMonth()+1); + dataKey.push(date.getUTCDate()); + dataKey.push(date.getUTCHours()); + dataKey.push(date.getUTCMinutes()); +// dataKey.push(date.getUTCSeconds()); +// dataKey.push(date.getUTCMilliseconds()); + var finalKey = propertiesKey.concat(dataKey); + + finalKey.unshift(doc.scope); + + emit(finalKey, data); + } +} diff --git a/src/main/resources/MapReduce/JobUsageRecord/serviceName/reduce.js b/src/main/resources/MapReduce/JobUsageRecord/serviceName/reduce.js new file mode 100644 index 0000000..64dd2b0 --- /dev/null +++ b/src/main/resources/MapReduce/JobUsageRecord/serviceName/reduce.js @@ -0,0 +1,24 @@ +function(keys, values, rereduce){ + var maxInvocationTime = Number(values[0].maxInvocationTime); + var minInvocationTime = Number(values[0].minInvocationTime); + var total = 0; + var numerator = 0; + for(i=0; i=values[i].minInvocationTime){ + minInvocationTime = values[i].minInvocationTime; + } + } + + ret = {}; + ret.operationCount = Number(total); + ret.duration = Number(numerator)/Number(total); + ret.maxInvocationTime = Number(maxInvocationTime); + ret.minInvocationTime = Number(minInvocationTime); + + return ret; +} \ No newline at end of file