Surveillance
Cette page décrit comment surveiller une installation de Squash Orchestrator.
Journalisation
Comme il est de coutume avec les déploiements Docker et Kubernetes, tous les journaux sont générés dans la console.
Par défaut, le niveau de journalisation est INFO
. Vous pouvez personnaliser ce niveau de
journalisation pour tous les services en définissant la variable d'environnement DEBUG_LEVEL
.
Les valeurs possibles sont NOTSET
, DEBUG
, INFO
(la valeur par défaut), WARNING
, ERROR
,
et FATAL
(du mode le plus verbeux au mode le moins verbeux).
Info
Vous pouvez affiner le niveau de journalisation souhaité par service. Pour plus d'informations, veuillez consulter Variables d'environnement.
Surveillance
Squash Orchestrator est une collection de services fonctionnant ensemble. Il contient un mécanisme de surveillance intégré : si un service tombe en panne, l'instance échouera également.
Lorsque le mécanisme de surveillance est déclenché, les services en panne sont listés dans la console des journaux.
Stockage temporaire
Un déploiement de Squash Orchestrator est sans état : il peut inclure des fichiers de configuration, mais aucune donnée n'est générée sur le disque qui devrait être préservée en cas de redémarrage.
Il utilise un stockage temporaire (généralement sur /tmp
) pour conserver les informations sur
les workflows en cours et récemment terminés.
La politique de rétention peut être configurée comme décrit dans la documentation du service Observer.
Par défaut, les informations relatives à un workflow donné sont conservées pendant une heure après la fin ou l'annulation du workflow.
Point de terminaison lié à l'état de santé
Le service receptionist de Squash Orchestrator
fournit un point de terminaison POST /workflows?ping
qui renvoie un code 200 avec un corps Pong!
si le service d'orchestration est opérationnel.
Ce point de terminaison nécessite un jeton valide autorisé à créer des workflows.
curl -X POST \
-H "Authorization: Bearer ${TOKEN}" \
http://orchestrator.example.com/workflows?ping
curl -X POST ^
-H "Authorization: Bearer %TOKEN%" ^
http://orchestrator.example.com/workflows?ping
curl.exe -X POST `
-H "Authorization: Bearer $Env:TOKEN" `
http://orchestrator.example.com/workflows?ping
{
"apiVersion":"v1",
"kind":"Status",
"metadata":{},
"message":"Pong!",
"details":null,
"status":"Success",
"reason":"OK",
"code":200
}
Points de terminaison liés à l'activité
GET /subscriptions
Le service event bus
de Squash Orchestrator expose un point de terminaison GET /subscriptions
qui renvoie la liste des abonnements actifs et leur statut sous forme de document JSON.
Ce point de terminaison nécessite un jeton valide autorisé à lister les abonnements.
Chaque manifeste d'abonnement contient une partie status
qui montre le dernier horodatage de
publication, le nombre de publications, le résumé du statut de publication, et le statut de
quarantaine :
{
"apiVersion": "opentestfactory.org/v1alpha1",
"kind": "Subscription",
"metadata": {
"name": "allinone",
"subscription_id": "fa50d95d-98b0-42d5-be56-10f24e1f2736"
},
"spec": {
...
},
"status": {
"lastPublicationTimestamp": "2024-05-30T02:54:22.387308",
"publicationCount": 9,
"publicationStatusSummary": {
"200": 9
},
"quarantine": 0
}
}
GET /workflows/status
Le service observer de Squash Orchestrator
expose un point de terminaison GET /workflows/status
qui renvoie l'état global de l'orchestrateur sous forme de document JSON.
Ce point de terminaison nécessite un jeton valide autorisé à obtenir les statuts.
Un orchestrateur en cours de traitement des workflows renverrait quelque chose comme :
{
"apiVersion": "v1",
"kind": "Status",
"metadata": {},
"message": "1 workflows in progress",
"details": {
"items": ["50c7e5d1-7bdc-46f0-9422-3cc6660d00c0"],
"status": "BUSY"
},
"status": "Success",
"reason": "OK",
"code": 200
}
Un orchestrateur inactif renverrait quelque chose comme :
{
"apiVersion": "v1",
"kind": "Status",
"metadata": {},
"message": "No workflow in progress",
"details": {
"items": [],
"status": "IDLE"
},
"status": "Success",
"reason": "OK",
"code": 200
}
Sondes
L'image de Squash Orchestrator inclut une commande opentf-ctl
qui peut être utilisée dans les sondes de préparation et de disponibilité pour aider Kubernetes à surveiller la santé du conteneur.
startupProbe:
exec:
command:
- opentf-ctl
- get
- subscriptions
failureThreshold: 20
initialDelaySeconds: 1
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 3
readinessProbe:
exec:
command:
- opentf-ctl
- get
- subscriptions
failureThreshold: 3
initialDelaySeconds: 1
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5
Canaux
Le service observer de Squash Orchestrator
expose un point de terminaison GET /channels
qui renvoie les canaux connus (environnements d'exécution), les capacités (tags) qu'ils fournissent,
et leur statut (IDLE
, BUSY
, PENDING
ou UNREACHABLE
) sous forme de document JSON.
Divers
Le service observer de Squash Orchestrator
expose un point de terminaison GET /version
qui renvoie la version des composants en cours d'exécution sous forme de document JSON.