fix(observability): use the chart's key format to disable RecordingRulesNoData - #4199
Conversation
…lesNoData The rule survived the merge: defaultRules.rules is keyed by the exact alert name with an 'enabled' field, per the chart's own commented example, so the camelCased 'recordingRulesNoData: create: false' matched nothing and the alert kept firing. Verified against the live VMRule after reconcile. The neighbouring etcdMemberCommunicationSlow entry is left as-is: its key already matches its alert name verbatim and that alert is absent from the rendered rules.
|
Warning Review limit reached
Next review available in: 25 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
@@ data.config.yaml @@
# v1/ConfigMap/observability/victoria-metrics-sync-job-config
! ± value change in multiline text (two inserts, two deletions)
common:
clusterLabel: "cluster"
multicluster: false
dashboards:
[91 lines unchanged)]
spec:
annotations: {}
labels: {}
rules:
- etcdMemberCommunicationSlow:
+ RecordingRulesNoData:
enabled: false
- recordingRulesNoData:
+ etcdMemberCommunicationSlow:
enabled: false
groups:
kubernetes-apps:
jobNamespaces:
[35 lines unchanged)]
- enabled: true
url: https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/master/deployment/docker/rules/alerts-single-node.yml
- enabled: false
url: https://raw.githubusercontent.com/VictoriaMetrics/VictoriaTraces/master/deployment/docker/rules/alerts-health.yml
|
@@ spec.values.defaultRules.rules @@
# helm.toolkit.fluxcd.io/v2/HelmRelease/observability/victoria-metrics
! - one map entry removed:
- recordingRulesNoData:
- create: false
! + one map entry added:
+ RecordingRulesNoData:
+ enabled: false
|
AI Automated ReviewAnalysis engine: qwen-3.6-fast@http://litellm.ai.svc.cluster.local/v1 (openai) RecommendationApprove. The PR correctly fixes a configuration bug in the Change-by-Change Findings
Standards Compliance
Must Check Verification
Unknowns or Needs Verification
|
Follow-up to #4195, caught while verifying the merge in-cluster.
The alert was still firing after reconcile. The HelmRelease value applied cleanly (
kubectl get hrshowsrecordingRulesNoData: {create: false}), but the rule remained in the rendered VMRule, becausedefaultRules.rulesis keyed by the exact alert name with anenabledfield. The chart says so in its own commented example:So
recordingRulesNoData: create: falsematched nothing and was silently ignored. Corrected toRecordingRulesNoData: enabled: false.The neighbouring
etcdMemberCommunicationSlowentry is deliberately left alone: its key already matches its alert name verbatim, and that alert is absent from the rendered rules, so it is doing its job.Rationale for disabling is unchanged from #4195: the rule flags recording rules that are empty by design.
count:up0iscount(up == 0), which yields no samples precisely when every scrape target is healthy, as do the orphan-pod variants ofnamespace_workload_pod:kube_pod_owner:relabel.