[ 
https://issues.apache.org/jira/browse/AMBARI-26635?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Himanshu Maurya updated AMBARI-26635:
-------------------------------------
    Status: Patch Available  (was: In Progress)

> 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: 10m
>  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]

Reply via email to