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.
-
Créez une ressource
ServiceMonitorpour 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: 30sEt 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 -
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.