diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/GitServiceCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/GitServiceCEImpl.java index 143ce051c4c0..ac29832cb266 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/GitServiceCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/GitServiceCEImpl.java @@ -1555,19 +1555,19 @@ private Mono getStatus(String defaultApplicationId, String branchN 2. Fetch the current status from local repo */ - Mono statusMono = getGitApplicationMetadata(defaultApplicationId) + Mono statusMono = executionTimeLogging.measureTask("getGitApplicationMetadata", getGitApplicationMetadata(defaultApplicationId)) .flatMap(gitApplicationMetadata -> { - Mono> applicationJsonTuple = applicationService.findByBranchNameAndDefaultApplicationId(finalBranchName, defaultApplicationId, applicationPermission.getEditPermission()) + Mono> applicationJsonTuple = executionTimeLogging.measureTask("findByBranchNameAndDefaultApplicationId", applicationService.findByBranchNameAndDefaultApplicationId(finalBranchName, defaultApplicationId, applicationPermission.getEditPermission())) .onErrorResume(error -> { //if the branch does not exist in local, checkout remote branch - return checkoutBranch(defaultApplicationId, finalBranchName); + return executionTimeLogging.measureTask("checkoutBranch", checkoutBranch(defaultApplicationId, finalBranchName)); }) - .zipWhen(application -> importExportApplicationService.exportApplicationById(application.getId(), SerialiseApplicationObjective.VERSION_CONTROL)); + .zipWhen(application -> executionTimeLogging.measureTask( "getStatus->exportApplicationById", importExportApplicationService.exportApplicationById(application.getId(), SerialiseApplicationObjective.VERSION_CONTROL))); if (Boolean.TRUE.equals(isFileLock)) { // Add file lock for the status API call to avoid sending wrong info on the status - return redisUtils.addFileLock(gitApplicationMetadata.getDefaultApplicationId()) + return executionTimeLogging.measureTask("addFileLock", redisUtils.addFileLock(gitApplicationMetadata.getDefaultApplicationId())) .retryWhen(Retry.fixedDelay(MAX_RETRIES, RETRY_DELAY).jitter(0.75) .onRetryExhaustedThrow((retryBackoffSpec, retrySignal) -> { throw new AppsmithException(AppsmithError.GIT_FILE_IN_USE); @@ -1588,7 +1588,7 @@ private Mono getStatus(String defaultApplicationId, String branchN try { return Mono.zip( - fileUtils.saveApplicationToLocalRepo(repoSuffix, applicationJson, finalBranchName), + executionTimeLogging.measureTask("getStatus->saveApplicationToLocalRepo", fileUtils.saveApplicationToLocalRepo(repoSuffix, applicationJson, finalBranchName)), Mono.just(gitData.getGitAuth()), Mono.just(repoSuffix) ); @@ -1597,15 +1597,15 @@ private Mono getStatus(String defaultApplicationId, String branchN } }) .flatMap(tuple -> { - Mono branchedStatusMono = gitExecutor.getStatus(tuple.getT1(), finalBranchName).cache(); + Mono branchedStatusMono = executionTimeLogging.measureTask("getStatus->gitExecutor.getStatus", gitExecutor.getStatus(tuple.getT1(), finalBranchName).cache()); try { - return gitExecutor.fetchRemote(tuple.getT1(), tuple.getT2().getPublicKey(), tuple.getT2().getPrivateKey(), true, branchName, false) + return executionTimeLogging.measureTask("getStatus->gitExecutor.fetchRemote", gitExecutor.fetchRemote(tuple.getT1(), tuple.getT2().getPublicKey(), tuple.getT2().getPrivateKey(), true, branchName, false)) .then(branchedStatusMono) // Remove any files which are copied by hard resetting the repo - .then(gitExecutor.resetToLastCommit(tuple.getT3(), branchName)) + .then(executionTimeLogging.measureTask("getStatus->gitExecutor.resetToLastCommit", gitExecutor.resetToLastCommit(tuple.getT3(), branchName))) .flatMap(gitStatusDTO -> { if (Boolean.TRUE.equals(isFileLock)) { - return releaseFileLock(defaultApplicationId) + return executionTimeLogging.measureTask("getStatus->releaseFileLock", releaseFileLock(defaultApplicationId)) .then(branchedStatusMono); } return branchedStatusMono; @@ -1617,7 +1617,10 @@ private Mono getStatus(String defaultApplicationId, String branchN }); return Mono.create(sink -> { - statusMono.subscribe(sink::success, sink::error, null, sink.currentContext()); + statusMono.map(t -> { + log.debug("Time take, {}\n", executionTimeLogging.print()); + return t; + }).subscribe(sink::success, sink::error, null, sink.currentContext()); }); }