-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlogging.js
60 lines (53 loc) · 1.7 KB
/
logging.js
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
var uuid = require('node-uuid');
var fs = require('fs');
var task_log = {};
var job_log = {};
var written = false;
/* Timestamp keys, in order of collection:
* phase: duh
* client_fetch: client requests a task
* start_fetch: server receives requests, begins db fetch for task
* end_fetch: server fetched task, sends to client
* client_start: client receives task
* client_end: client finishes task, sends to server
* start_store: server receives result, begins db store
* end_store: server finishes store. if key is present, this is a valid log entry.
* */
exports.fetchingTask = function(){
var id = uuid.v4();
task_log[id] = {start_fetch: new Date().getTime()};
return id;
};
exports.fetchedTask = function(id, phase){
task_log[id].end_fetch = new Date().getTime();
task_log[id].phase = phase;
};
exports.storingTask = function(id, client_log){
for(var k in client_log)
task_log[id][k] = client_log[k];
task_log[id].start_store = new Date().getTime();
};
exports.storedTask = function(id){
task_log[id].end_store = new Date().getTime();
};
exports.writeTaskLog = function(){
if(!written){
console.log("Writing out task log");
fs.writeFileSync('TASK_LOG', JSON.stringify(task_log));
written = true;
}
};
exports.mapComplete = function(){
job_log.map_complete = new Date().getTime();
};
exports.reduceStart = function(){
job_log.reduce_start = new Date().getTime();
};
exports.reduceComplete = function(){
job_log.reduce_complete = new Date().getTime();
};
exports.jobComplete = function(){
job_log.job_complete = new Date().getTime();
console.log("Writing out job log");
fs.writeFileSync('JOB_LOG', JSON.stringify(job_log));
};