Observabilidade

Campos de Status

SUSE® Rancher Prime Continuous Delivery relata a maior parte das informações por meio de campos de status em seus recursos personalizados. Esses campos também são usados pela interface do Rancher para exibir informações sobre o estado dos recursos.

Veja referência de campos de status para mais informações sobre campos de status e condições.

Eventos do K8s

SUSE® Rancher Prime Continuous Delivery irá gerar eventos do K8s aos quais um usuário pode se inscrever. Esta é a lista de eventos:

  • Created- um novo trabalho de clonagem git é criado

  • GotNewCommit- um repositório git tem um novo commit

  • JobDeleted- um trabalho de clonagem git bem-sucedido é removido

  • FailedValidatingSecret- um trabalho de clonagem git não pode ser criado, porque um segredo necessário está faltando

  • FailedToApplyRestrictions- o recurso GitRepo viola as regras do recurso GitRepoRestriction

  • FailedToCheckCommit- não é possível obter o último commit do servidor git

  • FailedToGetGitJob- não é possível recuperar informações do trabalho de clonagem git

  • Failed- a verificação periódica está desativada, acionada via webhook, mas não é possível obter o último commit do servidor git

Métricas

SUSE® Rancher Prime Continuous Delivery publica métricas do Prometheus. Elas podem ser recuperadas desses serviços:

  • monitoring-fleet-controller.cattle-fleet-system.svc.cluster.local:8080/metrics

  • monitoring-gitjob.cattle-fleet-system.svc.cluster.local:8081/metrics

A coleção de métricas exportadas inclui todas as informações do controller-runtime, como o número de recursos reconciliados, o número de erros e o tempo que levou para reconciliar.

Grafana

Ao usar Grafana e Prometheus (por exemplo, a partir de https://github.com/prometheus-community/helm-charts),), é necessária alguma configuração para acessar SUSE® Rancher Prime Continuous Delivery métricas.

  1. Crie um recurso ServiceMonitor para coletar métricas SUSE® Rancher Prime Continuous Delivery. Veja um exemplo:

    apiVersion: monitoring.coreos.com/v1
    kind: ServiceMonitor
    metadata:
      # Create this in the same namespace as your application
      namespace: cattle-fleet-system
      name: fleet-controller-monitor
      labels:
        # This label makes the ServiceMonitor discoverable by the Prometheus Operator
        release: monitoring  # <-- ADD THIS LABEL!
    spec:
      selector:
        matchLabels:
          # This label must exist on the service you want to scrape
          app: fleet-controller # Assumed label, verify this
      namespaceSelector:
        matchNames:
          # We are only looking for the service in its own namespace
          - cattle-fleet-system
      endpoints:
      - port: metrics
        path: /metrics
        interval: 30s
    ---
    apiVersion: monitoring.coreos.com/v1
    kind: ServiceMonitor
    metadata:
      # Create this in the same namespace as your application
      namespace: cattle-fleet-system
      name: fleet-gitjob-monitor
      labels:
        # This label makes the ServiceMonitor discoverable by the Prometheus Operator
        release: monitoring  # <-- ADD THIS LABEL!
    spec:
      selector:
        matchLabels:
          # This label must exist on the service you want to scrape
          app: gitjob
      namespaceSelector:
        matchNames:
          # We are only looking for the service in its own namespace
          - cattle-fleet-system
      endpoints:
      - port: metrics
        path: /metrics
        interval: 30s

    E aplique o manifesto no namespace de SUSE® Rancher Prime Continuous Delivery, por exemplo, em cattle-fleet-system:

    kubectl create -f servicemonitor.yaml -n cattle-fleet-system
  2. Construa os painéis do Grafana e importe-os para o Grafana. Você pode encontrar os painéis no repositório fleet-dashboards. Siga as instruções do README para construí-los.