Supported OS Linux Mac OS Windows

Versión de la integración10.0.0

Información general

Esta integración obtiene métricas de contenedor de Kubelet

  • Visualización y monitorización de estadísticas de Kubelet
  • Recibe notificaciones sobre fallos y eventos de Kubelet.

Configuración

Instalación

El check de Kubelet está incluido en el paquete del Datadog Agent, por lo que no necesitas instalar nada más en tus servidores.

Configuración

Edita el archivo kubelet.d/conf.yaml, en la carpeta conf.d/ en la raíz de tu directorio de configuración del Agent. Consulta el ejemplo de kubelet.d/conf.yaml para conocer todas las opciones de configuración disponibles.

Validación

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

Compatibilidad

El check de Kubelet puede funcionar en dos modos:

  • El modo Prometheus predeterminado es compatible con Kubernetes versión 1.7.6 o posterior.
  • El modo cAdvisor (habilitado mediante la opción cadvisor_port ) debería ser compatible con las versiones 1.3 y posteriores. La constancia del etiquetado y el filtrado requieren al menos la versión 6.2 del Agent.

Compatibilidad con OpenShift <3.7

El puerto cAdvisor 4194 está deshabilitado por defecto en OpenShift. Para habilitarlo, debes añadir las siguientes líneas a tu archivo node-config:

kubeletArguments:
  cadvisor-port: ["4194"]

Si no puedes abrir el puerto, deshabilita ambas fuentes de recopilación de métricas de contenedor, configurando:

  • cadvisor_port en 0
  • metrics_endpoint en ""

El check seguirá pudiendo recopilar:

  • checks de servicio del estado de Kubelet
  • métricas de pods en ejecución/detenidas
  • límites y solicitudes de pods
  • métricas de capacidad del nodo

Datos recopilados

Métricas

kubernetes.containers.last_state.terminated
(gauge)
Número de contenedores que se finalizaron anteriormente
kubernetes.pods.running
(gauge)
Número de pods en ejecución
kubernetes.pods.expired
(gauge)
Número de pods caducados ignorados por el check
kubernetes.containers.running
(gauge)
Número de contenedores en ejecución
kubernetes.containers.restarts
(gauge)
Número de veces que se reinició el contenedor
kubernetes.containers.state.terminated
(gauge)
Número de contenedores actualmente finalizados
kubernetes.containers.state.waiting
(gauge)
Número de contenedores en espera
kubernetes.cpu.load.10s.avg
(gauge)
Carga media de la CPU del contenedor en los últimos 10 segundos
kubernetes.cpu.system.total
(gauge)
Número de núcleos utilizados para el tiempo del sistema
Se muestra como núcleo
kubernetes.cpu.user.total
(gauge)
Número de núcleos utilizados para el tiempo del usuario
Se muestra como núcleo
kubernetes.cpu.cfs.periods
(gauge)
Número de intervalos de periodos de aplicación transcurridos
kubernetes.cpu.cfs.throttled.periods
(gauge)
Número de intervalos de periodos limitados
kubernetes.cpu.cfs.throttled.seconds
(gauge)
Duración total de limitación del contenedor
kubernetes.cpu.capacity
(gauge)
Número de núcleos de esta máquina (disponible hasta Kubernetes v1.18)
Se muestra como núcelo
kubernetes.cpu.usage.total
(gauge)
Número de núcleos utilizados
Se muestra como nanocore
kubernetes.cpu.limits
(gauge)
Límite de núcleos de CPU definidos
Se muestra como núcleo
kubernetes.cpu.requests
(gauge)
Núcleos de CPU solicitados
Se muestra como núcleo
kubernetes.filesystem.usage
(gauge)
Cantidad de disco utilizado
Se muestra como byte
kubernetes.filesystem.usage_pct
(gauge)
Porcentaje de disco utilizado
Se muestra como fracción
kubernetes.io.read_bytes
(gauge)
Cantidad de bytes leídos del disco
Se muestra como byte
kubernetes.io.write_bytes
(gauge)
Cantidad de bytes escritos en el disco
Se muestra como byte
kubernetes.memory.capacity
(gauge)
Cantidad de memoria (en bytes) en esta máquina (disponible hasta Kubernetes v1.18)
Se muestra como byte
kubernetes.memory.limits
(gauge)
Límite de memoria definido
Se muestra como byte
kubernetes.memory.sw_limit
(gauge)
Límite de espacio de intercambio definido
Se muestra como byte
kubernetes.memory.requests
(gauge)
Memoria solicitada
Se muestra como byte
kubernetes.memory.usage
(gauge)
Uso actual de la memoria en bytes, incluida toda la memoria independientemente de cuándo se accedió a ella
Se muestra como byte
kubernetes.memory.working_set
(gauge)
Conjunto de trabajo actual en bytes. Es lo que busca el OOM killer
Se muestra como byte
kubernetes.memory.cache
(gauge)
Cantidad de memoria que se está utilizando para almacenar en caché los datos del disco (por ejemplo, el contenido de la memoria que se puede asociar con precisión a un bloque en un dispositivo de bloques)
Se muestra como byte
kubernetes.memory.rss
(gauge)
Tamaño del RSS en bytes
Se muestra como byte
kubernetes.memory.swap
(gauge)
Cantidad de intercambio actualmente utilizado por los procesos en este cgroup
Se muestra como byte
kubernetes.memory.usage_pct
(gauge)
Porcentaje de memoria utilizada por pod (debe definirse un límite de memoria)
Se muestra como fracción
kubernetes.memory.sw_in_use
(gauge)
Porcentaje de espacio de intercambio utilizado
Se muestra como fracción
kubernetes.network.rx_bytes
(gauge)
Cantidad de bytes por segundo recibidos
Se muestra como byte
kubernetes.network.rx_dropped
(gauge)
Cantidad de paquetes rx descartados por segundo
Se muestra como paquete
kubernetes.network.rx_errors
(gauge)
Cantidad de errores rx por segundo
Se muestra como error
kubernetes.network.tx_bytes
(gauge)
Cantidad de bytes por segundo transmitidos
Se muestra como byte
kubernetes.network.tx_dropped
(gauge)
Cantidad de paquetes tx descartados por segundo
Se muestra como paquete
kubernetes.network.tx_errors
(gauge)
Cantidad de errores tx por segundo
Se muestra como error
kubernetes.diskio.io_service_bytes.stats.total
(gauge)
Cantidad de espacio en disco que utiliza el contenedor
Se muestra como byte
kubernetes.apiserver.certificate.expiration.count
(gauge)
Recuento de la vida útil restante del certificado utilizado para autenticar una solicitud
Se muestra como segundo
kubernetes.apiserver.certificate.expiration.sum
(gauge)
Suma de la vida útil restante del certificado utilizado para autenticar una solicitud
Se muestra como segundo
kubernetes.rest.client.requests
(gauge)
Número de solicitudes HTTP
Se muestra como operación
kubernetes.rest.client.latency.count
(gauge)
Recuento de la latencia de las solicitudes en segundos desglosado por verbo y URL.
kubernetes.rest.client.latency.sum
(gauge)
Suma de la latencia de las solicitudes en segundos desglosada por verbo y URL
Se muestra como segundo
kubernetes.kubelet.pleg.discard_events
(count)
Número de eventos de descarte en PLEG
kubernetes.kubelet.pleg.last_seen
(gauge)
Marca de tiempo en segundos de la última vez que se vio a PLEG activo
Se muestra como segundo
kubernetes.kubelet.pleg.relist_duration.count
(gauge)
Recuento de nuevas enumeraciones de pods en PLEG
kubernetes.kubelet.pleg.relist_duration.sum
(gauge)
Suma de la duración en segundos para volver a enumerar pods en PLEG
Se muestra como segundo
kubernetes.kubelet.pleg.relist_interval.count
(gauge)
Recuento de nuevas enumeraciones de pods en PLEG
Se muestra como segundo
kubernetes.kubelet.pleg.relist_interval.sum
(gauge)
Suma del intervalo en segundos entre nuevas enumeraciones en PLEG
kubernetes.kubelet.runtime.operations
(count)
Número de operaciones en tiempo de ejecución
Se muestra como operación
kubernetes.kubelet.runtime.errors
(gauge)
Número acumulado de errores de operaciones en tiempo de ejecución
Se muestra como operación
kubernetes.kubelet.runtime.operations.duration.sum
(gauge)
Suma de la duración de las operaciones
Se muestra como operación
kubernetes.kubelet.runtime.operations.duration.count
(gauge)
Recuento de operaciones
kubernetes.kubelet.network_plugin.latency.sum
(gauge)
Suma de la latencia en microsegundos de las operaciones de complementos de red
Se muestra como microsegundo
kubernetes.kubelet.network_plugin.latency.count
(gauge)
Recuento de operaciones de complementos de red por latencia
kubernetes.kubelet.network_plugin.latency.quantile
(gauge)
Cuantiles de operaciones de complementos de red por latencia
kubernetes.kubelet.volume.stats.available_bytes
(gauge)
Número de bytes disponibles en el volumen
Se muestra como byte
kubernetes.kubelet.volume.stats.capacity_bytes
(gauge)
Capacidad en bytes del volumen
Se muestra como byte
kubernetes.kubelet.volume.stats.used_bytes
(gauge)
Número de bytes utilizados en el volumen
Se muestra como byte
kubernetes.kubelet.volume.stats.inodes
(gauge)
El número máximo de inodos en el volumen
Se muestra como inodo
kubernetes.kubelet.volume.stats.inodes_free
(gauge)
Número de inodos libres en el volumen
Se muestra como inodo
kubernetes.kubelet.volume.stats.inodes_used
(gauge)
Número de inodos utilizados en el volumen
Se muestra como inodo
kubernetes.ephemeral_storage.limits
(gauge)
Límite de almacenamiento efímero del contenedor (requiere Kubernetes v1.8 o posterior)
Se muestra como byte
kubernetes.ephemeral_storage.requests
(gauge)
Solicitud de almacenamiento efímero del contenedor (requiere Kubernetes v1.8 o posterior)
Se muestra como byte
kubernetes.ephemeral_storage.usage
(gauge)
Uso de almacenamiento efímero del pod
Se muestra como byte
kubernetes.kubelet.evictions
(count)
Número de pods desalojados de Kubelet (ALPHA en Kubernetes v1.16)
kubernetes.kubelet.cpu.usage
(gauge)
Número de núcleos utilizados por Kubelet
Se muestra como nanocore
kubernetes.kubelet.memory.usage
(gauge)
Uso actual de la memoria Kubelet en bytes
Se muestra como byte
kubernetes.kubelet.memory.rss
(gauge)
Tamaño del RSS Kubelet en bytes
Se muestra como byte
kubernetes.runtime.cpu.usage
(gauge)
Número de núcleos utilizados por el tiempo de ejecución
Se muestra como nanocore
kubernetes.runtime.memory.usage
(gauge)
Uso actual de memoria en tiempo de ejecución en bytes
Se muestra como byte
kubernetes.runtime.memory.rss
(gauge)
Tamaño del RSS en tiempo de ejecución en bytes
Se muestra como byte
kubernetes.kubelet.container.log_filesystem.used_bytes
(gauge)
Bytes utilizados por los logs del contenedor en el sistema de archivos (requiere Kubernetes 1.14 o posterior)
Se muestra como byte
kubernetes.kubelet.pod.start.duration
(gauge)
Duración en microsegundos para que un pod pase de pendiente a en ejecución
Se muestra como microsegundo
kubernetes.kubelet.pod.worker.duration
(gauge)
Duración en microsegundos para sincronizar un solo pod. Desglosado por tipo de operación: creación, actualización o sincronización
Se muestra como microsegundo
kubernetes.kubelet.pod.worker.start.duration
(gauge)
Duración en microsegundos desde que se ve un pod hasta que se inicia un worker
Se muestra como microsegundo
kubernetes.kubelet.docker.operations
(count)
Número de operaciones Docker
Se muestra como operación
kubernetes.kubelet.docker.errors
(count)
Número de errores de operaciones Docker
Se muestra como operación
kubernetes.kubelet.docker.operations.duration.sum
(gauge)
Suma de la duración de las operaciones Docker
Se muestra como operación
kubernetes.kubelet.docker.operations.duration.count
(gauge)
Recuento de operaciones Docker
kubernetes.go_threads
(gauge)
Número de subprocesos de sistema operativo creados
kubernetes.go_goroutines
(gauge)
Número de goroutines que existen actualmente
kubernetes.liveness_probe.success.total
(gauge)
Número acumulado de sondas de vida exitosas para un contenedor (ALPHA en Kubernetes v1.15)
kubernetes.liveness_probe.failure.total
(gauge)
Número acumulado de sondas de vida fallidas para un contenedor (ALPHA en Kubernetes v1.15)
kubernetes.readiness_probe.success.total
(gauge)
Número acumulado de sondas de disponibilidad exitosas para un contenedor (ALPHA en Kubernetes v1.15)
kubernetes.readiness_probe.failure.total
(gauge)
Número acumulado de sondas de disponibilidad fallidas para un contenedor (ALPHA en Kubernetes v1.15)
kubernetes.startup_probe.success.total
(gauge)
Número acumulado de sondas de arranque exitosas para un contenedor (ALPHA en Kubernetes v1.15)
kubernetes.startup_probe.failure.total
(gauge)
Número acumulado de sondas de arranque fallidas para un contenedor (ALPHA en Kubernetes v1.15)
kubernetes.node.filesystem.usage
(gauge)
Cantidad de disco utilizado a nivel de nodo
Se muestra como byte
kubernetes.node.filesystem.usage_pct
(gauge)
Porcentaje de espacio en disco utilizado a nivel de nodo
Se muestra como fracción
kubernetes.node.image.filesystem.usage
(gauge)
Cantidad de disco utilizado en el sistema de archivos de imagen (nivel de nodo)
Se muestra como byte
kubernetes.node.image.filesystem.usage_pct
(gauge)
Porcentaje de disco utilizado (nivel de nodo)
Se muestra como fracción

Checks de servicio

kubernetes.kubelet.check.ping

Devuelve CRITICAL si el Kubelet no responde a Ping, si no devuelve OK

Estados: ok, critical

kubernetes.kubelet.check.docker

Devuelve CRITICAL si el servicio Docker no se ejecuta en el Kubelet, si no devuelve OK

Estados: ok, critical

kubernetes.kubelet.check.syncloop

Devuelve CRITICAL si la comprobación de salud del syncloop no funciona, si no devuelve OK

Estados: ok, critical

kubernetes.kubelet.check

Devuelve CRITICAL si la comprobación general de la salud de Kubelet no funciona, si no devuelve OK

Estados: ok, critical

Contenedores excluidos

Para restringir los datos recopilados a un subconjunto de los contenedores desplegados, configura la variable de entorno DD_CONTAINER_EXCLUDE. No se incluyen los métricas de los contenedores especificados en esa variable de entorno.

En el caso de las métricas de red notificadas a nivel de pod, los contenedores no pueden excluirse basándose en name o image name ya que es posible que otros contenedores formen parte del mismo pod. De esta manera, si DD_CONTAINER_EXCLUDE se aplica a un espacio de nombres, las métricas a nivel de pod no se notifican si el pod está en ese espacio de nombres. Sin embargo, si DD_CONTAINER_EXCLUDE se refiere a un nombre de contenedor o a un nombre de imagen, las métrica a nivel de pod se notifican aunque las reglas de exclusión se apliquen a algunos contenedores del pod.

Resolución de problemas

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