Observabilidad

Campos de Estado

SUSE® Rancher Prime Continuous Delivery informa la mayor parte de la información a través de campos de estado en sus recursos personalizados. Estos campos también son utilizados por la interfaz de usuario de Rancher para mostrar información sobre el estado de los recursos.

Consulta referencia de campos de estado para más información sobre los campos de estado y condiciones.

Eventos de K8s

SUSE® Rancher Prime Continuous Delivery generará eventos de K8s a los que un usuario puede suscribirse. Esta es la lista de eventos:

  • Created- se crea un nuevo trabajo de clonación de git

  • GotNewCommit- un repositorio de git tiene un nuevo commit

  • JobDeleted- se elimina un trabajo de clonación de git exitoso

  • FailedValidatingSecret- no se puede crear un trabajo de clonación de git, porque falta un secreto requerido

  • FailedToApplyRestrictions- el recurso GitRepo viola las reglas del recurso GitRepoRestriction

  • FailedToCheckCommit- no se puede obtener el último commit del servidor de git

  • FailedToGetGitJob- no se puede recuperar información del trabajo de clonación de git

  • Failed- el sondeo está deshabilitado, se activa a través de webhook, pero no se puede obtener el último commit del servidor de git

Métricas

SUSE® Rancher Prime Continuous Delivery publica métricas de Prometheus. Se pueden recuperar de estos servicios:

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

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

La colección de métricas exportadas incluye toda la información de controller-runtime, como el número de recursos reconciliados, el número de errores y el tiempo que tomó reconciliar.

Grafana

Al usar Grafana y Prometheus (por ejemplo, desde https://github.com/prometheus-community/helm-charts), se necesita una configuración para acceder a SUSE® Rancher Prime Continuous Delivery métricas.

  1. Crea un recurso ServiceMonitor para extraer métricas SUSE® Rancher Prime Continuous Delivery. A continuación se muestra un ejemplo:

    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

    Y aplica el manifiesto en el espacio de nombres de SUSE® Rancher Prime Continuous Delivery, por ejemplo en cattle-fleet-system:

    kubectl create -f servicemonitor.yaml -n cattle-fleet-system
  2. Construye los paneles de Grafana e impórtalos en Grafana. Puedes encontrar los paneles en el repositorio fleet-dashboards. Sigue las instrucciones del README para construirlos.