[fix] resolve {PREFIX} metric init order in module_manager#760
Merged
Conversation
Signed-off-by: diyliv <onlogn081@gmail.com>
ldmonster
approved these changes
May 5, 2026
ipaqsa
approved these changes
May 5, 2026
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.
Overview
Fix
{PREFIX}placeholder not being replaced in two addon-operator metrics (mm_module_infoandmm_module_maintenance), causing them to appear as_PREFIX_mm_*in Prometheus instead ofdeckhouse_mm_*.What this PR does / why we need it
Package-level variables
moduleInfoMetricNameandmoduleMaintenanceMetricNameinmodule_manager.gocopied metric names from themetricspackage at Go init time, beforeInitMetrics()could replace the{PREFIX}placeholder. At call sites, these stale copies were used instead of the updatedmetrics.ModuleInfoMetricName/metrics.ModuleMaintenanceMetricName.This caused the
ModuleIsInMaintenanceModePrometheus alert to never fire, because the alert expression referenceddeckhouse_mm_module_maintenancewhile the actual metric was exported as_PREFIX_mm_module_maintenance.The fix removes the two package-level variable copies and reads directly from
metrics.ModuleInfoMetricName/metrics.ModuleMaintenanceMetricNameat call time, afterInitMetrics()has already replaced the prefix.Special notes for your reviewer
Verified in a staging Deckhouse cluster — before the fix, only
_PREFIX_mm_module_maintenanceand_PREFIX_mm_module_infowere present; all other metrics correctly used thedeckhouse_prefix.