Documentation
¶
Overview ¶
Package metrics provides centralized metric names and registration functions for addon-operator. All metric names use variables to ensure consistency and prevent typos. The {PREFIX} placeholder is replaced by the metrics storage with the appropriate prefix.
Index ¶
- Variables
- func InitMetrics(prefix string)
- func RegisterHookMetrics(metricStorage metricsstorage.Storage) error
- func ReplacePrefix(metricName, prefix string) string
- func StartLiveTicksUpdater(metricStorage metricsstorage.Storage)
- func StartTasksQueueLengthUpdater(metricStorage metricsstorage.Storage, tqs *queue.TaskQueueSet)
Constants ¶
This section is empty.
Variables ¶
var ( // ============================================================================ // Configuration Metrics // ============================================================================ // BindingCount tracks the number of bindings per module and hook BindingCount = "{PREFIX}binding_count" // ConfigValuesErrorsTotal counts ConfigMap validation errors ConfigValuesErrorsTotal = "{PREFIX}config_values_errors_total" // ============================================================================ // Module Metrics // ============================================================================ // ModulesDiscoverErrorsTotal counts errors during module discovery ModulesDiscoverErrorsTotal = "{PREFIX}modules_discover_errors_total" // ModuleDeleteErrorsTotal counts errors during module deletion ModuleDeleteErrorsTotal = "{PREFIX}module_delete_errors_total" // ModuleRunSeconds measures module execution time ModuleRunSeconds = "{PREFIX}module_run_seconds" // ModuleRunErrorsTotal counts module execution errors ModuleRunErrorsTotal = "{PREFIX}module_run_errors_total" // ModulesHelmReleaseRedeployedTotal counts Helm release redeployments ModulesHelmReleaseRedeployedTotal = "{PREFIX}modules_helm_release_redeployed_total" // ModulesAbsentResourcesTotal counts absent resources per module ModulesAbsentResourcesTotal = "{PREFIX}modules_absent_resources_total" // ModuleInfoMetricName tracks module information ModuleInfoMetricName = "{PREFIX}mm_module_info" // ModuleMaintenanceMetricName tracks module maintenance state ModuleMaintenanceMetricName = "{PREFIX}mm_module_maintenance" // ============================================================================ // Module Hook Metrics // ============================================================================ // ModuleHookRunSeconds measures module hook execution time ModuleHookRunSeconds = "{PREFIX}module_hook_run_seconds" // ModuleHookRunUserCPUSeconds measures module hook user CPU usage ModuleHookRunUserCPUSeconds = "{PREFIX}module_hook_run_user_cpu_seconds" // ModuleHookRunSysCPUSeconds measures module hook system CPU usage ModuleHookRunSysCPUSeconds = "{PREFIX}module_hook_run_sys_cpu_seconds" // ModuleHookRunMaxRSSBytes tracks maximum resident set size for module hooks ModuleHookRunMaxRSSBytes = "{PREFIX}module_hook_run_max_rss_bytes" // ModuleHookAllowedErrorsTotal counts allowed module hook errors ModuleHookAllowedErrorsTotal = "{PREFIX}module_hook_allowed_errors_total" // ModuleHookErrorsTotal counts module hook execution errors ModuleHookErrorsTotal = "{PREFIX}module_hook_errors_total" // ModuleHookSuccessTotal counts successful module hook executions ModuleHookSuccessTotal = "{PREFIX}module_hook_success_total" // ============================================================================ // Global Hook Metrics // ============================================================================ // GlobalHookRunSeconds measures global hook execution time GlobalHookRunSeconds = "{PREFIX}global_hook_run_seconds" // GlobalHookRunUserCPUSeconds measures global hook user CPU usage GlobalHookRunUserCPUSeconds = "{PREFIX}global_hook_run_user_cpu_seconds" // GlobalHookRunSysCPUSeconds measures global hook system CPU usage GlobalHookRunSysCPUSeconds = "{PREFIX}global_hook_run_sys_cpu_seconds" // GlobalHookRunMaxRSSBytes tracks maximum resident set size for global hooks GlobalHookRunMaxRSSBytes = "{PREFIX}global_hook_run_max_rss_bytes" // GlobalHookAllowedErrorsTotal counts allowed global hook errors GlobalHookAllowedErrorsTotal = "{PREFIX}global_hook_allowed_errors_total" // GlobalHookErrorsTotal counts global hook execution errors GlobalHookErrorsTotal = "{PREFIX}global_hook_errors_total" // GlobalHookSuccessTotal counts successful global hook executions GlobalHookSuccessTotal = "{PREFIX}global_hook_success_total" // ============================================================================ // Convergence Metrics // ============================================================================ // ConvergenceSeconds measures convergence duration ConvergenceSeconds = "{PREFIX}convergence_seconds" // ConvergenceTotal counts convergence executions ConvergenceTotal = "{PREFIX}convergence_total" // ============================================================================ // Helm Operations Metrics // ============================================================================ // ModuleHelmSeconds measures Helm operation time for modules ModuleHelmSeconds = "{PREFIX}module_helm_seconds" // HelmOperationSeconds measures specific Helm operation durations HelmOperationSeconds = "{PREFIX}helm_operation_seconds" // ============================================================================ // Task Queue Metrics // ============================================================================ // TaskWaitInQueueSecondsTotal measures time tasks wait in queue TaskWaitInQueueSecondsTotal = "{PREFIX}task_wait_in_queue_seconds_total" // TasksQueueLength shows current length of task queues TasksQueueLength = "{PREFIX}tasks_queue_length" // ============================================================================ // Live Ticks Metrics // ============================================================================ // LiveTicks is a counter that increases every 10 seconds to indicate addon-operator is alive LiveTicks = "{PREFIX}live_ticks" )
Metric name variables organized by functional area. Each variable represents a unique metric name used throughout addon-operator. These variables are initialized with prefix replacement at startup.
Functions ¶
func InitMetrics ¶
func InitMetrics(prefix string)
InitMetrics initializes all metric name variables by replacing {PREFIX} placeholders with the provided prefix. This function should be called once at startup before registering any metrics.
func RegisterHookMetrics ¶
func RegisterHookMetrics(metricStorage metricsstorage.Storage) error
registerHookMetrics registers all addon-operator specific metrics with the provided storage. This includes configuration, module, hook, convergence, Helm, and task queue metrics. Returns an error if any metric registration fails.
func ReplacePrefix ¶
ReplacePrefix replaces the {PREFIX} placeholder in a metric name with the provided prefix. This function is useful for testing or when you need to manually construct metric names with a specific prefix instead of relying on the metrics storage's automatic replacement.
func StartLiveTicksUpdater ¶
func StartLiveTicksUpdater(metricStorage metricsstorage.Storage)
StartLiveTicksUpdater starts a goroutine that periodically updates the live_ticks metric every 10 seconds. This metric can be used to verify that addon-operator is alive and functioning.
func StartTasksQueueLengthUpdater ¶
func StartTasksQueueLengthUpdater(metricStorage metricsstorage.Storage, tqs *queue.TaskQueueSet)
StartTasksQueueLengthUpdater starts a goroutine that periodically updates the tasks_queue_length metric every 5 seconds. This metric shows the number of pending tasks in each queue, which can be useful for monitoring system load and potential backlog issues.
Types ¶
This section is empty.