cAdvisor/Kubelet

O Kubelet expõe métricas sobre ele mesmo, bem como métricas do cAdvisor sobre contêineres em execução no nó.

O Cloud Monitoring oferece uma coleção gerenciada e pronta de métricas do cAdvisor/Kubelet como uma alternativa para configurar essa integração. A opção de coleta totalmente gerenciada oferece um conjunto de métricas selecionado e opinativo, configurado em novos clusters por padrão.

A integração descrita neste documento oferece todas as métricas do cAdvisor, muitas das quais você provavelmente não precisará e provavelmente vai querer filtrar, e está disponível para o Google Kubernetes Engine e outros ambientes do Kubernetes. O conjunto gerenciado de métricas do cAdvisor/Kubelet foi selecionado para fornecer apenas as métricas mais úteis e está disponível apenas para o GKE. Para mais informações, consulte Pacote: métricas do cAdvisor/Kubelet.

Se você configurar a coleta de métricas do cAdvisor conforme descrito neste documento, a configuração substituirá a configuração do cAdvisor gerenciada pelo GKE. A configuração descrita neste documento ativa um superconjunto das métricas gerenciadas do cAdvisor.

Ao usar a abordagem descrita neste documento, em vez de usar uma configuração personalizada do PodMonitoring, é possível configurar a coleção gerenciada para raspar automaticamente as métricas do cAdvisor e Kubelet ao editar OperatorConfig. É possível instalar esses manifestos copiando-os para um arquivo local e executando kubectl apply -f FILE_NAME. Você também pode instalar manifestos usando o Terraform.

  1. Abra o recurso OperatorConfig para edição:

    kubectl -n gmp-public edit operatorconfig config
    
  2. Adicione a seguinte seção collection, mostrada em negrito, ao recurso:

    apiVersion: monitoring.googleapis.com/v1
    kind: OperatorConfig
    metadata:
      namespace: gmp-public
      name: config
    collection:
      kubeletScraping:
        interval: 30s
    
  3. Salve o arquivo e feche o editor.

Após um curto período, os endpoints da métrica do Kubelet serão copiados, e as métricas ficarão disponíveis para consulta no Managed Service para Prometheus.

A raspagem de dados do Kubelet inclui alguns filtros padrão, e é possível adicionar outros filtros à seção collection do recurso OperatorConfig, conforme mostrado abaixo. A seção de configuração filter.matchOneOf tem a mesma semântica dos parâmetros match[] da federação do Prometheus.

O exemplo a seguir filtra métricas que começam com container_foo ou container_bar:

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

Você também pode usar esse filtro de coleção OperatorConfig para fins de depuração. Por exemplo, talvez você queira desativar temporariamente a coleta de uma determinada métrica no cluster sem modificar os recursos do PodMonitoring.

Dicas para configurações avançadas do cAdvisor

Se você implantar o cAdvisor por conta própria ou fornecer uma configuração avançada ao Kubelet com ele, saiba que é possível anexar rótulos usando as configurações avançadas do cAdvisor.

Evite anexar rótulos de contêiner do Kubernetes ou variáveis de ambiente às métricas. Se fizer isso, controle estritamente esses rótulos usando um padrão de lista de permissões (por exemplo, usando a seçãometricRelabeling do PodMonitoring.

Controlar o número de rótulos adicionados às suas métricas pode ajudar você a não exceder o limite do número de rótulos.