Observabilité

Champs d’état

SUSE® Rancher Prime Continuous Delivery rapporte la plupart des informations via des champs d’état sur ses ressources personnalisées. Ces champs sont également utilisés par l’interface utilisateur de Rancher pour afficher des informations sur l’état des ressources.

Voir référence des champs d’état pour plus d’informations sur les champs d’état et les conditions.

Événements K8s

SUSE® Rancher Prime Continuous Delivery générera des événements K8s auxquels un utilisateur peut s’abonner. Voici la liste des événements :

  • Created- un nouveau travail de clonage git est créé

  • GotNewCommit- un dépôt git a un nouveau commit

  • JobDeleted- un travail de clonage git réussi est supprimé

  • FailedValidatingSecret- un travail de clonage git ne peut pas être créé, car un secret requis est manquant

  • FailedToApplyRestrictions- la ressource GitRepo enfreint les règles de la ressource GitRepoRestriction

  • FailedToCheckCommit- impossible d’obtenir le dernier commit du serveur git

  • FailedToGetGitJob- impossible de récupérer des informations sur le travail de clonage git

  • Failed- le polling est désactivé, déclenché via webhook, mais impossible d’obtenir le dernier commit du serveur git

Métriques

SUSE® Rancher Prime Continuous Delivery publie des métriques Prometheus. Elles peuvent être récupérées à partir de ces services :

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

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

La collection de métriques exportées inclut toutes les informations de controller-runtime, comme le nombre de ressources réconciliées, le nombre d’erreurs et le temps qu’il a fallu pour réconcilier.

Grafana

Lors de l’utilisation de Grafana et Prometheus (par exemple, à partir de https://github.com/prometheus-community/helm-charts),), une configuration est nécessaire pour accéder aux métriques SUSE® Rancher Prime Continuous Delivery.

  1. Créez une ressource ServiceMonitor pour extraire les métriques SUSE® Rancher Prime Continuous Delivery. Exemple :

    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

    Et appliquez le manifeste dans l’espace de noms de SUSE® Rancher Prime Continuous Delivery, par exemple dans cattle-fleet-system :

    kubectl create -f servicemonitor.yaml -n cattle-fleet-system
  2. Créez les tableaux de bord Grafana et importez-les dans Grafana. Vous pouvez trouver les tableaux de bord dans le dépôt fleet-dashboards. Suivez les instructions du README pour les construire.