Como monitorar o Config Connector com o Prometheus
É possível usar o Prometheus para coletar e mostrar métricas do Config Connector.
Antes de começar
Para concluir as etapas deste documento, você precisa instalar o Prometheus no cluster. Para isso, basta:
Siga a documentação do Prometheus para configurar seu cluster para extração.
Métricas de extração
O Prometheus reúne métricas extraindo um endpoint HTTP. Nesta seção, descrevemos os endpoints de extração do Config Connector e a configuração do Prometheus.
Endpoints de extração do Config Connector
Para o Config Connector, os endpoints de serviço estão na porta 8888 em
cnrm-controller-manager-service
e cnrm-resource-stats-recorder-service
.
Esses serviços têm as anotações prometheus.io/scrape: "true"
e prometheus.io/port: "8888"
. Os serviços também incluem os rótulos
cnrm.cloud.google.com/monitored: "true"
e
cnrm.cloud.google.com/system: "true"
. Você configura o Prometheus
para extrair os componentes do Config Connector dessas anotações e rótulos.
Como configurar o Prometheus
Antes de extrair métricas, talvez seja necessário configurar o Prometheus para que o Kubernetes Service Discovery (SD) encontre destinos de extração na API REST do Kubernetes.
A maneira como você configura o Prometheus para extrair métricas do Config Connector depende de como você instalou o Prometheus. Verifique a documentação da instalação do Prometheus para saber como atualizar a configuração.
Por exemplo, se você estiver usando o Prometheus Operator e configurá-lo com o ServiceMonitor, poderá aplicar a configuração a seguir para extrair métricas do Config Connector.
spec:
endpoints:
- interval: 10s
port: metrics
namespaceSelector:
matchNames:
- cnrm-system
selector:
matchLabels:
cnrm.cloud.google.com/monitored: "true"
cnrm.cloud.google.com/system: "true"
Para mais informações sobre como configurar o ServiceMonitor, consulte Como começar na documentação do operador do Prometheus.
Exemplo de consultas
O Prometheus usa uma linguagem de consulta chamada PromQL. Nesta seção, constam exemplos de consultas PromQL para as métricas do Config Connector. Configure o Prometheus para gerar alertas com base em qualquer consulta válida do PromQL.
Solicitações de reconciliação de consulta por tipo e status de recurso
É possível ver a contagem de solicitações de reconciliação com falha por tipo e status de recurso.
Por exemplo, para verificar a contagem total de erros para recursos PubSubTopic
, use a
consulta a seguir.
configconnector_reconcile_requests_total{group_version_kind="PubSubTopic.pubsub.cnrm.cloud.google.com", status="ERROR"}
Verifique o status agregado dos recursos por tipo e Namespace
Veja a contagem de recursos que estão em um Namespace.
Por exemplo, para verificar a contagem total de recursos PubSubTopic
no namespace
default
, use a consulta a seguir.
configconnector_applied_resources_total{group_version_kind="PubSubTopic.pubsub.cnrm.cloud.google.com", Namespace="default"}
Consulte a utilização de workers de reconciliação por tipo de recurso
(configconnector_reconcile_occupied_workers_total / configconnector_reconcile_workers_total)
Métricas disponíveis
O Config Connector coleta as métricas a seguir e as disponibiliza.
Nome | Tipo | Rótulos | Descrição |
---|---|---|---|
configconnector_reconcile_requests_total | Contador | Namespace group_version_kind status |
O número total de solicitações de reconciliação. |
configconnector_reconcile_request_duration_seconds | Histograma | Namespace group_version_kind status |
Distribuições do tempo para concluir solicitações de reconciliação. |
configconnector_applied_resources_total | Medidor | Namespace group_version_kind status |
O número total de recursos em gerenciamento. |
configconnector_build_info | Medidor | version | Versão atual do Config Connector. |
configconnector_reconcile_workers_total | Medidor | group_version_kind | O número total de workers de reconciliação agregados por tipo de recurso. |
configconnector_reconcile_occupied_workers_total | Medidor | group_version_kind | O número total de workers de reconciliação ocupados agregados por tipo de recurso. |
Como ativar rótulos de nome de recurso
Por padrão, as métricas são agregadas por tipo de recurso (por exemplo, PubSubTopic). Você pode permitir que as métricas sejam agregadas por recursos individuais.
Para ativar a agregação por nome do recurso, execute as etapas a seguir.
Edite o objeto StatefulSet
cnrm-controller-manager
kubectl edit statefulset cnrm-controller-manager -n cnrm-system
Se você estiver usando o modo Namespace, substitua
NAMESPACE_NAME
pelo namespace.kubectl edit statefulset cnrm-controller-manager -n NAMESPACE_NAME
Encontre a matriz
spec.args
e adicione--resource-name-label=true
.apiVersion: apps/v1 kind: StatefulSet name: cnrm-controller-manager spec: template: spec: containers: - name: manager args: - --resource-name-label=true
A seguir
Para mais informações sobre como escrever consultas, consulte a documentação do Documentação da linguagem de consulta e Exemplos