feat(quota-enforcement): split accept_skipped decision into sub-buckets - #1022
Conversation
Break the generic accept_skipped decision label emitted by the quota
enforcement nova filter into three more descriptive buckets so operators
can distinguish the underlying reason directly from the metric:
- accept_skipped_intent_migration: external non-consuming intents
(evacuate, live_migrate) where the VM already exists and is only
being moved.
- accept_skipped_intent_internal: cortex-internal reservation intents
(reserve_for_failover, reserve_for_committed_resource).
- accept_skipped_missing_data: request is missing project ID,
availability zone, or hw_version. The specific missing field
remains in the trace log.
The decision label is used because the cardinality growth is bounded
(5 accept variants total) and downstream dashboards can pattern-match
accept_skipped_* if a rollup is still needed.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughThis PR splits the generic ChangesQuota Enforcement Skip Metrics Refinement
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Test Coverage ReportTest Coverage 📊: 70.1% |
## Changelog ### cortex v0.3.0 (sha-ee9cd485) Breaking changes: - `NumberOfObjects` field in `DatasourceStatus` changed from `int64` to `*int64` so `omitempty` no longer strips zero values ([#1024](#1024)) Non-breaking changes: - Migrate CR and failover calls to options-based pipeline selection — eliminates dedicated CR and failover pipelines by encoding behavioral differences as call-time scheduling options ([#950](#950)) - Convert capacity controller from timer-based to controller-runtime reconciler with reactive watches and coalesced reconcile keys ([#1025](#1025)) - Split quota enforcement `accept_skipped` decision into sub-buckets for granular observability ([#1022](#1022)) - Fix alert wording: 'LackingBehind' → 'LaggingBehind' ([#1031](#1031)) - Increase datasource lagging behind alert time frame to 30 min ([#1035](#1035)) - Add logger context for remote cluster communication ([#1023](#1023)) - Update `golang.org/x/sync` v0.21.0→v0.22.0, `golang.org/x/term` v0.44.0→v0.45.0 ([#1026](#1026)) - Update `ironcore` v0.4.2→v0.4.3 ([#1029](#1029)) - Update `github.com/sapcc/go-bits` ([#1030](#1030)) ### cortex-shim v0.1.6 (sha-ee9cd485) Includes updated image sha-ee9cd485. ### cortex-nova v0.0.80 Includes updated charts cortex v0.3.0, cortex-postgres v0.6.8. - Scope `SyncObjectsDroppedToZero` alert to only fire when previously non-zero ([#1024](#1024)) - Add `capacityMinReconcileInterval` config key for capacity controller ([#1025](#1025)) ### cortex-cinder v0.0.80 Includes updated charts cortex v0.3.0, cortex-postgres v0.6.8. - Scope `SyncObjectsDroppedToZero` alert to only fire when previously non-zero ([#1024](#1024)) ### cortex-manila v0.0.80 Includes updated charts cortex v0.3.0, cortex-postgres v0.6.8. - Scope `SyncObjectsDroppedToZero` alert to only fire when previously non-zero ([#1024](#1024)) ### cortex-crds v0.0.80 Includes updated chart cortex v0.3.0. ### cortex-ironcore v0.0.80 Includes updated chart cortex v0.3.0. ### cortex-pods v0.0.80 Includes updated chart cortex v0.3.0. ### cortex-placement-shim v0.1.6 Includes updated chart cortex-shim v0.1.6. ## Dependencies - Bump PR: #1038 (must be merged before this PR) - Changelog PR: #1039 (merge after this PR)
…ts (#1022) Break the generic accept_skipped decision label emitted by the quota enforcement nova filter into three more descriptive buckets so operators can distinguish the underlying reason directly from the metric: - accept_skipped_intent_migration: external non-consuming intents (evacuate, live_migrate) where the VM already exists and is only being moved. - accept_skipped_intent_internal: cortex-internal reservation intents (reserve_for_failover, reserve_for_committed_resource). - accept_skipped_missing_data: request is missing project ID, availability zone, or hw_version. The specific missing field remains in the trace log. The decision label is used because the cardinality growth is bounded (5 accept variants total) and downstream dashboards can pattern-match accept_skipped_* if a rollup is still needed. Signed-off-by: Philipp Matthes <p.matthes@sap.com>
Break the generic accept_skipped decision label emitted by the quota enforcement nova filter into three more descriptive buckets so operators can distinguish the underlying reason directly from the metric:
The decision label is used because the cardinality growth is bounded (5 accept variants total) and downstream dashboards can pattern-match accept_skipped_* if a rollup is still needed.