@@ -2448,6 +2448,7 @@ void ReplicaImp::startExecution(SeqNum seqNumber,
24482448 if (isCurrentPrimary ()) {
24492449 metric_consensus_duration_.finishMeasurement (seqNumber);
24502450 metric_post_exe_duration_.addStartTimeStamp (seqNumber);
2451+ metric_consensus_end_to_core_exe_duration_.addStartTimeStamp (seqNumber);
24512452 }
24522453
24532454 consensus_times_.end (seqNumber);
@@ -4341,9 +4342,13 @@ ReplicaImp::ReplicaImp(bool firstTime,
43414342 metric_total_preexec_requests_executed_{metrics_.RegisterCounter (" totalPreExecRequestsExecuted" )},
43424343 metric_received_restart_ready_{metrics_.RegisterCounter (" receivedRestartReadyMsg" , 0 )},
43434344 metric_received_restart_proof_{metrics_.RegisterCounter (" receivedRestartProofMsg" , 0 )},
4344- metric_consensus_duration_{metrics_, " consensusDuration" , 1000 , true },
4345- metric_post_exe_duration_{metrics_, " postExeDuration" , 1000 , true },
4346- metric_primary_batching_duration_{metrics_, " primaryBatchingDuration" , 10000 , true },
4345+ metric_consensus_duration_{metrics_, " consensusDuration" , 1000 , 100 , true },
4346+ metric_post_exe_duration_{metrics_, " postExeDuration" , 1000 , 100 , true },
4347+ metric_core_exe_func_duration_{metrics_, " postExeCoreFuncDuration" , 1000 , 100 , true },
4348+ metric_consensus_end_to_core_exe_duration_{metrics_, " consensusEndToExeStartDuration" , 1000 , 100 , true },
4349+ metric_post_exe_thread_idle_time_{metrics_, " PostExeThreadIdleDuration" , 1000 , 100 , true },
4350+ metric_post_exe_thread_active_time_{metrics_, " PostExeThreadActiveDuration" , 1000 , 100 , true },
4351+ metric_primary_batching_duration_{metrics_, " primaryBatchingDuration" , 10000 , 1000 , true },
43474352 consensus_times_ (histograms_.consensus),
43484353 checkpoint_times_ (histograms_.checkpointFromCreationToStable),
43494354 time_in_active_view_ (histograms_.timeInActiveView),
@@ -4817,6 +4822,11 @@ void ReplicaImp::startPrePrepareMsgExecution(PrePrepareMsg *ppMsg,
48174822 // send internal message that will call to finishExecutePrePrepareMsg
48184823 ConcordAssert (activeExecutions_ == 0 );
48194824 activeExecutions_ = 1 ;
4825+ if (isCurrentPrimary ()) {
4826+ metric_post_exe_thread_active_time_.addStartTimeStamp (0 );
4827+ metric_post_exe_thread_idle_time_.finishMeasurement (0 );
4828+ }
4829+
48204830 InternalMessage im = FinishPrePrepareExecutionInternalMsg{ppMsg, nullptr }; // TODO(GG): check....
48214831 getIncomingMsgsStorage ().pushInternalMsg (std::move (im));
48224832 }
@@ -4908,6 +4918,10 @@ void ReplicaImp::executeAllPrePreparedRequests(bool allowParallelExecution,
49084918
49094919 ConcordAssert (activeExecutions_ == 0 );
49104920 activeExecutions_ = 1 ;
4921+ if (isCurrentPrimary ()) {
4922+ metric_post_exe_thread_active_time_.addStartTimeStamp (0 );
4923+ metric_post_exe_thread_idle_time_.finishMeasurement (0 );
4924+ }
49114925 if (shouldRunRequestsInParallel) {
49124926 PostExecJob *j = new PostExecJob (ppMsg, requestSet, time, *this );
49134927 postExecThread_.add (j);
@@ -5032,7 +5046,14 @@ void ReplicaImp::executeRequests(PrePrepareMsg *ppMsg, Bitmap &requestSet, Times
50325046 span.setTag (" rid" , config_.getreplicaId ());
50335047 span.setTag (" cid" , ppMsg->getCid ());
50345048 span.setTag (" seq_num" , ppMsg->seqNumber ());
5049+ if (isCurrentPrimary ()) {
5050+ metric_consensus_end_to_core_exe_duration_.finishMeasurement (ppMsg->seqNumber ());
5051+ metric_core_exe_func_duration_.addStartTimeStamp (ppMsg->seqNumber ());
5052+ }
50355053 bftRequestsHandler_->execute (*pAccumulatedRequests, time, ppMsg->getCid (), span);
5054+ if (isCurrentPrimary ()) {
5055+ metric_core_exe_func_duration_.finishMeasurement (ppMsg->seqNumber ());
5056+ }
50365057 }
50375058 } else {
50385059 LOG_INFO (
@@ -5067,6 +5088,10 @@ void ReplicaImp::executeRequests(PrePrepareMsg *ppMsg, Bitmap &requestSet, Times
50675088void ReplicaImp::finishExecutePrePrepareMsg (PrePrepareMsg *ppMsg,
50685089 IRequestsHandler::ExecutionRequestsQueue *pAccumulatedRequests) {
50695090 activeExecutions_ = 0 ;
5091+ if (isCurrentPrimary ()) {
5092+ metric_post_exe_thread_idle_time_.addStartTimeStamp (0 );
5093+ metric_post_exe_thread_active_time_.finishMeasurement (0 );
5094+ }
50705095
50715096 if (pAccumulatedRequests != nullptr ) {
50725097 sendResponses (ppMsg, *pAccumulatedRequests);
0 commit comments