http, ui: reduces service observability noise#284
Merged
Conversation
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.
What type of PR is this? (check all applicable)
Description
Reduces HTTP and UI observability noise while keeping useful operator visibility.
Previously the HTTP service emitted frequent
obsmetrics during normal request traffic, which made the monitor difficult to use when callers such as the switch driver were polling regularly. After quieting HTTP, the monitor still showed excessive UI status chatter becauseobs/v1/ui/metric/statuswas republished for timestamp-only and dependency replay changes.This PR makes HTTP and UI observability quiet by default:
Replaces noisy per-exchange
obs/v1/http/metric/<id>/statspublication with quieterobs/v1/http/metric/<id>/status.Keeps
cap/http/<id>/state/statsfor programmatic HTTP state.Adds HTTP observability config:
status_interval_srequest_tracesuccess_eventsfailure_rate_limit_sSuppresses repeated equivalent HTTP failure logs within the configured rate-limit window.
Emits sparse HTTP failure summaries with a suppressed count.
Always emits a single
request_recoveredevent after a prior HTTP failure, even whensuccess_events = false.Clears HTTP failure suppression windows after recovery so a later failure is visible as a fresh failure.
Keeps HTTP per-request debug tracing opt-in only.
Adds UI lifecycle status gating for
obs/v1/ui/metric/status.Publishes UI status only when the semantic lifecycle state changes or a slow heartbeat interval elapses.
Ignores volatile UI status fields for gating, including
at,ts,run_idand dependencyupdated_at.Adds UI observability config:
status_interval_sManual test
Manual test description
Verified through the monitor path that HTTP no longer emits high-frequency successful exchange metrics by default, while still reporting meaningful failure and recovery transitions.
Also verified from Big Box monitor logs that remaining monitor noise was dominated by repeated UI status publications, then added UI semantic status gating to reduce timestamp-only and dependency replay chatter.
Added tests?
Added HTTP unit coverage for:
success_events = false;Added UI unit coverage for:
Added to documentation?