Skip to content

Latest commit

 

History

History
108 lines (81 loc) · 2.49 KB

File metadata and controls

108 lines (81 loc) · 2.49 KB

Exploitation

Cette section couvre les standards liés à l'exploitation. Ces normes sont simplement les normes d'actuator. Garder les normes de actuator simplifie l'alignement de toutes les applications dans l'écosystème VA.

Environnements

Une API déployée en production DOIT systématiquement être déployé en amont sur un environnement de qualité assurance (autrement nommé UAT).

S'il est nécessaire d'avoir d'autres environnements, un développeur d'API DEVRAIT se baser sur les DNS Names Convention (Internal Link) existantes.

Monitoring

Monitor l'utilisation de l'API

L'équipe en charge d'une API utilisée en production DEVRAIT s'assurer qu'elle est monitorée.

Health check

Une API DEVRAIT fournir un endpoint de health check

L'endpoint parent /health DEVRAIT fournir quelques détails à propos de ses composants (dépendances) sous la forme de

{
  "status": "UP",
  "components": {
    "discoveryComposite": {
      "description": "",
      "status": "UP",
      "components": {
        "discoveryClient": {
          "description": "",
          "status": "UP"
        }
      }
    },
    "livenessState": {
      "status": "UP"
    },
    "readinessState": {
      "status": "UP"
    }
  },
  "groups": [
    "liveness",
    "readiness"
  ]
}

L'endpoint /health/liveness DEVRAIT fournir le liveness

{
  "status": "UP"
}

L'endpoint /health/readiness DEVRAIT fournir le readiness

{
  "status": "UP"
}

De plus, la chaîne d'intégration continue POURRAIT l'utiliser afin de s'assurer que le déploiement s'est bien déroulé.

Informations

Dans les environnements non production, une API DEVRAIT fournir un endpoint exposant les informations sur son exécution.

L'endpoint /info DEVRAIT fournir les informations suivantes

{
  "product": "vaapi-mails",
  "serviceStartTime": "2025-01-27T10:23:40Z",
  "buildTime": "2025-01-16T15:30:29Z",
  "serviceProcessId": 1,
  "version": "1.7.0-SNAPSHOT"
}

Metriques

Dans les environnements non production, une API DEVRAIT fournir un endpoint exposant les informations à propos de ses métriques.

L'endpoint /metrics SHOULD fournir les informations suivantes (liste non exhaustive)

{
  "names": [
    "application.ready.time",
    "application.started.time",
    "disk.free",
    "disk.total",
    "executor.active",
    "executor.completed",
    "executor.pool.core",
    "executor.pool.max",
    ...
  ]
}