-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdataGeneration.m
119 lines (100 loc) · 3.64 KB
/
dataGeneration.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
function [ resources,category_list, flag ] = dataGeneration(ldbURI,queryString,parameters)
myRetriever = javaObject('imperial.modaclouds.fg.dbretriever.DataFetch');
allData = myRetriever.DataFetching(ldbURI,queryString);
resources = myRetriever.getResources();
if resources.size == 0
disp('No data received');
category_list = -1;
flag = -1;
return
end
flag = 0;
for i = 0:resources.size-1
data_format = [];
category_list = [];
category_index = 1;
category_count = 1;
mapObj = containers.Map;
pair = resources.get(i);
temp_str = myRetriever.parseData(allData,pair,'ResponseInfo');
if isempty(temp_str)
demand = -1;
disp(strcat('No data received for ',pair,' ResponseInfo'));
continue;
end
values = temp_str.getValues;
try
for j = 0:values.size-1
str = values.get(j);
str = java.lang.String(str);
split_str = str.split(',');
% dateFormat = java.text.SimpleDateFormat('yyyyMMddHHmmssSSS');
%
% date_str = '';
%
% for k = 1:7
% date_str = strcat(date_str,char(split_str(k)));
% end
%
% try
% date = dateFormat.parse(date_str);
% catch e
% e.printStackTrace();
% end
%
% date_milli = date.getTime();
%
% jobID = char(split_str(8));
%
% category_str = char(split_str(9));
category_str = char(split_str(1));
if isKey(mapObj, category_str) == 0
mapObj(category_str) = category_index;
category_list{1,category_count} = category_str;
category_count = category_count + 1;
category = category_index;
data_format{6,category}=[];
category_index = category_index + 1;
else
category = mapObj(category_str);
end
% if strcmp(split_str(10),'Request Begun')
% continue;
% end
response_time = str2double(char(split_str(3)));
data_format{3,category} = [data_format{3,category};str2double(char(split_str(2)))];
data_format{4,category} = [data_format{4,category};response_time];
end
rawData = data_format;
rawData{3, category_index} = [];
for j = 1:size(parameters,1)
switch parameters{j,1}
case 'window'
window = str2double(parameters{j,2});
case 'warmUp'
warmUp = str2double(parameters{j,2});
case 'nCPU'
nCPU = str2double(parameters{j,2});
case 'avgWin'
avgWin = str2double(parameters{j,2});
case 'maxTime'
maxTime = str2double(parameters{j,2});
end
end
%FIX: obtain cpu value
cpu = myRetriever.parseData(allData,pair,'CPUUtil');
if isempty(cpu)
[data,category_list] = dataFormat(rawData,window,category_list);
else
cpu_value = convertArrayList(cpu.getValues);
cpu_timestamps = convertArrayList(cpu.getTimestamps);
[data,category_list] = dataFormat(rawData,window,category_list,cpu_value,cpu_timestamps);
end
data
save(strcat(pair,'_ResponseInfo','_data.mat'),'data','category_list')
catch err
err.message
continue
end
end
end