Following metrics would be collected.
This would help in finding out no of heartbeat wasted.
1. assignTasks returns null
How many times mapscheduler is invoked vs how many times reduceScheduler is invoked
2 .mapscheduler is invoked,
3 .reduceScheduler is invoked,
4 .Task scheduled from queue
5 .Task scheduled from queue ignoring user limits
6 High RAM job's task scheduled from queue
Calculating skip count incase of following.
7 Task skipped due to user limit exceeding with reason
8 Task skipped due to high RAM jobs with reason
9 Priority of job changed
10 #of times initializer skips initializing pending jobs.
11 Job becomes running
12 Job Added
13 failed jobs in queue
14 killed jobs in queue
15 completed jobs in queue
16 running tasks in queue and per user
17 pending tasks in queue
18 failed/kill tasks in queue
19 Amount of time queue is over capacity