Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Quando você habilita a coleta de métricas do Prometheus do cluster do Kubernetes, ele usa uma coleção padrão para determinar quais métricas coletar. Este artigo descreve como você pode personalizar essa coleção para atender aos seus requisitos específicos de monitoramento.
ConfigMap
O ConfigMap a seguir é usado para configurar a configuração de raspagem e outras configurações para o complemento de métricas. Este ConfigMap não existe por padrão no cluster quando o Managed Prometheus está habilitado.
| ConfigMap | Descrição |
|---|---|
ama-metrics-settings-configmap |
Inclui as seguintes configurações básicas. - Alias de cluster. Altera o valor do cluster rótulo em cada métrica ingerida do cluster.- Ativar/desativar alvos de raspagem padrão. - Ative a recolha baseada em anotação de pod por namespace. - Listas de métricas. Controla quais métricas são permitidas a partir de cada destino padrão. - Intervalos de raspagem para alvos predefinidos. - Modo de depuração para identificar problemas de métrica ausentes. Consulte a resolução de problemas. |
Modifique as configurações no ConfigMap com base nas orientações abaixo e aplique-as usando o comando a seguir. Os pods do AMA-Metrics irão captá-los e reiniciar dentro de 2 a 3 minutos para aplicar as configurações especificadas.
kubectl apply -f .\ama-metrics-settings-configmap.yaml
Ativar e desativar destinos padrão
A configuração padrão de métricas do Prometheus no Azure Monitor lista os destinos e métricas padrão que são coletados por padrão do cluster do Kubernetes. Para ativar/desativar a raspagem de qualquer um desses destinos, atualize a configuração para o destino na default-scrape-settings-enabled seção do ConfigMap para true ou false.
Por exemplo, para ativar a raspagem de coredns, que está desativada por padrão, atualize a configuração da seguinte maneira:
default-scrape-settings-enabled: |-
kubelet = true
coredns = true
cadvisor = true
kubeproxy = false
...
Configurações de intervalo de raspagem
O intervalo de raspagem padrão para todos os destinos padrão é de 30 segundos. Para modificar esse intervalo para qualquer destino, você pode atualizar a configuração na default-targets-scrape-interval-settings seção do ConfigMap.
Por exemplo, para alterar o intervalo de recolha para 60 segundos no kubelet, atualize a configuração da seguinte maneira:
default-targets-scrape-interval-settings: |-
kubelet = "60s"
coredns = "30s"
cadvisor = "30s"
...
Ativar a recolha baseada em anotação de pod
Adicione anotações aos pods no seu cluster para extrair pods de aplicações sem criar uma configuração personalizada do Prometheus. Para habilitar a extração de pods com anotações específicas, adicione a expressão regular para o(s) namespace(s) dos pods com as anotações que pretende extrair ao podannotationnamespaceregex na secção podannotationnamespaceregex do ConfigMap.
Por exemplo, a configuração a seguir extrai pods com anotações apenas nos namespaces kube-system e my-namespace.
pod-annotation-based-scraping: |-
podannotationnamespaceregex = "kube-system|my-namespace"
Adicione anotações à metadata seção do ConfigMap.
prometheus.io/scrape: "true" é necessário para que o pod seja consultado, enquanto prometheus.io/path e prometheus.io/port indicam o caminho e a porta onde as métricas estão alojadas no pod. O exemplo a seguir define anotações para um pod que está hospedando métricas em <pod IP>:8080/metrics.
metadata:
annotations:
prometheus.io/scrape: 'true'
prometheus.io/path: '/metrics'
prometheus.io/port: '8080'
Aviso
Extrair as anotações de pod de muitos namespaces pode gerar um volume extremamente elevado de métricas, dependendo do número de pods que têm anotações.
Personalizar métricas coletadas por destinos padrão
Apenas métricas mínimas são coletadas para destinos padrão, conforme descrito em Perfil de ingestão mínima para métricas Prometheus no Azure Monitor. Para recolher todas as métricas dos destinos padrão, configure minimalingestionprofile para false na secção default-targets-metrics-keep-list do ConfigMap.
minimalingestionprofile = false
Como alternativa, pode-se adicionar métricas para serem recolhidas para qualquer alvo predefinido, atualizando as suas listas de retenção em default-targets-metrics-keep-list.
Por exemplo, kubelet é a configuração de filtragem métrica para o kubelet de destino padrão. Use o script a seguir para filtrar as métricas coletadas para os destinos padrão usando a filtragem baseada em regex.
kubelet = "metricX|metricY"
apiserver = "mymetric.*"
Nota
Se você usar aspas ou barras invertidas no regex, você precisa escapar delas usando uma barra invertida como os exemplos "test\'smetric\"s\"" e testbackslash\\*.
Se você quiser personalizar ainda mais os destinos padrão para alterar propriedades como frequência de coleta ou rótulos, desative esse destino definindo seu valor como false. Em seguida, crie um trabalho personalizado para o alvo, conforme descrito em Personalizar a recolha de métricas do Prometheus no Azure Monitor.
Alias de cluster
A última parte do ID de recurso do cluster é anexada a cada série temporal para identificar exclusivamente os dados. Por exemplo, se o ID do recurso for /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/rg-name/providers/Microsoft.ContainerService/managedClusters/myclustername, o rótulo do cluster será myclustername. Para substituir esse rótulo de cluster, atualize a configuração cluster_alias em prometheus-collector-settings.
Nota
Só são permitidos caracteres alfanuméricos. Quaisquer outros caracteres são substituídos por _.
Se você estiver habilitando regras de gravação e alerta, certifique-se de usar o nome do alias do cluster no parâmetro de nome do cluster do modelo de integração de regras para que as regras funcionem.
prometheus-collector-settings: |-
cluster_alias = ""
Modo de depuração
Para exibir todas as métricas que estão a ser recolhidas para fins de depuração, o add-on de métricas pode ser configurado para executar no modo de depuração, atualizando a definição enabled para true na configuração debug-mode.
Aviso
Esse modo pode afetar o desempenho e só deve ser habilitado por um curto período de tempo para fins de depuração.
Kube-state-metrics
Para substituir os parâmetros de inicialização padrão (resources, metric-labels-allowlist e metric-annotations-allowlist) da implantação kube-state-metrics (ama-metrics-ksm) instalada como parte da ativação do Managed Prometheus, use o ama-metrics-settings-configmap.
As configurações no configmap para labels_allow_list e annotations_allow_list substituem os parâmetros definidos durante o onboarding para ksm-metrics-labels-allow-list e ksm-metrics-annotations-allow-list
As configurações no configmap para recursos substituem os coletores padrão definidos para a implementação ama-metrics-ksm.
Note que o seguinte é uma configuração YAML -
ksm-config: |-
resources:
secrets: {}
configmaps: {}
labels_allow_list: # object name and label names
pods:
- app8
annotations_allow_list: # object name and annotation names
namespaces:
- kube-system
- default
Nota
A personalização desses valores pode afetar os dados padrão coletados como parte do trabalho kube-state-metrics e pode resultar em determinados painéis que não carregam dados.
A exclusão de toda a seção (ksm-config) no configmap de definições exige que a implementação ama-metrics-ksm seja recriada. Isto pode ser feito ao eliminar o pod ama-metrics-ksm ou ao executar - kubectl rollout restart deployment/ama-metrics -n kube-system
A recomendação é personalizar apenas esses 3 parâmetros quando necessário; definir parâmetros adicionais como substituições não é suportado - ainda que possível, deve ser usado com cautela.
Documentação OSS para os argumentos CLI do kube-state-metrics
Próximos passos
Configurar alertas sobre métricas do Prometheus
Consultar métricas do Prometheus
Saiba mais sobre como coletar métricas do Prometheus