Ce document a été traduit à l'aide d'une technologie de traduction automatique. Bien que nous nous efforcions de fournir des traductions exactes, nous ne fournissons aucune garantie quant à l'exhaustivité, l'exactitude ou la fiabilité du contenu traduit. En cas de divergence, la version originale anglaise prévaut et fait foi.

États de répétition

Présentation

Cette page décrit les messages JSON exacts pouvant être envoyés pour le modèle de cohérence des États de répétition de synchronisation.

Propriété JSON : "santé"

La santé peut être envoyée à l’API SUSE Observability Receiver en utilisant la propriété "health" de l’objet JSON commun.

  • Exemple de santé repeat_states JSON

   "apiKey":"<STACKSTATE_RECEIVER_API_KEY>",
   "collection_timestamp":1585818978,
   "internalHostname":"lnx-343242.srv.stackstate.com",
   "events":{},
   "metrics":[],
   "service_checks":[],
   "health":[
      {
        "consistency_model": "REPEAT_STATES",
        "expiry": {
          "repeat_interval_s": 50,
          "expiry_interval_s": 100
        },
        "stream": {
          "urn": "urn:health:sourceId:streamId"
          //"sub_stream_id": "subStreamId" Optional
        },
        "check_states": [
          {
            "checkStateId": "checkStateId1",
            "message": "Server Running out of disk space",
            "health": "Deviating",
            "topologyElementIdentifier": "server-1",
            "name": "Disk Usage"
          },
          {
            "checkStateId": "checkStateId2",
            "message": "Provisioning failed. [Learn more](https://www.any-link.com)",
            "health": "critical",
            "topologyElementIdentifier": "server-2",
            "name": "Health monitor"
          }
        ]
      }
   ],
   "topologies":[]

Chaque charge utile de données de santé des États de répétition contient les détails suivants :

  • expiration - Optionnel. Une mise à jour d’expiration doit être traitée avant de traiter check_states. Cela permet à SUSE Observability de suivre combien de temps les vérifications externes doivent rester présentes dans le système si elles ne sont pas renvoyées. Il contient les champs suivants en tant que métadonnées d’expiration :

    • intervalle_répétition_s - Temps en secondes. La fréquence à laquelle la source externe enverra des données de santé à SUSE Observabilité. La valeur maximale autorisée est de 1800 (30 minutes).

    • intervalle_expiration_s - Temps en secondes. Le temps d’attente après la dernière mise à jour avant qu’une vérification externe ne soit supprimée par SUSE Observability si la vérification externe n’est pas observée à nouveau.

  • flux - Objet fournissant une identification concernant les instantanés et check_states qui appartiennent ensemble. Il comprend les champs suivants :

    • urn - Source de données et ID de flux encodés en tant que URN de SUSE Observability qui correspond à la convention suivante : urn:health:<sourceId>:<streamId><sourceId> est le nom de la source de données externe et <streamId> est un identifiant unique pour le flux de données de santé.

    • sub_stream_id - Optional. Identifiant pour un sous-ensemble des données de santé du flux. Lorsque les données du flux sont distribuées et rapportées par plusieurs agents, cela permet les cycles de vie des instantanés par sub_stream_id.

  • check_states - Une liste des états de vérification. Chaque état de vérification peut avoir les champs suivants :

    • checkStateId - Identifiant de l’état de vérification dans le système externe.

    • message - Optionnel. Message à afficher dans l’interface utilisateur de SUSE Observability. Les données seront interprétées comme du markdown permettant d’avoir des liens vers le système externe de vérification qui a généré l’état de vérification externe.

    • health - L’une des valeurs d’état de santé de SUSE Observability suivantes : Clear, Deviating, Critical.

    • topologyElementIdentifier - Utilisé pour lier l’état de vérification à un élément topologique de SUSE Observability.

    • name - Nom de l’état de vérification externe.

Envoyer la santé à SUSE Observability.

La santé peut être envoyée dans un seul message JSON via HTTP POST. Dans l’exemple ci-dessous, un instantané contenant deux états de vérification est envoyé à SUSE Observability depuis un seul système de surveillance externe.

curl -X POST \
 '<STACKSTATE_RECEIVER_API_ADDRESS>' \
 -H 'Content-Type: application/json' \
 -d '{
  "collection_timestamp": 1548857167,
  "internalHostname": "local.test",
  "health": [
    {
      "consistency_model": "REPEAT_STATES",
      "expiry": {
        "repeat_interval_s": 300,
        "expiry_interval_s": 600
      },
      "stream": {
        "urn": "urn:health:sourceId:streamId"
      },
      "check_states": [
        {
          "checkStateId": "checkStateId1",
          "message": "Server Running out of disk space",
          "health": "Deviating",
          "topologyElementIdentifier": "server-1",
          "name": "Disk Usage"
        },
        {
          "checkStateId": "checkStateId2",
          "message": "Provisioning failed. [Learn more](https://www.any-link.com)",
          "health": "critical",
          "topologyElementIdentifier": "server-2",
          "name": "Health monitor"
        }
      ]
    }
  ]
}'