metrics

package
v1.17.10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 17, 2025 License: Apache-2.0 Imports: 8 Imported by: 0

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

Constants

This section is empty.

Variables

View Source
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

func ReplacePrefix(metricName, prefix string) string

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL