[
https://issues.apache.org/jira/browse/AMBARI-26635?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Himanshu Maurya updated AMBARI-26635:
-------------------------------------
Resolution: Fixed
Status: Resolved (was: Patch Available)
> Ambari Web React: Reduce redundant API calls and polling in dashboard,
> alerts, and services pages
> -------------------------------------------------------------------------------------------------
>
> Key: AMBARI-26635
> URL: https://issues.apache.org/jira/browse/AMBARI-26635
> Project: Ambari
> Issue Type: Story
> Reporter: Himanshu Maurya
> Assignee: Himanshu Maurya
> Priority: Major
> Fix For: 3.1.0
>
> Time Spent: 50m
> Remaining Estimate: 0h
>
> Several React UI components independently fetch or poll data that is already
> available elsewhere in the app, causing duplicate/redundant network traffic
> against the Ambari server:
> * Server clock time is fetched separately by the HDFS, HBase, and YARN
> config updater hooks on every mount instead of once at app startup.
> * service_check_supported is fetched via a dedicated per-service API call in
> both RunAllServiceCheck and the service Actions menu, instead of being read
> once from the initial stack configuration response.
> * The service Actions menu fetches a service's state via its own
> getServiceState call instead of reusing the state already being polled
> centrally for the sidebar/dashboard.
> * useStackVersion fetches and re-transforms the full stack version list on
> every component mount instead of loading it once and sharing it.
> * Navbar, ServiceSummary, the Alerts list page, and Alert Definition Details
> each independently poll or fetch alert groups/definitions/summary on their
> own timers (mostly every 30s), multiplying alert-related API calls across the
> page.
> Proposed fix:
> * Centralize server clock time, service_check_supported, and stack version
> list fetching into the top-level app context (AppContext), loaded once and
> shared by all consumers.
> * Introduce a shared AlertsContext that loads alert groups/definitions/
> summary once, keeps them current via the existing /events/alerts WebSocket
> topic, and restricts polling of the unhealthy-alerts list to only the Alerts
> page. All alert-consuming components (Navbar, ServiceSummary, Alerts,
> AlertDefinitionDetails) read from this shared context instead of fetching
> independently.
> * Have CentralizedServiceStateApi derive per-service alert counts from the
> shared alert data instead of issuing its own separate /alerts API call.
> This reduces the number of duplicate REST calls issued by the Modern (React)
> Ambari UI, particularly on pages with many services/alerts, without changing
> any user-visible behavior.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]