diff --git a/images/virtualization-artifact/pkg/monitoring/metrics/virtualmachine/metrics.go b/images/virtualization-artifact/pkg/monitoring/metrics/virtualmachine/metrics.go index a777c6e3e..a84300205 100644 --- a/images/virtualization-artifact/pkg/monitoring/metrics/virtualmachine/metrics.go +++ b/images/virtualization-artifact/pkg/monitoring/metrics/virtualmachine/metrics.go @@ -28,8 +28,8 @@ const ( MetricVirtualMachineConfigurationCpuCoreFraction = "virtualmachine_configuration_cpu_core_fraction" MetricVirtualMachineConfigurationCpuRequestedCores = "virtualmachine_configuration_cpu_requested_cores" MetricVirtualMachineConfigurationCpuRuntimeOverhead = "virtualmachine_configuration_cpu_runtime_overhead" - MetricVirtualMachineConfigurationMemorySize = "virtualmachine_configuration_memory_size" - MetricVirtualMachineConfigurationMemoryRuntimeOverhead = "virtualmachine_configuration_memory_runtime_overhead" + MetricVirtualMachineConfigurationMemorySize = "virtualmachine_configuration_memory_size_bytes" + MetricVirtualMachineConfigurationMemoryRuntimeOverhead = "virtualmachine_configuration_memory_runtime_overhead_bytes" MetricVirtualMachineAwaitingRestartToApplyConfiguration = "virtualmachine_awaiting_restart_to_apply_configuration" MetricVirtualMachineConfigurationApplied = "virtualmachine_configuration_applied" MetricVirtualMachineConfigurationRunPolicy = "virtualmachine_configuration_run_policy" diff --git a/templates/kubevirt/service-monitor.yaml b/templates/kubevirt/service-monitor.yaml index a9054004e..b6dd48f6b 100644 --- a/templates/kubevirt/service-monitor.yaml +++ b/templates/kubevirt/service-monitor.yaml @@ -24,19 +24,20 @@ spec: tlsConfig: insecureSkipVerify: true metricRelabelings: - # drop _phases + # relablings ============================================================= + # drop _phases metrics - action: drop regex: kubevirt_vmi_(migration_)?phase_(.*) sourceLabels: - - __name__ + - __name__ # add block_device_name without prefix only for cvi, vi, vd - action: replace regex: kubevirt_vmi_storage_.*;(cvi|vi|vd)-(.+) replacement: $2 separator: ; sourceLabels: - - __name__ - - drive + - __name__ + - drive targetLabel: block_device_name # add type for vd - action: replace @@ -44,8 +45,8 @@ spec: replacement: virtualdisk separator: ; sourceLabels: - - __name__ - - drive + - __name__ + - drive targetLabel: type # add type for vi - action: replace @@ -53,8 +54,8 @@ spec: replacement: virtualimage separator: ; sourceLabels: - - __name__ - - drive + - __name__ + - drive targetLabel: type # add type for cvi - action: replace @@ -62,8 +63,8 @@ spec: replacement: clustervirtualimage separator: ; sourceLabels: - - __name__ - - drive + - __name__ + - drive targetLabel: type # add type for cloudinit - action: replace @@ -71,8 +72,8 @@ spec: replacement: cloudinit separator: ; sourceLabels: - - __name__ - - drive + - __name__ + - drive targetLabel: type # add type for sysprep - action: replace @@ -80,43 +81,98 @@ spec: replacement: sysprep separator: ; sourceLabels: - - __name__ - - drive + - __name__ + - drive targetLabel: type # add network=default for all kubevirt_vmi_network_ - action: replace regex: kubevirt_vmi_network_(.*) replacement: default sourceLabels: - - __name__ + - __name__ targetLabel: network + # storage metrics ============================================================================ # rename kubevirt_vmi_storage_ -> d8_virtualization_virtualmachine_block_device_ - action: replace regex: kubevirt_vmi_storage_(.*) - replacement: d8_virtualization_virtualmachine_block_device_$1 + replacement: d8_virtualization_virtualmachine_block_device_${1} sourceLabels: - - __name__ + - __name__ targetLabel: __name__ + # memory metrics ============================================================================= + # hypervisor metrics + - action: replace + regex: kubevirt_vmi_memory_(cached|resident)_(.+) + replacement: d8_virtualization_virtualmachine_hypervisor_memory_${1}_${2} + sourceLabels: + - __name__ + targetLabel: __name__ + - action: replace + regex: kubevirt_vmi_launcher_memory_(.+) + replacement: d8_virtualization_virtualmachine_hypervisor_memory_${1} + sourceLabels: + - __name__ + targetLabel: __name__ + # vm instance metrics + - action: replace + regex: kubevirt_vmi_memory_actual_balloon_bytes + replacement: d8_virtualization_virtualmachine_memory_min_size_bytes + sourceLabels: + - __name__ + targetLabel: __name__ + - action: replace + regex: kubevirt_vmi_memory_domain_bytes_total + replacement: d8_virtualization_virtualmachine_memory_size_bytes + sourceLabels: + - __name__ + targetLabel: __name__ + # os metrics + - action: replace + regex: kubevirt_vmi_memory_available_bytes + replacement: d8_virtualization_virtualmachine_os_memory_total_bytes + sourceLabels: + - __name__ + targetLabel: __name__ + - action: replace + regex: kubevirt_vmi_memory_unused_bytes + replacement: d8_virtualization_virtualmachine_os_memory_free_bytes + sourceLabels: + - __name__ + targetLabel: __name__ + - action: replace + regex: kubevirt_vmi_memory_usable_bytes + replacement: d8_virtualization_virtualmachine_os_memory_potentially_free_bytes + sourceLabels: + - __name__ + targetLabel: __name__ + # kubevirt_vmi_memory_ -> d8_virtualization_virtualmachine_memory_os_ + - action: replace + regex: kubevirt_vmi_memory_(.*) + replacement: d8_virtualization_virtualmachine_os_memory_${1} + sourceLabels: + - __name__ + targetLabel: __name__ + # other vm metrics ======================================================= # kubevirt_vmi_outdated_ -> d8_internal_virtualization_kubevirt_vmi_outdated_ - action: replace regex: kubevirt_vmi_outdated_(.*) - replacement: d8_internal_virtualization_kubevirt_vmi_outdated_$1 + replacement: d8_internal_virtualization_kubevirt_vmi_outdated_${1} sourceLabels: - - __name__ + - __name__ targetLabel: __name__ - # renave kubevirt_vmi_ -> d8_virtualization_virtualmachine + # rename kubevirt_vmi_ -> d8_virtualization_virtualmachine - action: replace regex: kubevirt_vmi_(.*) - replacement: d8_virtualization_virtualmachine_$1 + replacement: d8_virtualization_virtualmachine_${1} sourceLabels: - - __name__ + - __name__ targetLabel: __name__ # all other metrics -> d8_internal_virtualization_kubevirt_ - action: replace regex: kubevirt_(.*) - replacement: d8_internal_virtualization_kubevirt_$1 + replacement: d8_internal_virtualization_kubevirt_${1} sourceLabels: - - __name__ + - __name__ targetLabel: __name__ # replace job - action: replace @@ -125,7 +181,7 @@ spec: # exported_namespace -> namespace - action: replace sourceLabels: - - exported_namespace + - exported_namespace targetLabel: namespace # drop labels - action: labeldrop @@ -136,7 +192,6 @@ spec: selector: matchLabels: prometheus.kubevirt.internal.virtualization.deckhouse.io: "true" - scheme: https tlsConfig: insecureSkipVerify: true