[observer] High-frequency container check runner (1s interval, full cardinality)#48711
Draft
scottopell wants to merge 1 commit intosopell/more-frequent-system-checksfrom
Draft
[observer] High-frequency container check runner (1s interval, full cardinality)#48711scottopell wants to merge 1 commit intosopell/more-frequent-system-checksfrom
scottopell wants to merge 1 commit intosopell/more-frequent-system-checksfrom
Conversation
Contributor
Go Package Import DifferencesBaseline: e5b320d
|
Contributor
Files inventory check summaryFile checks results against ancestor e5b320de: Results for datadog-agent_7.79.0~devel.git.405.5087409.pipeline.105544149-1_amd64.deb:Detected file changes:
|
Contributor
Static quality checks❌ Please find below the results from static quality gates Error
Gate failure full details
Static quality gates prevent the PR to merge! Successful checksInfo
2 successful checks with minimal change (< 2 KiB)
On-wire sizes (compressed)
|
Extends the HF runner prototype with container metrics at 1-second
intervals and full per-container cardinality.
- `hfrunner.NewContainer(handle, ContainerDeps)` — runs the generic
container check (cpu, memory, io, network) at 1s using the existing
factory. WLM provides the container list; tagger provides
HighCardinality tags (container_id, image, container_name, etc.).
`HFContainerSource = "container-checks-hf"` distinguishes this
stream from the 15s "all-metrics" pipeline.
- `containerCheckSources` — suppresses MetricSourceContainer,
MetricSourceContainerd, MetricSourceCri, MetricSourceDocker from
the "all-metrics" handle when container HF is active, so the scorer
only sees the 1s stream.
- `hfFilteredHandle` replaces `systemFilteredHandle` — now takes a
dynamic `map[MetricSource]struct{}` built at construction from
whichever HF flags are enabled. Supports system-only, container-only,
or both simultaneously with no code duplication.
- `observer.high_frequency_container_checks.enabled` config flag
(default false). Requires workloadmeta, workloadfilter, and tagger
to be available (graceful no-op warning if missing).
WMeta, FilterStore, and Tagger are injected as `option.Option[T]` into
observer's Requires. Their respective fx modules already provide
`option.Option[T]` via `fxutil.ProvideOptional` — no new providers
needed in the observer's fx module.
- Observer debug dump confirmed 60 series under "container-checks-hf"
with 29 points each at strict 1s intervals after 30s runtime.
- Full HighCardinality tags verified: container_id, container_name,
docker_image on every series.
- Both running containers discovered (nginx test container + proxy-dumper).
- `TestHFFilteredHandle_SystemSources` — replaces previous test,
covers all 8 system sources + pass-through cases
- `TestHFFilteredHandle_ContainerSources` — all 4 container sources
dropped, non-container sources pass through
- `TestHFFilteredHandle_BothEnabled` — combined set drops both
categories, DogStatsD passes through
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
53dae5f to
5087409
Compare
53d2f78 to
3d095cf
Compare
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.
Summary
hfrunner.NewContainer(handle, ContainerDeps)— runs the generic container check (cpu, memory, io, network) at 1s using the existing factory. WLM provides the container list; tagger providesHighCardinalitytags (container_id,image,container_name, etc.).systemFilteredHandle→hfFilteredHandlewith a dynamic source set, so system-only, container-only, or both can be suppressed from the 15s pipeline simultaneously without duplication.observer.high_frequency_container_checks.enabledconfig flag.Dependencies
WMeta,FilterStore, andTaggerinjected asoption.Option[T]into observer'sRequires. Their respective fx modules already provideoption.Option[T]— no new providers needed in the observer's fx module.To enable
Test plan
TestHFFilteredHandle_SystemSources— all 8 system sources dropped, non-system pass throughTestHFFilteredHandle_ContainerSources— all 4 container sources (Container, Containerd, Cri, Docker) dropped, non-container pass throughTestHFFilteredHandle_BothEnabled— combined filter drops both categories, DogStatsD passes through"container-checks-hf", 29 points each at strict 1s intervals after 30s runtimeHighCardinalitytags confirmed:container_id:5dd457c6...,container_name:qa-container-hf,docker_image:nginx:alpineon every series🤖 Generated with Claude Code