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:

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.

  1. 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
  2. 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