chore: Add error logs for consolidated API (#35779)
## Description PR to add error logs in the consolidated-api as whenever DB operation fails we are not logging these anywhere and ends up in the response only. /test Sanity ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > 🟣 🟣 🟣 Your tests are running. > Tests running at: <https://github.com/appsmithorg/appsmith/actions/runs/10466559600> > Commit: c04482ee779580e789f138ab510c1dc5444e617c > Workflow: `PR Automation test suite` > Tags: `@tag.Sanity` > Spec: `` > <hr>Tue, 20 Aug 2024 06:37:40 UTC <!-- end of auto-generated comment: Cypress test results --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Bug Fixes** - Enhanced error logging for asynchronous operations, improving diagnostics for failures in data fetching related to user profiles, feature flags, and more. - **Improvements** - Augmented observability and robustness of the application through detailed error messages for data retrieval issues. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
parent
365ac27af0
commit
619fc2d3f1
|
|
@ -154,6 +154,7 @@ public class ConsolidatedAPIServiceCEImpl implements ConsolidatedAPIServiceCE {
|
||||||
.getCurrentUser()
|
.getCurrentUser()
|
||||||
.flatMap(userService::buildUserProfileDTO)
|
.flatMap(userService::buildUserProfileDTO)
|
||||||
.as(this::toResponseDTO)
|
.as(this::toResponseDTO)
|
||||||
|
.doOnError(e -> log.error("Error fetching user profile", e))
|
||||||
.doOnSuccess(consolidatedAPIResponseDTO::setUserProfile)
|
.doOnSuccess(consolidatedAPIResponseDTO::setUserProfile)
|
||||||
.name(getQualifiedSpanName(USER_PROFILE_SPAN, mode))
|
.name(getQualifiedSpanName(USER_PROFILE_SPAN, mode))
|
||||||
.tap(Micrometer.observation(observationRegistry)));
|
.tap(Micrometer.observation(observationRegistry)));
|
||||||
|
|
@ -162,6 +163,7 @@ public class ConsolidatedAPIServiceCEImpl implements ConsolidatedAPIServiceCE {
|
||||||
Mono<ResponseDTO<Map<String, Boolean>>> featureFlagsForCurrentUserResponseDTOMonoCache = userDataService
|
Mono<ResponseDTO<Map<String, Boolean>>> featureFlagsForCurrentUserResponseDTOMonoCache = userDataService
|
||||||
.getFeatureFlagsForCurrentUser()
|
.getFeatureFlagsForCurrentUser()
|
||||||
.as(this::toResponseDTO)
|
.as(this::toResponseDTO)
|
||||||
|
.doOnError(e -> log.error("Error fetching feature flags", e))
|
||||||
.doOnSuccess(consolidatedAPIResponseDTO::setFeatureFlags)
|
.doOnSuccess(consolidatedAPIResponseDTO::setFeatureFlags)
|
||||||
.name(getQualifiedSpanName(FEATURE_FLAG_SPAN, mode))
|
.name(getQualifiedSpanName(FEATURE_FLAG_SPAN, mode))
|
||||||
.tap(Micrometer.observation(observationRegistry))
|
.tap(Micrometer.observation(observationRegistry))
|
||||||
|
|
@ -172,6 +174,7 @@ public class ConsolidatedAPIServiceCEImpl implements ConsolidatedAPIServiceCE {
|
||||||
fetches.add(tenantService
|
fetches.add(tenantService
|
||||||
.getTenantConfiguration()
|
.getTenantConfiguration()
|
||||||
.as(this::toResponseDTO)
|
.as(this::toResponseDTO)
|
||||||
|
.doOnError(e -> log.error("Error fetching tenant config", e))
|
||||||
.doOnSuccess(consolidatedAPIResponseDTO::setTenantConfig)
|
.doOnSuccess(consolidatedAPIResponseDTO::setTenantConfig)
|
||||||
.name(getQualifiedSpanName(TENANT_SPAN, mode))
|
.name(getQualifiedSpanName(TENANT_SPAN, mode))
|
||||||
.tap(Micrometer.observation(observationRegistry)));
|
.tap(Micrometer.observation(observationRegistry)));
|
||||||
|
|
@ -230,6 +233,7 @@ public class ConsolidatedAPIServiceCEImpl implements ConsolidatedAPIServiceCE {
|
||||||
})
|
})
|
||||||
.as(this::toResponseDTO)
|
.as(this::toResponseDTO)
|
||||||
.doOnSuccess(consolidatedAPIResponseDTO::setPages)
|
.doOnSuccess(consolidatedAPIResponseDTO::setPages)
|
||||||
|
.doOnError(e -> log.error("Error fetching application pages", e))
|
||||||
.name(getQualifiedSpanName(PAGES_SPAN, mode))
|
.name(getQualifiedSpanName(PAGES_SPAN, mode))
|
||||||
.tap(Micrometer.observation(observationRegistry))
|
.tap(Micrometer.observation(observationRegistry))
|
||||||
.cache();
|
.cache();
|
||||||
|
|
@ -240,6 +244,7 @@ public class ConsolidatedAPIServiceCEImpl implements ConsolidatedAPIServiceCE {
|
||||||
fetches.add(branchedApplicationMonoCached
|
fetches.add(branchedApplicationMonoCached
|
||||||
.flatMap(branchedApplication -> themeService.getApplicationTheme(branchedApplication.getId(), mode))
|
.flatMap(branchedApplication -> themeService.getApplicationTheme(branchedApplication.getId(), mode))
|
||||||
.as(this::toResponseDTO)
|
.as(this::toResponseDTO)
|
||||||
|
.doOnError(e -> log.error("Error fetching current theme", e))
|
||||||
.doOnSuccess(consolidatedAPIResponseDTO::setCurrentTheme)
|
.doOnSuccess(consolidatedAPIResponseDTO::setCurrentTheme)
|
||||||
.name(getQualifiedSpanName(CURRENT_THEME_SPAN, mode))
|
.name(getQualifiedSpanName(CURRENT_THEME_SPAN, mode))
|
||||||
.tap(Micrometer.observation(observationRegistry)));
|
.tap(Micrometer.observation(observationRegistry)));
|
||||||
|
|
@ -250,6 +255,7 @@ public class ConsolidatedAPIServiceCEImpl implements ConsolidatedAPIServiceCE {
|
||||||
.getApplicationThemes(branchedApplication.getId())
|
.getApplicationThemes(branchedApplication.getId())
|
||||||
.collectList())
|
.collectList())
|
||||||
.as(this::toResponseDTO)
|
.as(this::toResponseDTO)
|
||||||
|
.doOnError(e -> log.error("Error fetching themes", e))
|
||||||
.doOnSuccess(consolidatedAPIResponseDTO::setThemes)
|
.doOnSuccess(consolidatedAPIResponseDTO::setThemes)
|
||||||
.name(getQualifiedSpanName(THEMES_SPAN, mode))
|
.name(getQualifiedSpanName(THEMES_SPAN, mode))
|
||||||
.tap(Micrometer.observation(observationRegistry)));
|
.tap(Micrometer.observation(observationRegistry)));
|
||||||
|
|
@ -259,6 +265,7 @@ public class ConsolidatedAPIServiceCEImpl implements ConsolidatedAPIServiceCE {
|
||||||
.flatMap(branchedApplication -> customJSLibService.getAllJSLibsInContext(
|
.flatMap(branchedApplication -> customJSLibService.getAllJSLibsInContext(
|
||||||
branchedApplication.getId(), CreatorContextType.APPLICATION, isViewMode))
|
branchedApplication.getId(), CreatorContextType.APPLICATION, isViewMode))
|
||||||
.as(this::toResponseDTO)
|
.as(this::toResponseDTO)
|
||||||
|
.doOnError(e -> log.error("Error fetching custom JS libraries", e))
|
||||||
.doOnSuccess(consolidatedAPIResponseDTO::setCustomJSLibraries)
|
.doOnSuccess(consolidatedAPIResponseDTO::setCustomJSLibraries)
|
||||||
.name(getQualifiedSpanName(CUSTOM_JS_LIB_SPAN, mode))
|
.name(getQualifiedSpanName(CUSTOM_JS_LIB_SPAN, mode))
|
||||||
.tap(Micrometer.observation(observationRegistry)));
|
.tap(Micrometer.observation(observationRegistry)));
|
||||||
|
|
@ -268,6 +275,7 @@ public class ConsolidatedAPIServiceCEImpl implements ConsolidatedAPIServiceCE {
|
||||||
fetches.add(applicationPageService
|
fetches.add(applicationPageService
|
||||||
.getPageAndMigrateDslByBranchAndBasePageId(basePageId, branchName, isViewMode, true)
|
.getPageAndMigrateDslByBranchAndBasePageId(basePageId, branchName, isViewMode, true)
|
||||||
.as(this::toResponseDTO)
|
.as(this::toResponseDTO)
|
||||||
|
.doOnError(e -> log.error("Error fetching current page", e))
|
||||||
.doOnSuccess(consolidatedAPIResponseDTO::setPageWithMigratedDsl)
|
.doOnSuccess(consolidatedAPIResponseDTO::setPageWithMigratedDsl)
|
||||||
.name(getQualifiedSpanName(CURRENT_PAGE_SPAN, mode))
|
.name(getQualifiedSpanName(CURRENT_PAGE_SPAN, mode))
|
||||||
.tap(Micrometer.observation(observationRegistry)));
|
.tap(Micrometer.observation(observationRegistry)));
|
||||||
|
|
@ -283,6 +291,7 @@ public class ConsolidatedAPIServiceCEImpl implements ConsolidatedAPIServiceCE {
|
||||||
.getActionsForViewMode(branchedApplication.getId())
|
.getActionsForViewMode(branchedApplication.getId())
|
||||||
.collectList())
|
.collectList())
|
||||||
.as(this::toResponseDTO)
|
.as(this::toResponseDTO)
|
||||||
|
.doOnError(e -> log.error("Error fetching actions for view mode", e))
|
||||||
.doOnSuccess(consolidatedAPIResponseDTO::setPublishedActions)
|
.doOnSuccess(consolidatedAPIResponseDTO::setPublishedActions)
|
||||||
.name(getQualifiedSpanName(ACTIONS_SPAN, mode))
|
.name(getQualifiedSpanName(ACTIONS_SPAN, mode))
|
||||||
.tap(Micrometer.observation(observationRegistry)));
|
.tap(Micrometer.observation(observationRegistry)));
|
||||||
|
|
@ -293,6 +302,7 @@ public class ConsolidatedAPIServiceCEImpl implements ConsolidatedAPIServiceCE {
|
||||||
.getActionCollectionsForViewMode(branchedApplication.getId())
|
.getActionCollectionsForViewMode(branchedApplication.getId())
|
||||||
.collectList())
|
.collectList())
|
||||||
.as(this::toResponseDTO)
|
.as(this::toResponseDTO)
|
||||||
|
.doOnError(e -> log.error("Error fetching action collections for view mode", e))
|
||||||
.doOnSuccess(consolidatedAPIResponseDTO::setPublishedActionCollections)
|
.doOnSuccess(consolidatedAPIResponseDTO::setPublishedActionCollections)
|
||||||
.name(getQualifiedSpanName(ACTION_COLLECTIONS_SPAN, mode)));
|
.name(getQualifiedSpanName(ACTION_COLLECTIONS_SPAN, mode)));
|
||||||
|
|
||||||
|
|
@ -307,6 +317,7 @@ public class ConsolidatedAPIServiceCEImpl implements ConsolidatedAPIServiceCE {
|
||||||
.collectList();
|
.collectList();
|
||||||
})
|
})
|
||||||
.as(this::toResponseDTO)
|
.as(this::toResponseDTO)
|
||||||
|
.doOnError(e -> log.error("Error fetching unpublished actions", e))
|
||||||
.doOnSuccess(consolidatedAPIResponseDTO::setUnpublishedActions)
|
.doOnSuccess(consolidatedAPIResponseDTO::setUnpublishedActions)
|
||||||
.name(getQualifiedSpanName(ACTIONS_SPAN, mode))
|
.name(getQualifiedSpanName(ACTIONS_SPAN, mode))
|
||||||
.tap(Micrometer.observation(observationRegistry)));
|
.tap(Micrometer.observation(observationRegistry)));
|
||||||
|
|
@ -320,6 +331,7 @@ public class ConsolidatedAPIServiceCEImpl implements ConsolidatedAPIServiceCE {
|
||||||
})
|
})
|
||||||
.collectList()
|
.collectList()
|
||||||
.as(this::toResponseDTO)
|
.as(this::toResponseDTO)
|
||||||
|
.doOnError(e -> log.error("Error fetching unpublished action collections", e))
|
||||||
.doOnSuccess(consolidatedAPIResponseDTO::setUnpublishedActionCollections)
|
.doOnSuccess(consolidatedAPIResponseDTO::setUnpublishedActionCollections)
|
||||||
.name(getQualifiedSpanName(ACTION_COLLECTIONS_SPAN, mode))
|
.name(getQualifiedSpanName(ACTION_COLLECTIONS_SPAN, mode))
|
||||||
.tap(Micrometer.observation(observationRegistry)));
|
.tap(Micrometer.observation(observationRegistry)));
|
||||||
|
|
@ -330,6 +342,7 @@ public class ConsolidatedAPIServiceCEImpl implements ConsolidatedAPIServiceCE {
|
||||||
.flatMap(page -> applicationPageService.getPageDTOAfterMigratingDSL(page, false, true))
|
.flatMap(page -> applicationPageService.getPageDTOAfterMigratingDSL(page, false, true))
|
||||||
.collect(Collectors.toList())
|
.collect(Collectors.toList())
|
||||||
.as(this::toResponseDTO)
|
.as(this::toResponseDTO)
|
||||||
|
.doOnError(e -> log.error("Error fetching pages with migrated DSL", e))
|
||||||
.doOnSuccess(consolidatedAPIResponseDTO::setPagesWithMigratedDsl)
|
.doOnSuccess(consolidatedAPIResponseDTO::setPagesWithMigratedDsl)
|
||||||
.name(getQualifiedSpanName(PAGES_DSL_SPAN, mode))
|
.name(getQualifiedSpanName(PAGES_DSL_SPAN, mode))
|
||||||
.tap(Micrometer.observation(observationRegistry)));
|
.tap(Micrometer.observation(observationRegistry)));
|
||||||
|
|
@ -355,6 +368,7 @@ public class ConsolidatedAPIServiceCEImpl implements ConsolidatedAPIServiceCE {
|
||||||
? Mono.empty()
|
? Mono.empty()
|
||||||
: pluginService.getInWorkspace(workspaceId).collectList())
|
: pluginService.getInWorkspace(workspaceId).collectList())
|
||||||
.as(this::toResponseDTO)
|
.as(this::toResponseDTO)
|
||||||
|
.doOnError(e -> log.error("Error fetching plugins", e))
|
||||||
.doOnSuccess(consolidatedAPIResponseDTO::setPlugins)
|
.doOnSuccess(consolidatedAPIResponseDTO::setPlugins)
|
||||||
.name(getQualifiedSpanName(PLUGINS_SPAN, mode))
|
.name(getQualifiedSpanName(PLUGINS_SPAN, mode))
|
||||||
.tap(Micrometer.observation(observationRegistry))
|
.tap(Micrometer.observation(observationRegistry))
|
||||||
|
|
@ -371,6 +385,7 @@ public class ConsolidatedAPIServiceCEImpl implements ConsolidatedAPIServiceCE {
|
||||||
return datasourceService.getAllWithStorages(params).collectList();
|
return datasourceService.getAllWithStorages(params).collectList();
|
||||||
})
|
})
|
||||||
.as(this::toResponseDTO)
|
.as(this::toResponseDTO)
|
||||||
|
.doOnError(e -> log.error("Error fetching datasources", e))
|
||||||
.doOnSuccess(consolidatedAPIResponseDTO::setDatasources)
|
.doOnSuccess(consolidatedAPIResponseDTO::setDatasources)
|
||||||
.name(getQualifiedSpanName(DATASOURCES_SPAN, mode))
|
.name(getQualifiedSpanName(DATASOURCES_SPAN, mode))
|
||||||
.tap(Micrometer.observation(observationRegistry))
|
.tap(Micrometer.observation(observationRegistry))
|
||||||
|
|
@ -415,6 +430,7 @@ public class ConsolidatedAPIServiceCEImpl implements ConsolidatedAPIServiceCE {
|
||||||
return pluginIdToFormConfigMap;
|
return pluginIdToFormConfigMap;
|
||||||
})
|
})
|
||||||
.as(this::toResponseDTO)
|
.as(this::toResponseDTO)
|
||||||
|
.doOnError(e -> log.error("Error fetching plugin form configs", e))
|
||||||
.doOnSuccess(consolidatedAPIResponseDTO::setPluginFormConfigs)
|
.doOnSuccess(consolidatedAPIResponseDTO::setPluginFormConfigs)
|
||||||
.name(getQualifiedSpanName(FORM_CONFIG_SPAN, mode))
|
.name(getQualifiedSpanName(FORM_CONFIG_SPAN, mode))
|
||||||
.tap(Micrometer.observation(observationRegistry)));
|
.tap(Micrometer.observation(observationRegistry)));
|
||||||
|
|
@ -424,6 +440,7 @@ public class ConsolidatedAPIServiceCEImpl implements ConsolidatedAPIServiceCE {
|
||||||
.getMockDataSet()
|
.getMockDataSet()
|
||||||
.map(MockDataDTO::getMockdbs)
|
.map(MockDataDTO::getMockdbs)
|
||||||
.as(this::toResponseDTO)
|
.as(this::toResponseDTO)
|
||||||
|
.doOnError(e -> log.error("Error fetching mock datasources", e))
|
||||||
.doOnSuccess(consolidatedAPIResponseDTO::setMockDatasources)
|
.doOnSuccess(consolidatedAPIResponseDTO::setMockDatasources)
|
||||||
.name(getQualifiedSpanName(MOCK_DATASOURCES_SPAN, mode))
|
.name(getQualifiedSpanName(MOCK_DATASOURCES_SPAN, mode))
|
||||||
.tap(Micrometer.observation(observationRegistry)));
|
.tap(Micrometer.observation(observationRegistry)));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user