KubeVirt Controller

Supported OS Linux

Versión de la integración1.1.0
Esta integración se encuentra en fase beta pública y debe activarse en cargas de trabajo de producción con precaución.

Información general

Este check monitoriza [KubeVirt Controller]]1 a través del Datadog Agent.

Configuración

Sigue las instrucciones a continuación para instalar y configurar este check para un Agent que se ejecuta en un host. Para entornos en contenedores, consulta las plantillas de integración de Autodiscovery para obtener orientación sobre la aplicación de estas instrucciones.

Instalación

El check de KubeVirt Controller está incluido en el paquete del Datadog Agent. No es necesaria ninguna instalación adicional en tu servidor.

Configuración

El caso de uso principal para ejecutar el check kubevirt_controller es como check a nivel de clúster.

Para ello, tendrás que actualizar algunos permisos RBAC para proporcionar al servicio datadog-agent acceso de sólo lectura a los recursos KubeVirt, siguiendo los pasos que se indican a continuación:

  1. Vincula el ClusterRole kubevirt.io:view a la cuenta de servicio datadog-agent:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: datadog-agent-kubevirt
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: kubevirt.io:view
subjects:
  - kind: ServiceAccount
  name: datadog-agent
  namespace: default
  1. Anote la plantilla de pods de tu despliegue virt-controller colocando un parche al recurso KubeVirt como se indica a continuación:
apiVersion: kubevirt.io/v1
kind: KubeVirt
metadata:
  name: kubevirt
  namespace: kubevirt
spec:
  certificateRotateStrategy: {}
  configuration: {}
  customizeComponents:
    patches:
    - resourceType: Deployment
        resourceName: virt-controller
        patch: '{"spec": {"template":{"metadata":{"annotations":{ "ad.datadoghq.com/virt-controller.check_names": "[\"kubevirt_controller\"]", "ad.datadoghq.com/virt-controller.init_configs": "[{}]", "ad.datadoghq.com/virt-controller.instances": "[{ \"kubevirt_controller_metrics_endpoint\": \"https://%%host%%:%%port%%/metrics\",\"kubevirt_controller_healthz_endpoint\": \"https://%%host%%:%%port%%/healthz\", \"kube_namespace\":\"%%kube_namespace%%\", \"kube_pod_name\":\"%%kube_pod_name%%\", \"tls_verify\": \"false\"}]"}}}}}'
        type: strategic

Sustituye <DD_CLUSTER_NAME> por el nombre que hayas elegido para tu clúster.

Validación

Ejecuta el subcomando clusterchecks del Cluster Agent dentro de tu contenedor del Cluster Agent y busca el check kubevirt_controller en la sección Checks.

Datos recopilados

Métricas

kubevirt_controller.can_connect
(gauge)
Value of 1 if the agent can connect to the KubeVirt Controller, and 0 otherwise.
kubevirt_controller.virt_controller.leading_status
(gauge)
Indication for an operating virt-controller.
kubevirt_controller.virt_controller.ready_status
(gauge)
Indication for a virt-controller that is ready to take the lead.
kubevirt_controller.vm.error_status_last_transition_timestamp_seconds.count
(count)
Virtual Machine last transition timestamp to error status.
Shown as second
kubevirt_controller.vm.migrating_status_last_transition_timestamp_seconds.count
(count)
Virtual Machine last transition timestamp to migrating status.
Shown as second
kubevirt_controller.vm.non_running_status_last_transition_timestamp_seconds.count
(count)
Virtual Machine last transition timestamp to paused/stopped status.
Shown as second
kubevirt_controller.vm.running_status_last_transition_timestamp_seconds.count
(count)
Virtual Machine last transition timestamp to running status.
Shown as second
kubevirt_controller.vm.starting_status_last_transition_timestamp_seconds.count
(count)
Virtual Machine last transition timestamp to starting status.
Shown as second
kubevirt_controller.vmi.migrations_in_pending_phase
(gauge)
Number of current pending migrations.
kubevirt_controller.vmi.migrations_in_running_phase
(gauge)
Number of current running migrations.
kubevirt_controller.vmi.migrations_in_scheduling_phase
(gauge)
Number of current scheduling migrations.
kubevirt_controller.vmi.non_evictable
(gauge)
Indication for a VirtualMachine that its eviction strategy is set to Live Migration but is not migratable.
kubevirt_controller.vmi.number_of_outdated
(gauge)
Indication for the total number of VirtualMachineInstance workloads that are not running within the most up-to-date version of the virt-launcher environment.
kubevirt_controller.vmi.phase_count
(gauge)
Sum of VMIs per phase and node. phase can be one of the following: [Pending, Scheduling, Scheduled, Running, Succeeded, Failed, Unknown].
kubevirt_controller.vmi.phase_transition_time_from_creation_seconds.bucket
(count)
Histogram of VM phase transitions duration from creation time in seconds.
Shown as second
kubevirt_controller.vmi.phase_transition_time_from_creation_seconds.count
(count)
Histogram of VM phase transitions duration from creation time in seconds.
Shown as second
kubevirt_controller.vmi.phase_transition_time_from_creation_seconds.sum
(count)
Histogram of VM phase transitions duration from creation time in seconds.
Shown as second
kubevirt_controller.vmi.phase_transition_time_from_deletion_seconds.bucket
(count)
Histogram of VM phase transitions duration from deletion time in seconds.
Shown as second
kubevirt_controller.vmi.phase_transition_time_from_deletion_seconds.count
(count)
Histogram of VM phase transitions duration from deletion time in seconds.
Shown as second
kubevirt_controller.vmi.phase_transition_time_from_deletion_seconds.sum
(count)
Histogram of VM phase transitions duration from deletion time in seconds.
Shown as second
kubevirt_controller.vmi.phase_transition_time_seconds.bucket
(count)
Histogram of VM phase transitions duration between different phases in seconds.
Shown as second
kubevirt_controller.vmi.phase_transition_time_seconds.count
(count)
Histogram of VM phase transitions duration between different phases in seconds.
Shown as second
kubevirt_controller.vmi.phase_transition_time_seconds.sum
(count)
Histogram of VM phase transitions duration between different phases in seconds.
Shown as second
kubevirt_controller.workqueue.adds.count
(count)
Total number of adds handled by workqueue
Shown as item
kubevirt_controller.workqueue.depth
(gauge)
Current depth of workqueue
Shown as item
kubevirt_controller.workqueue.longest_running_processor_seconds
(gauge)
How many seconds has the longest running processor for workqueue been running.
Shown as second
kubevirt_controller.workqueue.queue_duration_seconds.bucket
(count)
How long an item stays in workqueue before being requested.
Shown as second
kubevirt_controller.workqueue.queue_duration_seconds.count
(count)
How long an item stays in workqueue before being requested.
Shown as second
kubevirt_controller.workqueue.queue_duration_seconds.sum
(count)
How long an item stays in workqueue before being requested.
Shown as second
kubevirt_controller.workqueue.retries.count
(count)
Total number of retries handled by workqueue.
kubevirt_controller.workqueue.unfinished_work_seconds
(gauge)
How many seconds of work has done that is in progress and hasn't been observed by work_duration. Large values indicate stuck threads. One can deduce the number of stuck threads by observing the rate at which this increases.
Shown as second
kubevirt_controller.workqueue.work_duration_seconds.bucket
(count)
How long in seconds processing an item from workqueue takes.
Shown as second
kubevirt_controller.workqueue.work_duration_seconds.count
(count)
How long in seconds processing an item from workqueue takes.
Shown as second
kubevirt_controller.workqueue.work_duration_seconds.sum
(count)
How long in seconds processing an item from workqueue takes.
Shown as second

Eventos

La integración KubeVirt Controller no incluye eventos.

Checks de servicio

La integración KubeVirt Controller no incluye checks de servicios.

Resolución de problemas

¿Necesitas ayuda? Ponte en contacto con el servicio de asistencia de Datadog.