Kubernetes Cluster Autoscaler

Supported OS Linux Windows Mac OS

Versión de la integración3.0.0

Información general

Este check monitoriza Kubernetes Cluster Autoscaler 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 ejecute 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 Kubernetes Cluster Autoscaler está incluido en el paquete del Datadog Agent. (Agent >= 7.55.x) No es necesaria ninguna instalación adicional en tu servidor.

Configuración

  1. Edita el archivo kubernetes_cluster_autoscaler.d/conf.yaml, en la carpeta conf.d/ en la raíz de tu directorio de configuración del Agent para comenzar a recopilar tus datos de rendimiento kubernetes_cluster_autoscaler. Consulta el kubernetes_cluster_autoscaler.d/conf.yaml de ejemplo para conocer todas las opciones de configuración disponibles.

  2. Reinicia el Agent.

Recopilación de métricas

Asegúrate de que las métricas con formato Prometheus están expuestas en tu clúster kubernetes_cluster_autoscaler. Para que el Agent empiece a recopilar métricas, los pods kubernetes_cluster_autoscaler deben estar anotados.

Kubernetes Cluster Autoscaler tiene endpoints de métricas y livenessProbe a los que se puede acceder en el puerto 8085. Estos endpoints se encuentran en /metrics y /health-check y proporcionan información valiosa sobre el estado de tu clúster durante las operaciones de escalado.

Nota: Para cambiar el puerto por defecto, utiliza el indicador --address.

Para configurar el Cluster Autoscaler para exponer métricas, haz lo siguiente:

  1. Habilita el acceso a la ruta /metrics y expón el puerto 8085 del despliegue de Cluster Autoscaler:
ports:
--name: app
containerPort: 8085

b) Ordena a tu Prometheus que lo depure, añadiendo la siguiente anotación a tu servicio de Cluster Autoscaler:

prometheus.io/scrape: true

Nota: Los métricas enumeradas solo pueden recopilarse si están disponibles. Algunas métricas solo se generan cuando se realizan determinadas acciones.

Los únicos parámetros necesarios para configurar el check kubernetes_cluster_autoscaler son:

apiVersion: v1
kind: Pod
# (...)
metadata:
  name: '<POD_NAME>'
  annotations:
    ad.datadoghq.com/<CONTAINER_NAME>.checks: |
      {
        "kubernetes_cluster_autoscaler": {
          "init_config": {},
          "instances": [
            {
              "openmetrics_endpoint": "http://%%host%%:8085/metrics"
            }
          ]
        }
      }
    # (...)
spec:
  containers:
    - name: '<CONTAINER_NAME>'
# (...)

Validación

Ejecuta el subcomando de estado del Agent y busca kubernetes_cluster_autoscaler en la sección Checks.

Datos recopilados

Métricas

kubernetes_cluster_autoscaler.cluster.cpu.current.cores
(gauge)
Uso actual de núcleos de CPU en el clúster
kubernetes_cluster_autoscaler.cluster.memory.current.bytes
(gauge)
Uso actual de memoria en bytes en el clúster
kubernetes_cluster_autoscaler.cluster.safe.to.autoscale
(gauge)
Indica si el clúster es seguro para el autoescalado
kubernetes_cluster_autoscaler.cpu.limits.cores
(gauge)
Límites totales de núcleos de CPU establecidos para pods en el clúster
kubernetes_cluster_autoscaler.created.node.groups.count
(count)
Recuento total de grupos de nodos creados en el clúster
kubernetes_cluster_autoscaler.deleted.node.groups.count
(count)
Recuento total de grupos de nodos eliminados en el clúster
kubernetes_cluster_autoscaler.errors.count
(count)
Recuento total de errores ocurridos en el clúster
kubernetes_cluster_autoscaler.evicted.pods.count
(count)
Recuento total de pods desalojados en el clúster
kubernetes_cluster_autoscaler.failed.scale.ups.count
(count)
Recuento total de operaciones de ampliación fallidas en el clúster
kubernetes_cluster_autoscaler.function.duration.seconds.bucket
(count)
Duración de una función específica en el clúster (bucket)
kubernetes_cluster_autoscaler.function.duration.seconds.count
(count)
Duración de una función específica en el clúster (count)
kubernetes_cluster_autoscaler.function.duration.seconds.sum
(count)
Duración de una función específica en el clúster (sum)
kubernetes_cluster_autoscaler.go.gc.duration.seconds.count
(count)
Resumen de la duración de la pausa de los ciclos de recopilación de elementos no usados.
Se muestra como segundo
kubernetes_cluster_autoscaler.go.gc.duration.seconds.quantile
(gauge)
Un resumen de la duración de la pausa de los ciclos de recopilación de elementos no usados
Se muestra como segundo
kubernetes_cluster_autoscaler.go.gc.duration.seconds.sum
(count)
Un resumen de la duración de la pausa de los ciclos de recopilación de elementos no usados
Se muestra como segundo
kubernetes_cluster_autoscaler.go.goroutines
(gauge)
Número de goroutines que existen actualmente
kubernetes_cluster_autoscaler.go.info
(gauge)
Información sobre el entorno Go
kubernetes_cluster_autoscaler.go.memstats.alloc_bytes
(gauge)
Número de bytes asignados y aún en uso
Se muestra como byte
kubernetes_cluster_autoscaler.go.memstats.alloc_bytes.count
(count)
Número total de bytes asignados aunque sean liberados
Se muestra en bytes
kubernetes_cluster_autoscaler.go.memstats.buck_hash.sys_bytes
(gauge)
Número de bytes utilizados por la tabla hash del bucket de perfiles.
Se muestra en bytes
kubernetes_cluster_autoscaler.go.memstats.frees.count
(count)
Número total de libres
kubernetes_cluster_autoscaler.go.memstats.gc.sys_bytes
(gauge)
Número de bytes utilizados para metadatos del sistema de recopilación de elementos no usados.
Se muestra en bytes
kubernetes_cluster_autoscaler.go.memstats.heap.alloc_bytes
(gauge)
Número de bytes del heap asignados y aún en uso
Se muestra como byte
kubernetes_cluster_autoscaler.go.memstats.heap.idle_bytes
(gauge)
Número de bytes del heap en espera de ser utilizados
Se muestra como byte
kubernetes_cluster_autoscaler.go.memstats.heap.inuse_bytes
(gauge)
Número de bytes del heap que están en uso
Se muestra como byte
kubernetes_cluster_autoscaler.go.memstats.heap.objects
(gauge)
Número de objetos asignados
Se muestra como objeto
kubernetes_cluster_autoscaler.go.memstats.heap.released_bytes
(gauge)
Número de bytes de heap liberados al SO
Se muestra como byte
kubernetes_cluster_autoscaler.go.memstats.heap.sys_bytes
(gauge)
Número de bytes del heap obtenidos del sistema
Se muestra como byte
kubernetes_cluster_autoscaler.go.memstats.lookups.count
(count)
Número total de búsquedas de punteros
kubernetes_cluster_autoscaler.go.memstats.mallocs.count
(count)
Número total de mallocs
kubernetes_cluster_autoscaler.go.memstats.mcache.inuse_bytes
(gauge)
Número de bytes en uso por las estructuras mcache
Se muestra como byte
kubernetes_cluster_autoscaler.go.memstats.mcache.sys_bytes
(gauge)
Número de bytes utilizados para las estructuras mcache obtenidas del sistema
Se muestra como byte
kubernetes_cluster_autoscaler.go.memstats.mspan.inuse_bytes
(gauge)
Número de bytes en uso por las estructuras mspan
Se muestra como byte
kubernetes_cluster_autoscaler.go.memstats.mspan.sys_bytes
(gauge)
Número de bytes utilizados para las estructuras mspan obtenidas del sistema
Se muestra como byte
kubernetes_cluster_autoscaler.go.memstats.next.gc_bytes
(gauge)
Número de bytes del heap en que se realizará la próxima recopilación de elementos no usados
Se muestra como byte
kubernetes_cluster_autoscaler.go.memstats.other.sys_bytes
(gauge)
Número de bytes utilizados para otras asignaciones del sistema
Se muestra como byte
kubernetes_cluster_autoscaler.go.memstats.stack.inuse_bytes
(gauge)
Número de bytes en uso por el asignador de stack
Se muestra como byte
kubernetes_cluster_autoscaler.go.memstats.stack.sys_bytes
(gauge)
Número de bytes obtenidos del sistema para el asignador de stack
Se muestra como byte
kubernetes_cluster_autoscaler.go.memstats.sys_bytes
(gauge)
Número de bytes obtenidos del sistema
Se muestra como byte
kubernetes_cluster_autoscaler.go.threads
(gauge)
Número de subprocesos de sistema operativo creados
Se muestra como subproceso
kubernetes_cluster_autoscaler.last.activity
(gauge)
Fecha y hora de la última actividad en el clúster
kubernetes_cluster_autoscaler.max.nodes.count
(gauge)
Número máximo de nodos permitidos en el clúster
kubernetes_cluster_autoscaler.memory.limits.bytes
(gauge)
Límites de memoria total establecidos para los pods en el clúster
kubernetes_cluster_autoscaler.nap.enabled
(gauge)
Indica si el aprovisionamiento automático de nodos (NAP) está activado en el clúster.
kubernetes_cluster_autoscaler.node.groups.count
(gauge)
Número de grupos de nodos en el clúster
kubernetes_cluster_autoscaler.nodes.count
(gauge)
Número de nodos en el clúster
kubernetes_cluster_autoscaler.old.unregistered.nodes.removed.count
(count)
Recuento total de nodos antiguos no registrados eliminados del clúster
kubernetes_cluster_autoscaler.scaled.down.gpu.nodes.count
(count)
Recuento total de nodos GPU reducidos en el clúster
kubernetes_cluster_autoscaler.scaled.down.nodes.count
(count)
Recuento total de nodos reducidos en el clúster
kubernetes_cluster_autoscaler.scaled.up.gpu.nodes.count
(count)
Recuento total de nodos GPU escalados en el clúster
kubernetes_cluster_autoscaler.scaled.up.nodes.count
(count)
Recuento total de nodos escalados en el clúster
kubernetes_cluster_autoscaler.skipped.scale.events.count
(count)
Recuento total de eventos de escala omitidos en el clúster
kubernetes_cluster_autoscaler.unneeded.nodes.count
(gauge)
Recuento total de nodos innecesarios en el clúster
kubernetes_cluster_autoscaler.unschedulable.pods.count
(gauge)
Número de pods no programables en el clúster

Eventos

La integración de Kubernetes Cluster Autoscaler no incluye ningún evento.

Checks de servicio

kubernetes_cluster_autoscaler.openmetrics.health

Devuelve CRITICAL si el Agent no puede conectarse al endpoint de Kubernetes Cluster Autoscaler OpenMetrics, en caso contrario devuelve OK.

Estados: ok, critical

Solucionar problemas

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