cAdvisor/Kubelet

Kubelet expone las métricas sobre sí mismo y las de cAdvisor sobre contenedores que se ejecutan en su nodo.

Cloud Monitoring ofrece una recopilación administrada lista para usar de las métricas de cAdvisor/Kubelet como alternativa a la configuración de esta integración. La opción de recopilación completamente administrada proporciona un conjunto de métricas bien definido y seleccionado que se configura en clústeres nuevos de forma predeterminada.

La integración descrita en este documento ofrece todas las métricas de cAdvisor, muchas de las cuales es poco probable que necesites filtrar y está disponible para Google Kubernetes Engine y otros entornos de Kubernetes. El conjunto administrado de métricas de cAdvisor/Kubelet se seleccionó para proporcionar solo las métricas más útiles y está disponible solo para GKE. Para obtener más información, consulta Paquete: métricas de cAdvisor/Kubelet.

Si configuras la recopilación de métricas de cAdvisor como se describe en este documento, la configuración sustituye la configuración de cAdvisor administrada por GKE. La configuración que se describe en este documento habilita un superconjunto de las métricas administradas de cAdvisor.

Cuando usas el enfoque descrito en este documento, en lugar de usar una configuración personalizada de PodMonitoring, puedes configurar la recopilación administrada para recopilar automáticamente las métricas de cAdvisor y Kubelet si editas el OperatorConfig. Para instalar manifiestos, cópialos en un archivo local y, luego, ejecuta kubectl apply -f FILE_NAME. También puedes instalar manifiestos con Terraform.

  1. Abre el recurso OperatorConfig para editarlo:

    kubectl -n gmp-public edit operatorconfig config
    
  2. Agrega la sección collection, que se muestra en negrita, al recurso:

    apiVersion: monitoring.googleapis.com/v1
    kind: OperatorConfig
    metadata:
      namespace: gmp-public
      name: config
    collection:
      kubeletScraping:
        interval: 30s
    
  3. Guarda el archivo y cierra el editor.

Después de un tiempo breve, los extremos de la métrica de Kubelet se recopilarán y las métricas estarán disponibles para realizar consultas en el servicio administrado de Prometheus.

La recopilación de Kubelet viene con algunos filtros predeterminados y puedes agregar filtros adicionales a la sección collection del recurso OperatorConfig como se muestra a continuación. La sección de configuración filter.matchOneOf tiene la misma semántica que los parámetros match[] para la federación de Prometheus.

En el siguiente ejemplo, se filtran las métricas que comienzan con container_foo o container_bar:

collection:
  filter:
    matchOneOf:
    - '{__name__!~"container_foo.*|container_bar.*"}'

También puedes usar este filtro de colección de OperatorConfig para fines de depuración. Por ejemplo, es posible que desees inhabilitar de forma temporal la recopilación de una métrica específica en tu clúster sin modificar ningún recurso de PodMonitoring.

Sugerencias para las configuraciones avanzadas de cAdvisor

Si autoimplementas cAdvisor o proporcionas una configuración avanzada a Kubelet con cAdvisor, ten en cuenta que se pueden adjuntar etiquetas adicionales mediante la configuración avanzada de cAdvisor.

En particular, evita adjuntar etiquetas de contenedor de Kubernetes o variables de entorno a tus métricas y, si lo haces, controla estrictamente estas etiquetas mediante un patrón de lista de entidades permitidas (por ejemplo, conla sección metricRelabeling).

Controlar la cantidad de etiquetas agregadas a tus métricas puede ayudarte a evitar exceder el límite en la cantidad de etiquetas.