Repository navigation
Portal async cleanup metrics for dashboard chart (#61) - #67
Merged
Merged
Conversation
Capture each CacheCleanupAsyncProcessor pass, publish via a bounded channel, aggregate in an in-memory store, and expose GET /cubby/portal/metrics for the dashboard chart with resolution text. Co-authored-by: Eric Williams <ewilliams0305@users.noreply.github.com>
Closed
8 tasks
Align host Cleanup.Delay with the resolution example used by the dashboard chart (Sampled 60x per hour). Co-authored-by: Eric Williams <ewilliams0305@users.noreply.github.com>
Use shorter time-range tick labels on the dashboard chart, and include Capacity in host appsettings so portal option cards reflect the store size. Co-authored-by: Eric Williams <ewilliams0305@users.noreply.github.com>
Pass from/to query params to /cubby/portal/metrics, refetch on range changes, and bind layerchart xDomain to the selected window so Last Hour through Last 3 Days actually rescale the axis. Co-authored-by: Eric Williams <ewilliams0305@users.noreply.github.com>
Bind the timeline toggle to local state, navigate with ?range=, and canonicalize missing/invalid ranges to Last Hour so the active control and address bar stay aligned with the chart domain. Co-authored-by: Eric Williams <ewilliams0305@users.noreply.github.com>
Derive ring capacity from IOptionsMonitor cleanup settings so shorter sample delays retain more points for the 3-day portal window, and resize the store when options reload. Co-authored-by: Eric Williams <ewilliams0305@users.noreply.github.com>
Use a 10s sliding window with a zero-offset time provider so Get_Known_Key_SlidingFutureEntry_* no longer flakes when Put/Get spans more than 1ms of real time. Co-authored-by: Eric Williams <ewilliams0305@users.noreply.github.com>
Refresh portal page data on an interval so cleanup chart points and option cards stay current without a manual browser reload. Co-authored-by: Eric Williams <ewilliams0305@users.noreply.github.com>
Include each sample's duration_ms on hover so the dashboard can surface how long the async processor took to scan and evict entries. Co-authored-by: Eric Williams <ewilliams0305@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scribbly Pull Request
Description
Closes #61.
Replaces the dashboard's hardcoded chart data with live cleanup metrics from
CacheCleanupAsyncProcessor:TotalCountis maintained with interlocked updates to avoid Count scansIOptionsMonitorcleanup delayGET /cubby/portal/metrics?from=&to=Demo
Chart tooltip with Duration
chart-tooltip-duration.mp4
Developers
@ewilliams0305
Type of change
Checklist
Github Issues
To show artifacts inline, enable in settings.