Monitorizar o Config Connector com o Prometheus


Pode usar o Prometheus para recolher e mostrar métricas do Config Connector.

Antes de começar

Para concluir os passos nesta página, tem de instalar o Prometheus no seu cluster. Pode fazê-lo:

Métricas de extração

O Prometheus recolhe métricas através da extração de um ponto final de HTTP. Esta secção descreve os pontos finais de recolha do Config Connector e a configuração do Prometheus.

Configurar pontos finais de extração do Config Connector

Para o Config Connector, os pontos finais do serviço estão na porta 8888 em cnrm-controller-manager-service e cnrm-resource-stats-recorder-service. Estes serviços têm as anotações prometheus.io/scrape: "true" e prometheus.io/port: "8888". Os serviços também incluem as etiquetas cnrm.cloud.google.com/monitored: "true" e cnrm.cloud.google.com/system: "true". Configura o Prometheus para extrair componentes do Config Connector destas anotações e etiquetas.

Configurar o Prometheus

Antes de poder extrair métricas, pode ter de configurar o Prometheus para a deteção de serviços (SD) do Kubernetes para descobrir alvos de extração da API REST do Kubernetes.

A forma como configura o Prometheus para extrair métricas do Config Connector depende de como instalou o Prometheus. Consulte a documentação da sua instalação do Prometheus para saber como atualizar a configuração.

Por exemplo, se estiver a usar o operador Prometheus e o configurar com o ServiceMonitor, pode aplicar a seguinte configuração 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"

Consultas de exemplo

O Prometheus usa uma linguagem de consulta denominada PromQL. Esta secção contém exemplos de consultas PromQL para as métricas do Config Connector. Pode configurar o Prometheus para gerar alertas a partir de qualquer consulta PromQL válida.

Consulte pedidos de conciliação por tipo de recurso e estado

Pode ver a contagem de pedidos de conciliação com falhas por tipo de recurso e estado.

Por exemplo, para verificar a contagem total de erros para recursos PubSubTopic, use a seguinte consulta.

configconnector_reconcile_requests_total{group_version_kind="PubSubTopic.pubsub.cnrm.cloud.google.com", status="ERROR"}

Verifique o estado agregado dos recursos por tipo e namespace

Pode ver a contagem de recursos que estão num espaço de nomes.

Por exemplo, para verificar a contagem total de recursos PubSubTopic no espaço de nomes default, use a seguinte consulta.

configconnector_applied_resources_total{group_version_kind="PubSubTopic.pubsub.cnrm.cloud.google.com", Namespace="default"}

Consulte a utilização de trabalhadores de conciliação por tipo de recurso

(configconnector_reconcile_occupied_workers_total / configconnector_reconcile_workers_total)

Métricas disponíveis

O Config Connector recolhe as seguintes métricas e disponibiliza-as.

Nome Tipo Etiquetas Descrição
configconnector_reconcile_requests_total Contrapropor Namespace
group_version_kind
status
O número total de pedidos de conciliação.
configconnector_reconcile_request_duration_seconds Histograma Namespace
group_version_kind
status
Distribuições do tempo para concluir pedidos de conciliação.
configconnector_applied_resources_total Indicador Namespace
group_version_kind
status
O número total de recursos sob gestão.
configconnector_build_info Indicador versão Versão atual do Config Connector.
configconnector_reconcile_workers_total Indicador group_version_kind O número total de trabalhadores de conciliação agregado por tipo de recurso.
configconnector_reconcile_occupied_workers_total Indicador group_version_kind O número total de trabalhadores de conciliação ocupados, agregados por tipo de recurso.

Ativar etiquetas de nomes de recursos

Por predefinição, as métricas são agregadas por tipo de recurso (por exemplo, PubSubTopic). Pode ativar a agregação de métricas por recursos individuais.

Para ativar a agregação por nome do recurso, siga estes passos.

  1. Edite o objeto cnrm-controller-managerStatefulSet

    kubectl edit statefulset cnrm-controller-manager -n cnrm-system

    Se estiver a usar o modo com espaço de nomes, substitua NAMESPACE_NAME pelo seu espaço de nomes.

    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
    

O que se segue?

Para mais informações sobre como escrever consultas, consulte a documentação da linguagem de consulta do Prometheus e os exemplos