Aller au contenu

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.