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.
Abra o recurso OperatorConfig para edição:
kubectl -n gmp-public edit operatorconfig config
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
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.