jackjlli commented on a change in pull request #7099: URL: https://github.com/apache/incubator-pinot/pull/7099#discussion_r661013869
########## File path: pinot-minion/src/main/java/org/apache/pinot/minion/taskfactory/TaskFactoryRegistry.java ########## @@ -67,45 +70,60 @@ public TaskFactoryRegistry(TaskExecutorFactoryRegistry taskExecutorFactoryRegist private final TaskConfig _taskConfig = context.getTaskConfig(); private final PinotTaskExecutor _taskExecutor = taskExecutorFactory.create(); private final MinionEventObserver _eventObserver = eventObserverFactory.create(); + private final MinionMetrics _minionMetrics = MinionContext.getInstance().getMinionMetrics(); @Override public TaskResult run() { - MinionMetrics minionMetrics = MinionContext.getInstance().getMinionMetrics(); + HelixManager helixManager = context.getManager(); + JobContext jobContext = TaskDriver.getJobContext(helixManager, context.getJobConfig().getJobId()); + // jobContext.getStartTime() return the time in milliseconds of job being put into helix queue. + long jobInQueueTime = jobContext.getStartTime(); + long jobDequeueTime = System.currentTimeMillis(); + _minionMetrics.addPhaseTiming(taskType, MinionQueryPhase.TASK_QUEUEING, jobDequeueTime - jobInQueueTime); + try { + _minionMetrics.addValueToGlobalGauge(MinionGauge.NUMBER_OF_TASKS, 1L); + long startTimeMillis = System.currentTimeMillis(); + TaskResult result = runInternal(); + long timeSpentInMillis = System.currentTimeMillis() - startTimeMillis; Review comment: nit: rename it to sth like `executionTimeMs` ########## File path: pinot-minion/src/main/java/org/apache/pinot/minion/taskfactory/TaskFactoryRegistry.java ########## @@ -67,45 +70,59 @@ public TaskFactoryRegistry(TaskExecutorFactoryRegistry taskExecutorFactoryRegist private final TaskConfig _taskConfig = context.getTaskConfig(); private final PinotTaskExecutor _taskExecutor = taskExecutorFactory.create(); private final MinionEventObserver _eventObserver = eventObserverFactory.create(); + private final MinionMetrics _minionMetrics = MinionContext.getInstance().getMinionMetrics(); @Override public TaskResult run() { - MinionMetrics minionMetrics = MinionContext.getInstance().getMinionMetrics(); + HelixManager helixManager = context.getManager(); + JobContext jobContext = TaskDriver.getJobContext(helixManager, context.getJobConfig().getJobId()); + // jobContext.getStartTime() return the time in milliseconds of job being put into helix queue. + long jobInQueueTime = jobContext.getStartTime(); Review comment: rename it to `jobInQueueTimeMs` ########## File path: pinot-minion/src/main/java/org/apache/pinot/minion/taskfactory/TaskFactoryRegistry.java ########## @@ -67,45 +70,59 @@ public TaskFactoryRegistry(TaskExecutorFactoryRegistry taskExecutorFactoryRegist private final TaskConfig _taskConfig = context.getTaskConfig(); private final PinotTaskExecutor _taskExecutor = taskExecutorFactory.create(); private final MinionEventObserver _eventObserver = eventObserverFactory.create(); + private final MinionMetrics _minionMetrics = MinionContext.getInstance().getMinionMetrics(); @Override public TaskResult run() { - MinionMetrics minionMetrics = MinionContext.getInstance().getMinionMetrics(); + HelixManager helixManager = context.getManager(); + JobContext jobContext = TaskDriver.getJobContext(helixManager, context.getJobConfig().getJobId()); + // jobContext.getStartTime() return the time in milliseconds of job being put into helix queue. + long jobInQueueTime = jobContext.getStartTime(); + long jobDequeueTime = System.currentTimeMillis(); + _minionMetrics.addPhaseTiming(taskType, MinionQueryPhase.TASK_QUEUEING, jobDequeueTime - jobInQueueTime); + long startTimeMillis = System.currentTimeMillis(); Review comment: nit: you can reuse the `jobDequeueTime` for calculating `MinionQueryPhase.TASK_EXECUTION`. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For additional commands, e-mail: commits-h...@pinot.apache.org